My notes about computer science, programming, and software - © 2008-2009 Jean-Marc Vanel deductions-software.com

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/ - EulerGUI Feature requests

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

2014-07-22

2014-07-16

Comparison of semantic modeling and object-oriented modeling

http://www.w3.org/TR/sw-oosd-primer/

http://answers.semanticweb.com/questions/17519/difference-between-ontology-and-object-oriented-models

http://www.w3.org/2001/sw/BestPractices/SE/ODSD/

2014-07-15

<jmvanel> Hi I wonder if there is a vocab' for bug reports and enhancement requests ( probably in relation with DOAP)

<tobyink> jmvanel: http://ontologi.es/doap-bugs

<jmvanel> Thanks tobyink ; added in http://prefix.cc/dbug

Asked on ##linux

Hi I'd like a tool to watch a directory and record the file sizes and timestamps , so that later I can draw a plot of my activity

<vlt> jmvanel: inotify tools

<jmvanel> thanks , vlt ; that's rather low level , but can be certainly used ...

overbusy today with my Specifications for semantic hosting

2014-07-14

Work on Semantic forms and related Banana-RDF bug

2014-07-03

bbc rdf linked data yvesr

2014-07-01

SPARQL extensions for Text Search site:w3.org

http://refine.deri.ie/searchReconDocs

http://www.w3.org/wiki/SPARQL/Extensions/Computed_Properties

http://www.w3.org/wiki/SPARQL/Extensions

Enter a url below to convert the page to Markdown.

http://heckyesmarkdown.com/

2014-06-28

forms_play/README.md \

forms_play/app/controllers/Application.scala \

forms_play/build.sbt \

forms/src/main/scala/deductions/runtime/html/TableView.scala

.gitignore

http://typesafe.com/activator/docs

<jmvanel> Hi new to Play but not to Scala ... started from the "Your new application is ready." of play-2.2.1 ;

<jmvanel> when adding with MyTrait to object Application , there a HTTP 500 error , and no special message on the console

<OlegYch> jmvanel: you should probably start with the latest available version

<jmvanel> was thinking of it :)

<jmvanel> OlegYch, activator-launcher is doing its thing :)

https://typesafe.com/activator/templates#filter:play

2014-06-24

TODO : bad # at end of URI for OWL :

eg test/simple_hierarchy.owl &

Testing Web-Karma FIX

I did this:

git checkout -b development
git pull origin development --verbose
mvn install
cd karma-web
mvn jetty:run

It works !!!!!!!!!!

However,

with the config. I set, I expected not for new resources :

_:Person1_N54_N37_N53_N56_N38

but

http://assemblee-virtuelle.org/resource/Person1_N54_N37_N53_N56_N38

http://assemblee-virtuelle.org/resource/

beeing the base URI.

2014-06-22

cwm foaf.n3 --n3=ps > foaf.nt

1,$g/^ $/d

<jmvanel> https://github.com/jmvanel/rdf-i18n/graphs/contributors is well started

<jmvanel> ( see the semantic-web@w3.org discussion )

http://lists.w3.org/Archives/Public/semantic-web/2014Jun/0098.html

2014-06-01

javaws /home/jmv/Téléchargements/welkin.jnlp

Exemples:

EulerGUI, Protégé, Web Karma, Datalift, ACEWiki, AceView

java -cp
/home/jmv/.m2/repository/eulergui/eulergui/2.1-SNAPSHOT/*-13-jar-with-dependencies.jar
deductions.runtime.swing.data_manager.DataGUI dbpedia:Taraxacum 
gvim examples/foaf_fr.n3
java -cp
/home/jmv/.m2/repository/eulergui/eulergui/2.1-SNAPSHOT/*-13-jar-with-dependencies.jar
deductions.runtime.swing.domainApplication.DomainApplication
examples/domain-app-all.n3 &

2014-06-01

http://doc.akka.io/docs/akka/2.3.3/scala.html?_ga=1.1894257.1706664469.1401368197

http://www.typesafe.com/activator/template/akka-sample-main-scala?_ga=1.168767073.1706664469.1401368197#code/src/main/scala/sample/hello/HelloWorld.scala

<jmvanel> awfully busy with fixing EG test suite

<jmvanel> then have to lay down a 2h pres on SW for tomorrow :(

<jmvanel> NARS + semweb ? : https://groups.google.com/forum/#!topic/open-nars/LEljijte

2014-05-26

COMMIT

executing TDB updates in a single thread (TripleStoreTDBThread.scala)

TODO: test suite still bad (but this as important an useful step ): Tests run: 244, Failures: 11, Errors: 34, Skipped: 0

https://www.google.fr/search?q=scala+using+function+types

http://gleichmann.wordpress.com/2010/11/08/functional-scala-functions-as-objects-as-functions/

COMMIT

- translate ITripleStore to Scala

- pave the way for executing TDB updates in a single thread (TripleStoreTDBThread.scala)

- in ProjectGUI comment out a SUSPECT call to rethrowEventsExceptListener( ApplicationKB.instance())

- just clean code in TripleStoreTDB.scala

- in URIModificationChecker.java , change wait before checking URI Modifications ==> Thread.sleep(100);

2014-05-24

COMMIT fixing Euler engine check for activating the button (now it's using SWI Prolog on all platforms, but on Mac SWI is not provided in the EG jar)

2014-05-23

<jmvanel> back on Ubuntu 14.04

<jmvanel> on my plate : try BigData ; update semantic_forms ;

<jmvanel> in EulerGUI : JSON-LD export ; HTML generation ; load project without rule engine ( and get rid of old project format )

Troubles with EulerGUI parser

Euler rule engine now generates this syntax for prefixes:

PREFIX owl: <http://www.w3.org/2002/07/owl#>

Some EulerGUI features leverage on Euler to generate N3 syntax, like the OWL + SWRL translator.

The issue is that it's not compatible with the current EulerGUI parser, writen by Luc Peuvrier, who tragically died 1 year ago.

The plan is to write a Scala parser for N3, that will populate the same data structure that the current parser does.

Try BigData RELEASE_1_3_0

Load and query

In fact this page says last RELEASE is 1_3_0, I got a mail saying it's 1_3_1 .

The simple receipe is here :

http://bigdata.com/download

svn checkout svn://svn.code.sf.net/p/bigdata/code/branches/BIGDATA_RELEASE_1_3_0 bigdata
ant start-bigdata

In fact I already had this Subversion working directory.

I was impatient to try this this Bigdata Workbench !

In UPDATE tab, I pasted my public FOAF:

http://jmvanel.free.fr/jmv.rdf

then changed the "Type:" pulldown to "File path or URL"

Then pushed Update button.

Underneath, it says :

Modified: 56 Milliseconds: 494

Then in QUERY tab , the usual stupid query :

SELECT * where { ?S ?P ?O } LIMIT 10

I get an HTML table underneath.

Now, he usual stupid CONSTRUCT query :

CONSTRUCT { ?S ?P ?O } where { ?S ?P ?O } LIMIT 10

I also get an HTML table underneath, where the columns are named s,p,o .

I could load quickly a quite large N3 (95290 line ) :

/home/jmv/ontologies/unspsc84-title.rdfs.n3

Data loading...

Modified: 82500

Milliseconds: 8154

I suppose it's 82500 triples ?

what the EXPLORE tab does ?

Now I'm curious of what the EXPLORE tab does : maybe some graphic display à la TouchGraph ?

Under "Enter a URI to begin navigation" I paste my personal URI :

http://jmvanel.free.fr/jmv.rdf#me

But I get insults like this :

Error! error Encountered " "/" "/ "" at line 2, column 15.?Was expecting one of:? "(" ...? "!" ...? "+" ...? "-" ...? "exists" ...? "not exists" ...? "str" ...? "lang" ...? "langmatches" ...? "datatype" ...? "bound" ...? "sameTerm" ...? <IS_IRI> ...? "isBlank" ...? "isLiteral" ...? "isNumeric" ...? "coalesce" ...? "bnode" ...? "strdt" ...? "strlang" ...? <IRI> ...? "if" 

The SPARQL endpoint

<jmvanel> So far, bigdata , not bad !!!!!!

I used their Web client .

Now it's time to test the SPARQL endpoint with EulerGUI client.

But the Web client does have not the same URL as the endpoint:

http://localhost:9999/bigdata

I cannot find it in the documentation, and the references in the source in

bigdata/src/releases/RELEASE_1_3_0.txt

are hard to find, because they are at the end, after a bunch of historic info.

But my first guess is the right one :

http://localhost:9999/sparql

This endpoint works fine with EulerGUI !

Smart features ...

I also want to test accepted prefixes, like EulerGUI does, but no !

Typing foaf: in UPDATE tab is not understood as downloading RDF from

http://xmlns.com/foaf/0.1/

like EulerGUI does; see a video I made on youtube : http://www.youtube.com/watch?v=x6ZgoiH1K9Y&feature=youtu.be

The use of prefix.cc is demonstrated after minutes 2 , 10 and 14 .

Maybe the BigData guys do not know about the prefix.cc services, or they can integrate my code using them.

The buttons marked

RDF RDFS OWL BD BDS GAS FOAF HINT DC XSD

do not work well ! The text panel for SPARQL is not updated at once when one pushes them.

Moreover, a prefix.cc completion like in EulerGUI would be better than arbitrary buttons for vocabulary.

The URI for bd on prefix.cc:

http://prefix.cc/bd

is not the one that BigData creates.

and the URL is not deferentiable:

http://www.bigdata.com/rdf/search#

404 - PAGE NOT FOUND

Next : inference capabilities

Next, I want to try inference capabilities with OWL, RDFS, N3 or SWRL rules.

I'm not sure what are the defaults of this server out-of-the-box, and where is the relevant doc ...

I mean, there is a valuable general doc. :

http://www.systap.com/pubs/bigdata-book-chapter.pdf

but a practical one I could not find.

Alas, N3 is not implemented:

[java] WARN : ServletHandler.java:592: /bigdata/namespace/kb/sparql[java] java.lang.RuntimeException: java.lang.RuntimeException:
org.openrdf.rio.RDFParseException: Expected an RDF value here, found '{' [line
5][java] at
com.bigdata.rdf.sail.webapp.InsertServlet.doPostWithURIs(InsertServlet.java:514)

Now, let's try OWL + SRWL :

I can load an OWL+SWRL , such as :

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/examples/dl-safe_small.owl

which is an often used example of OWL + SRWL.

Adding relevant data:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/examples/dl-safe_small_data.n3

But the expected inference does not occur, that is, this query returns nothing :

prefix : <http://owldl.com/ontologies/dl-safe.owl#>
CONSTRUCT {?t0 a :BadChild}
where     {?t0 a :BadChild}

CONCLUSION: the defaults of this server out-of-the-box do not activate SWRL, is this is possible at all.

After reading the build.xml, I spotted this file about server configuration:

bigdata-war/src/WEB-INF/RWStore.properties

where the relevent part seems to be :

## Setup for QUADS mode without the full text index.
##
com.bigdata.rdf.sail.truthMaintenance=false
com.bigdata.rdf.store.AbstractTripleStore.quads=true
com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=false
com.bigdata.rdf.store.AbstractTripleStore.textIndex=false
com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.NoAxioms

With a bit of Googling , I came to

http://wiki.bigdata.com/wiki/index.php/NanoSparqlServer

where I saw:

<!-- Specify any KB specific properties here to override defaults for the BigdataSail -->
<!-- AbstractTripleStore, or indices in the namespace of the new KB instance. -->
<!-- -->
<entry key="com.bigdata.rdf.store.AbstractTripleStore.quads">false</entry>
<entry key="com.bigdata.rdf.store.AbstractTripleStore.axiomsClass">com.bigdata.rdf.axioms.OwlAxioms</entry>
<entry key="com.bigdata.rdf.sail.truthMaintenance">true</entry>

and from this I infered this confguration with all the bells and whistles:

## Setup with the full functionalities
##
com.bigdata.rdf.sail.truthMaintenance=true
com.bigdata.rdf.store.AbstractTripleStore.quads=true
com.bigdata.rdf.store.AbstractTripleStore.statementIdentifiers=true
com.bigdata.rdf.store.AbstractTripleStore.textIndex=true
com.bigdata.rdf.store.AbstractTripleStore.axiomsClass=com.bigdata.rdf.axioms.OwlAxioms

If I restart the server, and run again the query, nothing comes out.

I'm skeptical that it does it, because this returns nothing in ~/src/BIGDATA_RELEASE_1_3_0 :

grep -i SWRL **/src/**/*.java

So there is left the possibilty to use the API or a shell script with curl to populate the database with the inferences.

ls -l **/src/**/rule*/*.java | wc
118 1062 12694

to follow !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Nice features

The real list is longer !

2014-05-19

http://www.systap.com/inference

http://answers.semanticweb.com/questions/23645/proper-etldata-transformation-tools-for-rdf

TODO : ajouter dans manuel EG: utiliser dot pour graphes

https://github.com/conjecto

http://www.upubuntu.com/2012/12/how-to-run-jnlp-files-under-ubuntulinux.html

http://pages.cs.wisc.edu/~dbbook/openAccess/thirdEdition/slides/slides3ed-english/Ch25_DedDB-95.pdf

rdf+graph+visualization

http://timerollson.wordpress.com/2007/09/30/links-for-2007-09-30/

<jmvanel> succeeded in running IsaViz

<jmvanel> not bad, but no choice on graph layout

<jmvanel> Finally, Welkin corresponded more to what I wanted : a cloud - like view.

<sirdancealot> here it corresponds to a more sun-like view, seems like a fine warm day ahead

<jmvanel> :)

<jmvanel> was talking about http://simile.mit.edu/welkin/guide.html

<jmvanel> ( actually 50% cloudy here )

<jmvanel> I was comparing Welkin to IsaViz , which produces a default Graphviz layout, much like EulerGUI.

2014-04-20

<jmvanel> Hi anyone having the the magic touch to run the tabulator ? http://www.w3.org/2005/ajar/tab

<jmvanel> I did both for "The Cross-Domain Browsing Problem" indicated in http://dig.csail.mit.edu/2005/ajar/ajaw/Help.html

<jmvanel> but no special message and no data showing !!!

<jmvanel> on Firefox 28.0

http://dig.csail.mit.edu/breadcrumbs/blog/4

2014-01-20

http://pcp.oxfordjournals.org/search?author1=Naama+Menda&sortspec=date&submit=Submit

https://github.com/NUKnightLab/TimelineJS

2014-01-19

http://www.martinfowler.com/apsupp/accounting.pdf

https://www.google.fr/search?q=AI+pattern+recognition

triple store android

html5 timeline view

<jmvanel> Hi I have probably chosen Scalatra over Play! and Lift for Semantic Web based application ; first will develop a form based on RDF properties .

<pdxleif> jmvanel: I've been working on semanic web apps in scalatra (or even raw servlet) over the years, e.g. https://github.com/LeifW/MusicPath

<pdxleif> I think stefan has, too

<jmvanel> pdxleif, that look nice ; I cloned your MusicPath

<jmvanel> ( also using Jena TDB )

<jmvanel> My project is currently mainly Swing app : http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5816 ,

<jmvanel> and I want to redo or reuse the RDF based forms, tables in HTML

<jmvanel> But here in Paris it's midnight , I'll sleep ...

<jmvanel> Hope you're in "good" time zone .

2014-01-18

Vim regex

http://vimregex.com/#Non-Greedy

s!<h3 \(id="L\d\{3}">2005-\d\{2}-\d\{2}\)</h3>!<h1 \1</h1>!
s!<h3 \(id="L\d\{3}">200\d-\d\{2}-\d\{2}\)</h3>!<h1 \1</h1>!
.,$s!<h3 \(id="L\d\{3,4}">200\d-\d\{2}-\d\{2}\)</h3>!<h1 \1</h1>!

2014-01-17

http://www.meaningengines.com/blog/

Scala frameworks and forms

NOTE: I can generate the eclipse config. within play command, like in sbt, by typing eclipse with-source=true .

Play! has an elegant binding with POJO classes:

Form<User> userForm = form(User.class);

Well, in Scala, this is not so elegant:

val userForm = Form(
  mapping(
    "name" -> text,
    "age" -> number
  )(UserData.apply)(UserData.unapply)
)

See http://www.playframework.com/documentation/2.2.x/JavaForms and

http://www.playframework.com/documentation/2.2.x/ScalaForms

Form is defined this way in Scala:

case class Form[T]( mapping: Mapping[T], data: Map[String, String],
                    errors: Seq[FormError], value: Option[T]) { ...

But in our perspective, all this architecture matters little. When there is no POJO class, as is our assumption for semantic based developement, this does not help. The analog design would then be;

Form userForm = form(classURI, List[URI]);

TODO WIP !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2014-01-15

https://www.google.fr/search?q=semantic+web+based+application+development

Meetup ML

VMX == service !

the cat and the dog

the watch

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

http://stackoverflow.com/questions/10773319/sbt-doesnt-find-file-in-local-maven-repository-although-its-there

http://code.google.com/p/play2-maven-plugin/wiki/UsagePlay22

http://mfizz.com/blog/2013/07/play-framework-module-maven-central

<jmvanel> If I want to update a Map, is it better to use a mutable Map or a var with an unmutable Map ?

<dibblego> why not do it nicely instead?

<jmvanel> Sure dibblego ; my use case is I have a Java Collection [Item1], say c1, Item1 has a field id that is sometimes not defined == "" ; I want generate a complete map with id a key when defined or else a new key .

<jmvanel> let me think a bit ...

<SethTisue__> jmvanel: in general, it's much better to use a var with an immutable Map

<jmvanel> dibblego, a 20 lines solution with the magic of _* : http://pastebin.com/c0SzrrkP

<SethTisue__> jmvanel: you want to push mutability to the outer layers of your program. have an immutable core as a solid foundation.

<SethTisue__> if you can eventually get rid of the mutability altogether, great. pushing it to the outer layers first makes progress towards that.

<jmvanel> SethTisue, sounds good ; Id' like to read some kind of tutorial about that

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

http://brikis98.blogspot.fr/2013/05/10-recipes-for-turning-imperative-java.html

http://wiki.musicbrainz.org/NGS_to_RDF_mappings

Scala

If I want to update a Map, is it better to use a mutable Map or a var with an unmutable Map ?

2014-01-14

http://musicbrainz.org/work/ea6ccf52-c878-34df-a8cb-2d320de462db

http://musicbrainz.org/recording/28562cfe-69d0-42ae-8b41-af11ac03df97

http://www.freebase.com/m/0407f

http://www.freebase.com/m/07y1n1

http://wiki.dbpedia.org/Downloads39#links-to-musicbrainz

https://github.com/mark-watson/java_practical_semantic_web/blob/master/src/com/knowledgebooks/info_spiders/DBpediaLookupClient.java

Test lastfm-java

SemanticApp1

mix LastFM data with Semantic Web info

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html

API Key: 348fffa03b3e0aba154388e84f27388e

Secret: is bac57a94c92726c61948cd45464e1977

-----------

https://github.com/thomwiggers/lastfm-java

Getting Started : http://code.google.com/p/lastfm-java/wiki/GettingStarted ( for the older forked project )

git clone ...
cd lastfm-java
mvn install
mvn eclipse:eclipse -DdownloadSources=true

[INFO] Installing /home/jmv/src/lastfm-java/target/lastfm-java-0.1.3-SNAPSHOT.jar 
to /home/jmv/.m2/repository/de/u-mass/lastfm-java/0.1.3-SNAPSHOT/lastfm-java-0.1.3-SNAPSHOT.jar

Copy this from lastfm-java project's POM:

        <groupId>de.u-mass</groupId>
        <artifactId>lastfm-java</artifactId>
        <version>0.1.3-SNAPSHOT</version>

into new project's dependencies.

2014-01-13

alias play=~/src/play-2.2.1/play

Create a new application :

play new myapp --with maven

Configure eclipse : http://www.playframework.com/documentation/2.1.x/IDE

In index.scala.html I replace

@play20.welcome(message)

with

@message

Choice of a Scala Web framework

Reading "11 Wicket models and forms" http://wicket.apache.org/guide/guide/single.html#chapter10

http://stackoverflow.com/questions/2104724/your-experience-with-scalawicket

http://blog.rubezhanskyy.com/2013/wicket-scala-quickstart/

THE CURIOUS CODER'S JAVA WEB FRAMEWORKS COMPARISON -SPRING MVC, GRAILS, VAADIN, GWT, WICKET, PLAY, STRUTS AND JSF

Questions to answer

2014-01-12

http://www.playframework.com/documentation/2.2.x/ScalaTemplates

https://www.google.fr/search?q=playframework+example+no-sql

<jmvanel> Hi I plan to write a simple CRUD app in Scala backed by an RDF / SPARQL ( this is semantic web ) database ( Jena TDB ) ; ; I'm new to Play! ; are there some exotic database exemples to get me started ?

in freenode IRC : play! : 108 people, Lift : 13 , Scalatra 29.

http://lagivan.blogspot.fr/2013/10/my-first-play-framework-application.html

http://docs.dydra.com/dydra

http://aksw.org/Projects/OntoWiki.html

https://github.com/AKSW/OntoWiki : alas in PHP !

https://github.com/mhgrove/Empire

http://scalate.fusesource.org/ (used in Lift)

http://projects.3kbo.com/datalocker : does not seem to exist really

http://code.google.com/p/swap-scala/wiki/Goals : seems unmaintained

http://www.playframework.com/documentation/2.2.x/Home

http://www.playframework.com/documentation/2.2.x/ScalaTodoList

Why PicoLisp?

Short answer: Because PicoLisp has two characteristic features, which are not found to that extent in other languages:

An integrated database

Equivalence of code and data

http://picolisp.com/5000/!wiki?home

Practical Semantic Web and

Linked Data Applications

http://www.markwatson.com/opencontent_data/book_java.pdf

https://www.google.fr/search?q=sample+web+application+in+scala+semantic+web+SPARQL

2014-01-11

http://semver.org/

http://semver.org/lang/fr/spec/v2.0.0.html

http://zeroturnaround.com/rebellabs/the-2014-decision-makers-guide-to-java-web-frameworks/

Search : "sample web application in scala semantic web SPARQL"

http://www.markwatson.com/opencontent_data/book_java.pdf

https://www.google.fr/search?q=seo+semantic+markup

Sirdancealot is looking at picolisp:

http://picolisp.com/5000/!wiki?home

scala> import scala.xml 
import scala.xml

scala> val x = <a> ggg </a>
x: scala.xml.Elem = <a> ggg </a>

2014-01-10

http://plato.stanford.edu/entries/truth-axiomatic/

<jmv> Reading about Lift HTML templating : http://demo.liftweb.net/templating/

e-book exploring Lift: READING !

http://exploring.liftweb.net/master/index-1.html

<jmv> using Maven’s archetype:generate command to create the skeleton of our project ;

<jmv> like in "Exploring Lift" ;

<jmv> I'm surprised the default is scalaVersion: 2.7.7

<jmv> quite old !

<jmv> can I say 2.10.3 ?

<lopex> why maven ?

<jmv> lopex, it's mentioned at the beginning of in "Exploring Lift" : http://exploring.liftweb.net/master/index-1.html#toc-Section-1.5

<lopex> jmv: I guess that's obsolete

<jmv> I didn't dare to answer 2.10.3

<jmv> works with defaults

<jmv> trying 2.10.3 now

<jmv> fails:

<jmv> [ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (/home/jmv/.m2/repository), central (http://repo.maven.apache.org/maven2)] -> [Help 1]

<jmv> when running mvn jetty:run

<lopex> jmv: use sbt

<lopex> forget maven

mvn archetype:generate -U \
  -DarchetypeGroupId=net.liftweb \
  -DarchetypeArtifactId=lift-archetype-blank \
  -DarchetypeVersion=2.0 \
  -DarchetypeRepository=http://scala-tools.org/repo-releases \
  -DgroupId=demo.helloworld \
  -DartifactId=helloworld \
  -Dversion=1.0-SNAPSHOT

http://liftweb.net/download

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

http://wiki.dbpedia.org/lookup/

http://lookup.dbpedia.org/api/search.asmx/KeywordSearch?QueryClass=place&QueryString=berlin

google store structured data

http://stackoverflow.com/questions/17947192/using-google-drive-to-store-apps-data-in-structured-format-similar-to-dropbox-d

2014-01-09

http://planetrdf.com/

<jmv> meanwhile I look at this : http://wiki.dbpedia.org/lookup/

<jmv> can be very useful in EG applications

Compare lift & play framework

Synthesis:

http://www.coderanch.com/t/604166/Scala/Play-Lift

http://stackoverflow.com/questions/13387554/play-vs-lift-pain-points

http://stackoverflow.com/questions/3670237/should-i-use-play-or-lift-for-doing-web-development-in-scala

http://prac.im.pwr.wroc.pl/~jlemiesz/info/listy/compWebFrameworks.pdf

http://archive.org/stream/Play-frameworkBook/Introducing_the_Play_Framework-final_djvu.txt

Banana-RDF

<jmv> I begin to find my way around in Banana-RDF ,

<jmv> and came with a list of questions to Alex

Silk, a semantic web app in Scala

http://wifo5-03.informatik.uni-mannheim.de/bizer/silk/#download

<jmv> I just looked at Silk : http://wifo5-03.informatik.uni-mannheim.de/bizer/silk/

<jmv> a semantic web app in Scala

<jmv> I fdon't know exactly was it does though, and how flexible it is.

<jmv> It should be here : https://www.assembla.com/spaces/silk/wiki/Silk_Workbench

<jmv> downloaded the source

git clone git://git.assembla.com/silk.git

2014-01-08

in class GraphStoreTest:

//  val graphStore = GraphStore[Rdf](store)
  val graphStore = store

After removing with git experimental/ and ldp/ , and corresponding paragraphs in build.scala:

> eclipse
[info] About to create Eclipse project files for your project(s).
[info] Successfully created Eclipse project files for project(s):
[info] banana-jena
[info] examples
[info] banana-rdf
[info] banana-rdf-test-suite
[info] banana-sesame
[info] patch

[info] Updating {file:/home/jmv/src/MISC_TESTS/banana-rdf/}experimental...
[info] Resolving org.fusesource.jansi#jansi;1.4 ...
[info] Done updating.
[error] Modules were resolved with conflicting cross-version suffixes in {file:/home/jmv/src/MISC_TESTS/banana-rdf/}experimental:
[error]    org.scala-stm:scala-stm _2.10, _2.10.0
[trace] Stack trace suppressed: run last experimental/*:update for the full output.
[error] (experimental/*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm
[error] Modules were resolved with conflicting cross-version suffixes in {file:/home/jmv/src/MISC_TESTS/banana-rdf/}experimental:
[error]    org.scala-stm:scala-stm _2.10, _2.10.0
[trace] Stack trace suppressed: run last experimental/*:update for the full output.
[error] (experimental/*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm
[error] Modules were resolved with conflicting cross-version suffixes in {file:/home/jmv/src/MISC_TESTS/banana-rdf/}experimental:
[error]    org.scala-stm:scala-stm _2.10, _2.10.0
[trace] Stack trace suppressed: run last experimental/*:update for the full output.
[error] (experimental/*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm

https://github.com/typesafehub/sbteclipse

git clone https://github.com/typesafehub/sbteclipse

show full-classpath

show allDependencies

[info] examples/compile:fullClasspath
[info] List(Attributed(/home/jmv/src/banana-rdf/examples/target/scala-2.10/classes), Attributed(/home/jmv/src/banana-rdf/sesame/target/scala-2.10/classes), Attributed(/home/jmv/src/banana-rdf/rdf/target/scala-2.10/classes), Attributed(/home/jmv/src/banana-rdf/jena/target/scala-2.10/classes), Attributed(/home/jmv/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.3.jar), Attributed(/home/jmv/.ivy2/cache/com.typesafe.akka/akka-actor_2.10/bundles/akka-actor_2.10-2.1.4.jar), Attributed(/home/jmv/.ivy2/cache/com.typesafe/config/bundles/config-1.0.0.jar), Attributed(/home/jmv/.ivy2/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.0.4.jar), Attributed(/home/jmv/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar), Attributed(/home/jmv/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.2.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryalgebra-evaluation/jars/sesame-queryalgebra-evaluation-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryalgebra-model/jars/sesame-queryalgebra-model-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-model/jars/sesame-model-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-util/jars/sesame-util-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-query/jars/sesame-query-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-rio-api/jars/sesame-rio-api-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-repository-sparql/jars/sesame-repository-sparql-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-repository-api/jars/sesame-repository-api-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-http-client/jars/sesame-http-client-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-http-protocol/jars/sesame-http-protocol-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-rio-ntriples/jars/sesame-rio-ntriples-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/commons-io/commons-io/jars/commons-io-2.4.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryresultio-api/jars/sesame-queryresultio-api-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/commons-httpclient/commons-httpclient/jars/commons-httpclient-3.1.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryparser-api/jars/sesame-queryparser-api-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryparser-sparql/jars/sesame-queryparser-sparql-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryresultio-sparqlxml/jars/sesame-queryresultio-sparqlxml-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-rio-datatypes/jars/sesame-rio-datatypes-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-rio-languages/jars/sesame-rio-languages-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryresultio-sparqljson/jars/sesame-queryresultio-sparqljson-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/com.fasterxml.jackson.core/jackson-core/jars/jackson-core-2.2.1.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-rio-turtle/jars/sesame-rio-turtle-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-rio-rdfxml/jars/sesame-rio-rdfxml-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-sail-memory/jars/sesame-sail-memory-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-sail-api/jars/sesame-sail-api-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-sail-inferencer/jars/sesame-sail-inferencer-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-queryparser-serql/jars/sesame-queryparser-serql-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-sail-nativerdf/jars/sesame-sail-nativerdf-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.openrdf.sesame/sesame-repository-sail/jars/sesame-repository-sail-2.7.6.jar), Attributed(/home/jmv/.ivy2/cache/org.apache.jena/jena-tdb/jars/jena-tdb-1.0.0.jar), Attributed(/home/jmv/.ivy2/cache/org.apache.jena/jena-arq/jars/jena-arq-2.11.0.jar), Attributed(/home/jmv/.ivy2/cache/org.apache.jena/jena-core/jars/jena-core-2.11.0.jar), Attributed(/home/jmv/.ivy2/cache/org.apache.jena/jena-iri/jars/jena-iri-1.0.0.jar), Attributed(/home/jmv/.ivy2/cache/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar), Attributed(/home/jmv/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.4.jar), Attributed(/home/jmv/.ivy2/cache/log4j/log4j/bundles/log4j-1.2.16.jar), Attributed(/home/jmv/.ivy2/cache/xerces/xercesImpl/jars/xercesImpl-2.11.0.jar), Attributed(/home/jmv/.ivy2/cache/xml-apis/xml-apis/jars/xml-apis-1.4.01.jar), Attributed(/home/jmv/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.2.3.jar), Attributed(/home/jmv/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.2.2.jar), Attributed(/home/jmv/ .ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.6.jar), Attributed(/home/jmv/.ivy2/cache/org.slf4j/jcl-over-slf4j/jars/jcl-over-slf4j-1.6.4.jar), Attributed(/home/jmv/.ivy2/cache/com.fasterxml/aalto-xml/bundles/aalto-xml-0.9.7.jar), Attributed(/home/jmv/.ivy2/cache/org.codehaus.woodstox/stax2-api/jars/stax2-api-3.0.3.jar), Attributed(/home/jmv/.ivy2/cache/javax.xml.stream/stax-api/jars/stax-api-1.0-2.jar))

[info] banana-rdf-test-suite/compile:fullClasspath
[info] List(Attributed(/home/jmv/src/banana-rdf/rdf-test-suite/target/scala-2.10/classes), Attributed(/home/jmv/src/banana-rdf/rdf/target/scala-2.10/classes), Attributed(/home/jmv/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.3.jar), Attributed(/home/jmv/.ivy2/cache/com.typesafe.akka/akka-actor_2.10/bundles/akka-actor_2.10-2.1.4.jar), Attributed(/home/jmv/.ivy2/cache/com.typesafe/config/bundles/config-1.0.0.jar), Attributed(/home/jmv/.ivy2/cache/org.scalaz/scalaz-core_2.10/bundles/scalaz-core_2.10-7.0.4.jar), Attributed(/home/jmv/.ivy2/cache/joda-time/joda-time/jars/joda-time-2.1.jar), Attributed(/home/jmv/.ivy2/cache/org.joda/joda-convert/jars/joda-convert-1.2.jar), Attributed(/home/jmv/.ivy2/cache/org.scalatest/scalatest_2.10/jars/scalatest_2.10-2.0.RC1-SNAP4.jar))

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/impl/client/SystemDefaultHttpClient
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.execGet(HttpQuery.java:304)
at com.hp.hpl.jena.sparql.engine.http.HttpQuery.exec(HttpQuery.java:276)
at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execSelect(QueryEngineHTTP.java:346)
at org.w3.banana.jena.JenaSparqlHttpEngine.executeSelect(JenaSparqlHttpEngine.scala:30)
at org.w3.banana.jena.JenaSparqlHttpEngine.executeSelect(JenaSparqlHttpEngine.scala:10)
at org.w3.banana.SparqlEngine$class.executeSelect(SparqlEngine.scala:16)
at org.w3.banana.jena.JenaSparqlHttpEngine.executeSelect(JenaSparqlHttpEngine.scala:10)
at org.w3.banana.examples.SPARQLExample2$.aux$1(SPARQL.scala:42)
at org.w3.banana.examples.SPARQLExample2$.main(SPARQL.scala:53)
at org.w3.banana.examples.SPARQLExample2.main(SPARQL.scala)

2014-01-07

Create Geographical Maps of gardens

jmvanel> Hi I need an Android app to create lon-lat points on the field and vocally associate a point with information; the use case is to map an arboretum

<jmv> Marzatha, atm I don't need a GIS; I need an input app to create any convevient data format, preferably RDF/Turtle;

<jmv> I want to say "Pinus sylvestris" when I I am near it, and the app wil record my words and the position

http://wiki.openstreetmap.org/wiki/Key:species

2014-01-06

http://subsonic.org/pages/libraries.jsp

warning: non-variable type argument java.security.interfaces.RSAPublicKey in type pattern (java.security.interfaces.RSAPublicKey, java.security.interfaces.RSAPublicKey) is unchecked since it is eliminated by erasuree

<jmvanel> is there a script to generate part of pom.xml from a sourceforge project ?

Lizzy COMMIT

FIX compilation error in 2 comments in playlist/rmp/Track.java :

[javac] /home/jmv/src/MISC_TESTS/lizzy-code/trunk/src/java/christophedelory/playlist/rmp/Track.java:499: error: unmappable character for encoding UTF8

( occured with Ant and JDK 7 on Ubuntu 13.10 )

2014-01-05

http://svnbook.red-bean.com/en/1.7/svn.tour.importing.html

http://www.javazoom.net/javalayer/documents.html

Tritonus: Open Source Java Sound

http://www.tritonus.org/

http://docs.oracle.com/javase/tutorial/sound/

2014-01-04

http://stackoverflow.com/questions/15203758/asynchronous-ui-update-with-swing

Failed tests:   testTooltip(eulergui.gui.TestEulerGUITooltip): "<HTML><http://exampleS#waza>:<BR></HTML>" does not match pattern: .*Comment for waza in the ex: namespace.*
  testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI):  ts.contains(":Little_Richard"
  verifyPrefixes(deductions.runtime.TestRuleBasedApplicationWithCache): expected:<http://dbpedia.org/property/> but was:<null>

Tests in error: 
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI)
  verifyXXX(deductions.runtime.swing.TestDataGUI): Wait AbstractButton with text "Country_music" loaded
  verifyXXX(deductions.runtime.swing.TestSWExplorer): Wait AbstractButton with text "Country_music" loaded

Tests run: 229, Failures: 3, Errors: 3, Skipped: 0

Thread [ForkJoinPool-1-worker-1]
ProjectGUI$.setEulerGUIIcon(JFrame) line: 151
WindowsFactory$.createWindow() line: 29
BorderLayoutWindow$class.frame(BorderLayoutWindow) line: 13
SemanticTransferHandler$DropTargetImpl.frame$lzycompute() line: 55
SemanticTransferHandler$DropTargetImpl.frame() line: 55
GUIApp$class.$init$(GUIApp) line: 11
SemanticTransferHandler$DropTargetImpl.this(SemanticTransferHandler, N3Form) line: 55
URILoaderImpl$class.deductions$runtime$swing$components$URILoaderImpl$$makeN3Form(URILoaderImpl, String, Set) line: 137
URILoaderImpl$class.displayURI(URILoaderImpl, String) line: 151
DataGUIApp.displayURI(String) line: 24
DataGUI$$anonfun$2.applyOrElse(BoxedUnit, Function1) line: 22
DataGUI$$anonfun$2.applyOrElse(Object, Function1) line: 21
Future$$anonfun$onSuccess$1.apply(Try) line: 117
Future$$anonfun$onSuccess$1.apply(Object) line: 115
CallbackRunnable.run() line: 32
ExecutionContextImpl$$anon$3.exec() line: 107
ForkJoinTask.doExec() line: 260
ForkJoinPool$WorkQueue.pollAndExecAll() line: 1253
ForkJoinPool$WorkQueue.runTask(ForkJoinTask) line: 1346
ForkJoinPool.runWorker(ForkJoinPool$WorkQueue) line: 1979
ForkJoinWorkerThread.run() line: 107

Tests with drag'n'drop in EulerGUI

New feature : Drop from EulerGUI N3 source buttons to EulerGUI buttons panel

Tests

Current situation for drag'n'drop in EulerGUI

What implementations exist?

2014-01-03

Exception in thread "main" java.io.FileNotFoundException: /home/jmv/ebics/client/users/13004414/keystore/CMBRFR2BXXX.p12 (Aucun fichier ou dossier de ce type)

2014-01-02

Studying Portecle software

Reading of a .cert file (PEM) file occurs here:

CertificateFactory cf = CertificateFactory.getInstance(X509_CERT_TYPE);
// "Normal" certificate(s)
certs = cf.generateCertificates(in);

in

private static X509Certificate[] loadCertificates(URL url, String encoding)

in class X509CertUtil

where encoding==null

with version 1.50 of BouncyCastle.

NOTE: certificates formats are tested in this order : PKCS7_ENCODING, PKIPATH_ENCODING, null, OPENSSL_PEM_ENCODING }

in method X509CertUtil.loadCertificates(URL url)

Thread [AWT-EventQueue-0] (Suspended)
X509CertUtil.loadCertificates(URL, String) line: 223
X509CertUtil.loadCertificates(URL, Collection<Exception>) line: 119
DViewCertificate.showAndWait(Window, Object) line: 182
FPortecle.examineCert(File) line: 2379
FPortecle.access$9(FPortecle, File) line: 2365
FPortecle$ExamineCertAction.act() line: 6363
FPortecle$ExamineCertAction(FPortecle$AbstractAction).actionPerformed(ActionEvent) line: 6509
JMenuItem(AbstractButton).fireActionPerformed(ActionEvent) line: 1995
AbstractButton$Handler.actionPerformed(ActionEvent) line: 2318
DefaultButtonModel.fireActionPerformed(ActionEvent) line: 387
DefaultButtonModel.setPressed(boolean) line: 242
JMenuItem(AbstractButton).doClick(int) line: 357
BasicMenuItemUI.doClick(MenuSelectionManager) line: 809
BasicMenuItemUI$Handler.mouseReleased(MouseEvent) line: 850
JMenuItem(Component).processMouseEvent(MouseEvent) line: 6289
JMenuItem(JComponent).processMouseEvent(MouseEvent) line: 3267
JMenuItem(Component).processEvent(AWTEvent) line: 6054
JMenuItem(Container).processEvent(AWTEvent) line: 2041
JMenuItem(Component).dispatchEventImpl(AWTEvent) line: 4652
JMenuItem(Container).dispatchEventImpl(AWTEvent) line: 2099
JMenuItem(Component).dispatchEvent(AWTEvent) line: 4482
LightweightDispatcher.retargetMouseEvent(Component, int, MouseEvent) line: 4577
LightweightDispatcher.processMouseEvent(MouseEvent) line: 4238
LightweightDispatcher.dispatchEvent(AWTEvent) line: 4168
FPortecle(Container).dispatchEventImpl(AWTEvent) line: 2085
FPortecle(Window).dispatchEventImpl(AWTEvent) line: 2478
FPortecle(Component).dispatchEvent(AWTEvent) line: 4482
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 644
EventQueue.access$000(EventQueue, AWTEvent, Object) line: 85
EventQueue$1.run() line: 603
EventQueue$1.run() line: 601
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
AccessControlContext$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 87
AccessControlContext$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: 98
EventQueue$2.run() line: 617
EventQueue$2.run() line: 615
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
AccessControlContext$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 87
EventQueue.dispatchEvent(AWTEvent) line: 614
EventDispatchThread.pumpOneEventForFilters(int) line: 269
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 184
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 174
EventDispatchThread.pumpEvents(int, Conditional) line: 169
EventDispatchThread.pumpEvents(Conditional) line: 161
EventDispatchThread.run() line: 122

2013-12-31

new method N3JTable2.subscribeTripleAdded(classURI: String) to subscribe to triple added of the specified RDF class

TESTED in N3TableModelTest.runTestRuleBasedApp2()

InferenceSwingWorker.doInBackground (): class eulergui.inference.drools.DroolsInferenceEngine
java.lang.NullPointerException
at java.awt.Container.remove(Container.java:1254)
at eulergui.gui.view.SourceFilesView.doAddButtonForSearch(SourceFilesView.scala:110)
at eulergui.gui.controller.ProjectGUI_Updater.n3SearchAdded(ProjectGUI_Updater.scala:31)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Search$1.apply(ProjectChangeSupport.scala:63)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Search$1.apply(ProjectChangeSupport.scala:63)
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
at eulergui.project.ProjectChangeSupport.fireAddN3Search(ProjectChangeSupport.scala:63)
at eulergui.project.Project.addN3Search(Project.java:522)
at eulergui.project.Project.setN3Query(Project.java:459)
at eulergui.project.Project.useEulerArgumentPass(Project.java:862)
at eulergui.project.Project.prepareDrools(Project.java:848)
at eulergui.project.Project.doRunDrools(Project.java:802)
at eulergui.project.Project.runDroolsTriples(Project.java:737)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30)
at eulergui.gui.inference.InferenceSwingWorker.launchAndDisplayErrors(InferenceSwingWorker.scala:42)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:37)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:20)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at javax.swing.SwingWorker.run(SwingWorker.java:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)

2013-12-30

http://pavelfatin.com/design-patterns-in-scala/

Deprecating the Observer Pattern

EPFL-REPORT-148043

Ingo Maier Tiark Rompf Martin Odersky

http://lampwww.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf

https://github.com/ingoem/scala-react

2013-12-29

COMMIT

add checkNonDownloadableURI() in URILoaderImpl.scala

checks if url String startsWith("spotify:") or "isbn:"

if true , does not try to download the URI

<jmv> reading http://lampwww.epfl.ch/~imaier/pub/DeprecatingObserversTR2010.pdf

mp3 : prefix not found on prefix.cc

@prefix mp3: <http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#> .
{ ?URI log:uri ?u .
  ?u string:startsWith "spotify:track/" .
} => {
  ?URI a mp3:Track .
}.

does not works with Drools:

when
# $u == $URI
  eval( $u.toString().startsWith( "spotify:track/" .toString() ) )
then
  java.lang.String $u = $URI.toString().replaceFirst( "^<", "\"").replaceFirst( ">$", "\"");
  Triple newTriple;
  TripleResult newTripleResult;
  String $URI = Triple.resource("URI") ;
  newTriple = new Triple(  );
  newTriple.setSubject( $URI );
  newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
  newTriple.setObject( "<http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#Track>" );  insertLogical( newTriple );
end

with messages:

Drools Error: Rule Compilation error $u cannot be resolved
$URI cannot be resolved
ErrorLines:  - 27

http://www.edu-apps.org/index.html

CS171 Visualization, Harvard

http://cs171.org/

http://booksites.artima.com/programming_in_scala_2ed/examples/html/ch17.html#sec2

2013-12-25

In Eclipse, I would like to replace a character (say ',') by a new line in a file.

Check box 'Regular Expressions' and use '\R' in the 'Replace with' box

New use case ofr semantic app. : manage mail snippets

Nice Prolog cartoon by AnniePoo : http://www.pathwayslms.com/swipltuts/teacher/index.html

http://www.pathwayslms.com/swipltuts/student/index.html

2013-12-18

TODO

2013-12-16

http://www.smartlogic.com/taxonomy-ontology-management?gclid=CMPFicq-tLsCFSnpwgodRk4ATg

ATTEMPTO ==> Drools translation

There could be a Scala grammar for DRS, maybe made with help from the existing OCAML grammar.

2013-12-15

2013-12-13

http://www.projet-claire.fr/

C.L.A.I.R.E

Community Learning through Adaptive and Interactive multichannel Resources for Educatio

COMMIT

- FIX tests TestDataGUI and TestDomainApp ( and corrresponding applications)

(with RuleBasedAppImmutable did not work ; maybe with lazy var)

- FIX TripleStoreTDB print GraphNodes Summary

2013-12-12

Swing question:

I try to FIX some tests in musical player app: update of a TableModel were made not on the AWT event thread

I wonder if there is a way to statically check the code, or a way to fail fast at runtime

COMMIT

- FIX test BasicRuntimeTest ( and many others ) : FIX URLHelper.getURI_prefix_localName

- defensive programming in DatatypeHelper

- add TripleStoreTDB.printGraphNodesSummary() (WIP)

java.lang.NoSuchMethodException: javax.xml.datatype.XMLGregorianCalendar.<init>(java.lang.String)
at java.lang.Class.getConstructor0(Class.java:2810)
at java.lang.Class.getConstructor(Class.java:1718)
at unif.DatatypeHelper.formatPlainLiteralInN3(DatatypeHelper.java:239)
at taxochronos.SoundDatabase.insertTripleInKB(SoundDatabase.scala:394)

COMMIT

- now display abbreviated URI's in URI buttons in N3JTable2.scala

- FIXED bug in URLHelper.getURI_prefix_localName()

TODO also show abbreviated URI's in N3Form

2013-12-11

dancer Perl

COMMIT

- FIX /DataGUIWindow, RuleBasedMutable

- TripleComboBoxes : make main combobox smaller

- DBPediaComboBoxAddTriple :

* add message : "Triple saved in persistant store: ..."

* dispose windows after tagging

2013-12-10

DescriptionResourcePathLocationType

overriding variable ruleBasedApplicationMutable in trait RuleBasedMutable of type deductions.runtime.RuleBasedApplicationWithCache; variable ruleBasedApplicationMutable cannot override a mutable variable

DataGUIWindow.scala /eulergui-code/src/main/scala/deductions/runtime/swing/data_manager line 26 Scala Problem

COMMIT

make a mutable RuleBasedApp and DataGUIWindow for musical player app

Interesting answer on "Attempto with Temporal (Tensed) Logic"

Scala : difference between val arguments to constructors and plain arguments

trait S {val s="bonjour" ; override def toString() :String = { s } }
class S2(s:String) extends Object with S
println( new S2("au revoir") )
class S3(override val s:String) extends Object with S
println( new S3("au revoir") )

class S(s:String="bonjour"){ override def toString() :String = { s } }
class S2 extends S { println ( "s from super: " + s) }

<console>:8: error: not found: value s
       class S2 extends S { println ( "s from super: " + s) }
                                                         ^

2013-12-09

Callimachus RDFa

The Callimachus Project: RDFa as a Web Template Language

Steve Battle 1 , David Wood 2

, James Leigh 2 , Luke Ruth 2 1

Sysemia Ltd, UK steve.battle@sysemia.co.uk 2 3 RoundStones, USA

{david, james, luke}@3roundstones.com

http://ceur-ws.org/Vol-905/BattleEtAl_COLD2012.pdf

Added EulerGUI Contacts vocab' prefix on prefix.cc

Added ec prefix on prefix.cc http://eulergui.sourceforge.net/contacts.owl.n3#

EulerGUI N3 form TODO

2013-12-08

Running svn-bissect

GOOD=3844
svn update -r $GOOD
# this succeeds:
DISPLAY=:1 mvn --offline -Dtest=TestDataGUI.scala test
# then I can intialize bisect:
svn-bisect start $GOOD 3855
LAST=/home/jmv/src/eulergui-code/eulergui
TESTS=src/test/scala/deductions/runtime/swing
DISPLAY=:1
svn-bisect run "cp $LAST/$TESTS/* $TESTS ; mvn --offline -Dtest=TestDataGUI test"

r3847 | jmvanel | 2013-11-29 00:33:02 +0100 (ven. 29 nov. 2013) | 3 lignes

3rd step of modularizing existing components in SWExplorer etc :
- pave the way using future in SWExplorer for loading an URL
- field renaming

java -cp target/eulergui-2.1-SNAPSHOT-jar-with-dependencies.jar deductions.runtime.swing.data_manager.DataGUI dbpedia:Bob_Dylan 

svn -r3850 up # works : but very slowly

r3848 OK

r3849 OK

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

COMMIT

TODO : N3Form, tests TestDomainApp and TestDataGUI, loading form URI input field and hyperlinks buttons are broken

* was trying to have same arguments for EG (Euler) , DataGUI, while having cache functionality

* it is desirable to have same code for reading CL arguments and loading from user action

* it is desirable that EulerGUI app. also uses TDB cache

2013-12-07

From

http://jena.apache.org/documentation/tdb/tdb_transactions.html#multi-threaded-use

Each dataset object has one transaction active at a time. The usual idiom within multi-threaded applications is to have one dataset per thread, and so there is one transaction per thread.

2013-12-06

TODO EG

COMMIT

add new test TestDataGUI ( currently failing )

svn up -r 3873
 1044  mvn clean  test -Dtest=TestDomainApp --offline
 1045  svn log src/**/BoxLayoutWindow.*a
 1046  svn info
 1047  mvn test -Dtest=TestDomainApp --offline
 1048  ls -ltr target
 1049  # mvn package  --offline
 1050  less quick_build.sh
 1051  mvn package -Dmaven.test.skip=true --offline
 1052  which datagui
 1053  java -cp  target/eulergui-2.1-SNAPSHOT-jar-with-dependencies.jar deductions.runtime.swing.data_manager.DataGUI dbpedia:Bob_Dylan &
 1054  mvn test -Dtest=TestDataGUI --offline
 1055  class DataGUI{} // for tests
 1056  # class DataGUI{} // for tests
 1057  gvim src/main/scala/deductions/runtime/swing/data_manager/DataGUI.scala
 1058  mvn test -Dtest=TestDataGUI --offline

2013-12-05

http://www.scalatra.org/

restlet.com http://restlet.org/

IDEAS for EG

Search "semantic web hosting"

https://pods.iplantcollaborative.org/wiki/display/SemanticWeb/Hosting+Semantic+Web+Services

http://www.iplantcollaborative.org/

java -jar ~/.m2/repository/eulergui/eulergui/2.1-SNAPSHOT/eulergui-2.1-20131130.184703-4-jar-with-dependencies.jar &

java.io.FileNotFoundException: /home/jmv/src/eulergui-code/eulergui/euler_project.xml.n3p (Aucun fichier ou dossier de ce type)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:146)
at eulergui.inference.drools.impl.ParserLink.doParse(ParserLink.java:164)
at eulergui.inference.drools.impl.ParserLink.parse(ParserLink.java:124)
at eulergui.rdf.TripleStoreHelper$.copyN3SourceToTripleStore(TripleStoreHelper.scala:177)
at deductions.runtime.RuleBasedApplicationWithCache.storeN3SourceInCache(RuleBasedApplicationWithCache.scala:161)
at deductions.runtime.RuleBasedApplicationWithCache.addKnowledge(RuleBasedApplicationWithCache.scala:59)
at deductions.runtime.swing.explorer.SWExplorerWindow$$anonfun$1.apply(SWExplorerWindow.scala:125)
at deductions.runtime.swing.explorer.SWExplorerWindow$$anonfun$1.apply(SWExplorerWindow.scala:124)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)

PROBLEM when managing N3 Cache for N3 source http://dbpedia.org/resource/Bob_Dylan
Error when downloading RDF from the URI: http://dbpedia.org/resource/Bob_Dylan : java.net.SocketTimeoutException: connect timed out
Cause:
java.net.SocketTimeoutException: connect timed out
 , caused by connect timed out

Caused by: java.net.UnknownHostException: en.wikipedia.org
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)
at eulergui.util.URLHelper$.downloadFromURL2(URLHelper.scala:247)
at eulergui.util.URLHelper$.downloadFromURL(URLHelper.scala:241)
at eulergui.util.URLHelper$.downloadFromURL(URLHelper.scala:215)
at eulergui.util.WikipediaCompletion$.completions(WikipediaCompletion.scala:30)
at deductions.runtime.swing.DBPediaComboBox.deductions$runtime$swing$DBPediaComboBox$$complete(DBPediaComboBox.scala:58)
at deductions.runtime.swing.DBPediaComboBox$$anon$1$$anon$2.keyReleased(DBPediaComboBox.scala:47)

vim /home/jmv/.m2/repository/org/w3/banana-jena_2.10/0.5-SNAPSHOT/banana-jena_2.10-0.5-SNAPSHOT.pom
mvn eclipse:eclipse --offline

Explore the idea of "small" data

apidays

apidays2013

APIdays-loundge

apinetwork

Janrain

aniversaire + friend information => product recomendation

Pfizer : doctor access only ; Cegedim ID in France

1000mercis : Real Time Bidding (RTB)

lots of math

----------

http://jsonapi.org/

http://jsonapi.org/examples/

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

http://navitia.io/

http://api.navitia.io/v1

constellation matrix

 % json_pp     
{"links": [{"href": "http://api.navitia.io/v1/coverage/", "rel": "coverage", "title": "Coverage of navitia"}, {"href": "/coord/lon;lat", "rel": "coord", "title": "Inverted geocooding"}, {"href": "v1/journeys", "rel": "journeys", "title": "Compute journeys"}]}
{
   "links" : [
      {
         "rel" : "coverage",
         "href" : "http://api.navitia.io/v1/coverage/",
         "title" : "Coverage of navitia"
      },
      {
         "rel" : "coord",
         "href" : "/coord/lon;lat",
         "title" : "Inverted geocooding"
      },
      {
         "rel" : "journeys",
         "href" : "v1/journeys",
         "title" : "Compute journeys"
      }
   ]
}

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

Tony Blank @thetonyblank

contactuality https://www.contactually.com/

context.io

http://context.io/how-it-works

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

Steve Sfarz, VP Engineering, Restlet & APISpark

How to Build your Web API

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

https://github.com/kinlane

https://github.com/wordnik/swagger-core/wiki/API-Declaration

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

Audrey Watters, hackeducation.com

Education APIs: The Good, The Bad, and The Ugly

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

Open Bank Project

http://openbankproject.com/en/

http://theodi.org/case-studies/demand-logic-case-study

they use oauth

It's using stb , so it's a Scala project ( some Java though ).

https://github.com/OpenBankProject/OBP-API/tree/develop/src/main

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

post haiyan thyphoon

vital hashtags

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

http://www.lafonderie-idf.fr/

http://beta.makesense.org/

http://www.opendatasoft.com/fr/tag/jean-marc-lazard/

http://www.w3.org/TR/vocab-dcat/

EulerGUI + Banana RDF

,
      // jmv
      // libraryDependencies += "dependencyGroupId" %% "dependencyArtifactId" % "dependencyVersion" exclude( "org.scala-stm", "scala-stm_2.10.0" )
      // libraryDependencies += "org.scala-stm" % "scala-stm" exclude( version="2.10.0" )

2013-12-04

Failed tests:
  testTooltip(eulergui.gui.TestEulerGUITooltip): "<HTML><http://exampleS#waza>:<BR></HTML>" does not match pattern: .*Comment for waza in the ex: namespace.*
  testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI):  ts.contains(":Little_Richard"

Tests run: 173, Failures: 2, Errors: 0, Skipped: 0
[INFO] Total time: 18 minutes 14 seconds

COMMIT

WIP : code to add DataGUITrait into DomainApp, but nothing visible !

experiment with overriding function with self: SuperType => f(x)

COMMIT

Finish modularization of feature into traits:

now SWExplorerWindow and DataGUIWindow have empty body, "extends" and "with" clauses"extends" and "with" clauses

TODO

* make a mutable RuleBasedApp for musical player app

* add search feature to DaomainApplication

2013-12-03

DescriptionResourcePathLocationType
overriding value editEnabled in trait URILoaderImpl of type Boolean;  
method editEnabled needs to be a stable, immutable value
DataGUIWindow.scala/eulergui_test2/src/main/scala/deductions/runtime/swing/data_managerline 136Scala Problem

trait RuleBasedApp
class SWExplorerWindow2 extends RuleBasedApp {
  val i =3
}
val swe = new SWExplorerWindow2
swe.i

Thread [main]
JFrame.this() line: 180
WindowsFactory$.createWindow() line: 25
BorderLayoutWindow$class.frame(BorderLayoutWindow) line: 13
SWExplorerWindow2.frame$lzycompute() line: 11
SWExplorerWindow2.frame() line: 11
RuleBasedApp$class.$init$(RuleBasedApp) line: 18
SWExplorerWindow2.this() line: 11
SWExplorer$delayedInit$body.apply() line: 15
Function0$class.apply$mcV$sp(Function0) line: 40
AbstractFunction0.apply$mcV$sp() line: 12
App$$anonfun$main$1.apply(Function0) line: 71
App$$anonfun$main$1.apply(Object) line: 71
List.foreach(Function1) line: 318
TraversableForwarder$class.foreach(TraversableForwarder, Function1) line: 32
App$class.main(App, Array[String]) line: 71
SWExplorer$.main(Array[String]) line: 14
SWExplorer.main(Array[String]) line: not available

Thread [main]
JFrame.this() line: 180
WindowsFactory$.createWindow() line: 25
GUIApp$class.frame(GUIApp) line: 10
RuleBasedApp.frame$lzycompute() line: 10
RuleBasedApp.frame() line: 10
BorderLayoutWindow$class.$init$(BorderLayoutWindow) line: 14
SWExplorerWindow.this() line: 32
SWExplorer$delayedInit$body.apply() line: 14
Function0$class.apply$mcV$sp(Function0) line: 40
AbstractFunction0.apply$mcV$sp() line: 12
App$$anonfun$main$1.apply(Function0) line: 71
App$$anonfun$main$1.apply(Object) line: 71
List.foreach(Function1) line: 318
TraversableForwarder$class.foreach(TraversableForwarder, Function1) line: 32
App$class.main(App, Array[String]) line: 71
SWExplorer$.main(Array[String]) line: 12
SWExplorer.main(Array[String]) line: not available

[error] Modules were resolved with conflicting cross-version suffixes in {file:/home/jmv/src/banana-rdf/}ldp:
[error]    org.scala-stm:scala-stm _2.10, _2.10.0
[trace] Stack trace suppressed: run last ldp/*:update for the full output.
[error] (ldp/*:update) Conflicting cross-version suffixes in: org.scala-stm:scala-stm
[error] Could not create Eclipse project files:
[error] Error evaluating task 'scalacOptions': error
[error] Error evaluating task 'externalDependencyClasspath': error
[error] Error evaluating task 'update': error
[error] Error evaluating task 'scalacOptions': error
[error] Error evaluating task 'externalDependencyClasspath': error
[error] Error evaluating task 'update': error

2013-12-02

https://github.com/typesafehub/sbteclipse

echo 'addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.4.0")' >> ~/.sbt/0.13/plugins/eclipse.sbt

https://github.com/stample/rww-play

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

[WARNING] /home/jmv/src/eulergui_verbatim/src/main/scala/eulergui/gui/view/TextEditor.scala:601: warning: comparing values of types Unit and Null using `!=' will always yield true
[INFO]         while ((line = reader.readLine()) != null) {

Failed tests:   testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI):  ts.contains(":Little_Richard"

Tests in error: 
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "getText() Component Chooser "# search result of facebook-search.n3"(..)
[INFO] Total time: 21 minutes 24 seconds

"DOM" for RDF?

On public-lod@w3.org

I think my conclusion from the DOM experience was that actually

people wanted jQuery -- something optimized for the language.

My own RDF APIs have been optimized for js and python respectively,

though they share style and many calls.

See undocumented rdflib.js https://github.com/linkeddata/rdflib.js/

I can still think of further optimizations to make writing code

even smoother.

Timbl

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

Looking up LDPath I came across Marmotta [1], which seems rather closer to what I have in mind.

Richard

[1] http://marmotta.apache.org/

Scala make a field f of type T "implicit" , so that methods of T can be called directly

How to make a field f of type T "implicit" as if the class would extend T , so that methods of T can be called directly ?

How to make field name "implicit" as if the class would extend String ?

trait Named { val name : String = "myself" }
class PersonOK extends Named { println( name.substring(0,2) )}
class PersonKO extends Named { println( substring(0,2) )}

<OlegYch> import name._

<jmvanel> Thanks OlegYch ! I knew Scala was helping on this ... and the community :)

// The answer is :
class Person extends Named { import name._ ; println( substring(2) )}

svn --username jmvanel --password ???

EulerGUI design

EulerGUI design with trait

COMMIT

extract more of SWExplorerWindow into URIDisplayAsForm

COMMIT

Extract by Scala IDE refactoring trait URIDisplayAsForm from SWExplorerWindow

Had to add a pre-initialized field uriLoader in class definition of URIDisplayAsForm2 inside SWExplorerWindow

COMMIT

rather clean design with trait s:

trait BorderLayoutWindow extends GUIApp

class RuleBasedApp extends GUIApp

class SWExplorerWindow extends RuleBasedApp with BorderLayoutWindow

class DataGUIWindow extends SWExplorerWindow

trait DomainApplicationUI extends RuleBasedApp with BorderLayoutWindow

object DomainApplication extends RuleBasedApp with DomainApplicationUI

TODO:

trait URIDisplayAsForm extends BorderLayoutWindow with RuleBasedApp

class RuleBasedApp extends App { println( "RBApp " + args.mkString(",")) }
object DomainApplication extends RuleBasedApp { println("D " + args.mkString(",")) }
trait DomainApplicationUI extends RuleBasedApp { println( "UI " + args) }
object DomainApplication2 extends RuleBasedApp with DomainApplicationUI { println( "D2 " +args) }

scala> DomainApplication2.main( Array("b","c") )
UI null
RBApp b,c
D2 [Ljava.lang.String;@4f96fdc

TripleComboBoxes.makeLinkingButton(...).new ActionListener() {...}.actionPerformed(): file:/home/jmv/Musique/Jimi%20Hendrix%20-%20Are%20You%20Experienced/06%20-%20I%20Don't%20Live%20Today.flac <http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#title> "I Don't Live Today"
N3Form.N3Form(ITripleStoreRETE): http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#Track
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at eulergui.rdf.TripleStoreHelper.extractClassURIs(TripleStoreHelper.java:140)
at eulergui.rdf.TripleStoreHelper.extractPredicatesURI(TripleStoreHelper.java:100)
at deductions.runtime.swing.N3Form.<init>(N3Form.java:112)
at deductions.runtime.swing.JTableButtonMouseListener.showURIinN3Form(JTableButtonMouseListener.java:56)
at deductions.runtime.swing.JTableButtonMouseListener.mouseClicked(JTableButtonMouseListener.java:46)

2013-11-30

liste de morceaux synchronisées, liste de propriétés

téléphone

synchronisation

JNLP

HTML5 + JavaScript

2013-11-28

I tried to find an alignment between FOAF and Nepomuk Contact (NCO).

I tried search with owl:sameAs filetype:rdf

http://code.google.com/p/semanticscience/

Semantic Science is a new community portal to support the development of Semantic Web technologies (guides/presentations, RDF/OWL ontologies, knowledge systems) to facilitate the management, integration and discovery of scientific knowledge.

http://www.guidewire.fr/

COMMIT

In SWExplorerWindow.scala, extract getTriplesAndFieldsFromTDB(urlString), downloadPredicatesDeclarations(urlString)

2013-11-28

Mail from Richard C

2013/11/28 Richard Cyganiak <richard@cyganiak.de>

Hi Jean-Marc,

I watched the video, it’s a nice introduction to EulerGUI indeed. Good to see prefix.cc integrated in such a useful way!

Thanks for the compliment .

EulerGUI does in fact more (arguably too much) , but the other videos are in french:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5890

Work goes on now for configurable UI apps for end users, like contacts management, blog, mind mapping, see:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L7253

You 're welcome for a demo :)

Questions about Scala

EulerGUI concatenated TODO's

I concatenated to do items since 2012-12-11

TODO

Already writen:

2013-11-27

cd ~/src/eulergui-code/eulergui/
time svn log --verbose > log.txt

EulerGUI dev

scala_translate n3_project/helpers

Last Appearance of java/deductions/runtime : Revision r3806

TODO

2013-11-25

Hi how to launch Scala interpreter by API ?

https://github.com/cygri/prefix.cc/issues/10

EulerGUI dev

COMMIT

- simplify UI dialog for creating a triple : remove 1 useless click

so DomainApplication is no more resized after pushing "Choose property" in same window

DomainApplication TODO

Thread [SwingWorker-pool-6-thread-1]
N3Form.subscribeTripleAdded(String) line: 133
N3Form.initialize() line: 128
SWExplorerWindow.deductions$runtime$swing$explorer$SWExplorerWindow$$makeN3Form(String) line: 195
SWExplorerWindow$$anon$1.doInBackground() line: 171
SWExplorerWindow$$anon$1.doInBackground() line: 109
SwingWorker$1.call() line: 296
FutureTask.run() line: 262
SwingWorker.run() line: 335
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145
ThreadPoolExecutor$Worker.run() line: 615
Thread.run() line: 744

2013-11-25

https://gitorious.org/gitorious

EulerGUI dev

Tests EulerGUI

Server returned HTTP response code: 400 for URL: http://prefix.cc/gr,x.file.n3

x: dbpedia:odor dbpedia:Rosmarimus .

22:44:13 [AWT-EventQueue-0] [error] AWT-EventQueue-0: EyeHelper.reasonExternalProlog(): argumentsArray: [
eye --nope --wcache http://svn.code.sf.net/p/deductions/code/n3_nojs/rules-documentor.n3 \ /home/jmv/.eulergui/n3_cache/rules-documentor.n3_6341748443252265167.n3 \
--wcache, http://www.w3.org/2003/01/geo/wgs84_pos#, /home/jmv/.eulergui/n3_cache/wgs84_pos#_5450553949685498359.n3
--wcache, http://dbpedia.org/resource/ /home/jmv/.eulergui/n3_cache/resource_4218514508449606604.n3
--wcache, http://www.w3.org/1999/02/22-rdf-syntax-ns#  /home/jmv/.eulergui/n3_cache/22-rdf-syntax-ns#_6528809142652776840.n3
--wcache, http://dbpedia.org/class/yago/ /home/jmv/.eulergui/n3_cache/yago_7899133846321376156.n3
--wcache http://www.w3.org/2000/01/rdf-schema# /home/jmv/.eulergui/n3_cache/rdf-schema#_4232508873863693382.n3
--wcache, http://xmlns.com/foaf/0.1/ /home/jmv/.eulergui/n3_cache/0.1_3259558706133898942.n3
--wcache, http://www.w3.org/2002/07/owl# /home/jmv/.eulergui/n3_cache/owl#_7444740903005683145.n3, --wcache, http://dbpedia.org/property/, /home/jmv/.eulergui/n3_cache/property_265963388524332107.n3, 
http://svn.code.sf.net/p/deductions/code/n3_nojs/rules-documentor.n3
 http://www.w3.org/2003/01/geo/wgs84_pos# http://dbpedia.org/resource/ http://www.w3.org/1999/02/22-rdf-syntax-ns#, http://dbpedia.org/class/yago/, http://www.w3.org/2000/01/rdf-schema#, http://xmlns.com/foaf/0.1/, http://www.w3.org/2002/07/owl#
 http://dbpedia.org/property/
--wcache, http://svn.code.sf.net/p/deductions/code/n3_nojs/rules-documentorQ.n3 /home/jmv/.eulergui/n3_cache/rules-documentorQ.n3_7296035134502101891.n3 \
 --query http://svn.code.sf.net/p/deductions/code/n3_nojs/rules-documentorQ.n3

Problem for deploying snapshot:

[INFO] Retrieving previous build number from repository.eulergui.sf.net
[INFO] repository metadata for: 'snapshot eulergui:eulergui:2.1-SNAPSHOT' could not be found on repository: repository.eulergui.sf.net, so will be created
Uploading: scp://shell.sourceforge.net:/home/project-web/eulergui/htdocs/maven2/eulergui/eulergui/2.1-SNAPSHOT/eulergui-2.1-20131125.151929-1.jar
1858K uploaded  (eulergui-2.1-20131125.151929-1.jar)
[INFO] Retrieving previous metadata from repository.eulergui.sf.net
[INFO] repository metadata for: 'snapshot eulergui:eulergui:2.1-SNAPSHOT' could not be found on repository: repository.eulergui.sf.net, so will be created
[INFO] Uploading repository metadata for: 'snapshot eulergui:eulergui:2.1-SNAPSHOT'
[INFO] Retrieving previous metadata from repository.eulergui.sf.net
[INFO] Uploading repository metadata for: 'artifact eulergui:eulergui'
[INFO] Uploading project information for eulergui 2.1-20131125.151929-1
[INFO] Retrieving previous build number from repository.eulergui.sf.net
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error deploying artifact: Authentication failed: Cannot connect. Reason: verify: false

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Checksum error reading from the Journal.

COMMIT

- dispose popups for entering new triples in TripleComboBoxes.scala

- fix "Create New Id" button : was not saving in TDB also

- fix default match case in AutoCompletion.keyPressed

TODO : after 3 clicks on "Create New Id" button we get :

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Checksum error reading from the Journal.

and after 1 more the app. is frozen !!!!

Announce EulerGUI 2.0

Announce on EulerGUI mailing list

Swig list

semantic-web@w3.org

I am pleased to announce the release 2.0 of EulerGUI, a development tool and a framework for the Semantic Web and rules, under LGPL license, in Java and Scala.

Even if you're not interested in the business rule aspect, EulerGUI is a swiss knife semantic client .

One can type

foaf:

to download the FOAF vocabulary, or use any prefix recorded in prefix.cc .

Then you can see the Turtle source in an editor with syntax coloring and validation, open a tree view using Hermit Description Logics reasoner.

When you edit a new Turtle/N3 file, prefixes are automatically added from prefix.cc , plus you can generate a skeleton vocabulary from the current triples in project.

Video : http://www.youtube.com/watch?v=x6ZgoiH1K9Y

EulerGUI has SPARQL queries, drag'n'drop, local cache, local Jena TDB triple store, navigation from URI to URI, and other goodies.

The accent in this release is the new N3 file format for projects, that is OWL (and Protégé) compatible. Here is an example:

@prefix : <http://eulergui.sf.net/ontology/project.owl.n3#>.
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<> a owl:Ontology.

<> owl:imports <plants.n3> .
               <plants.n3> :isActivated false . # true by default

# the main N3 query
<> :hasN3Query <plants-q.n3> .
               <plants-q.n3> :isMainQuery true .

# Import of an RDF or OWL document
<> owl:imports <herbivores.owl> .

<> :subproject <subproject.n3p.n3> . # recommanded suffix .n3p.n3
<> :postProcessing <project-post.n3p.n3> . # only one postProcessing

The current developments for 2.1 are towards 100% Scala code, modularization, quicker startup, and customizable domain applications.

For a complete list of changes, the change log is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/CHANGELOG

DOWNLOAD:

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

DOWNLOAD a snapshot:

http://eulergui.sourceforge.net/maven2/eulergui/eulergui/2.1-SNAPSHOT/?C=M;O=D

And the ever updated User Manual is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html

Drools list

[Announce] EulerGUI 2.0 - Sent on nov. 28

I am pleased to announce the release 2.0 of EulerGUI, a development tool and a framework for rules and the Semantic Web, under LGPL license, in Java and Scala.

As was already told on this list, EulerGUI has Drools under the hood, plus 4 other rules engines, and integration with controled (formal) english (ATTEMPTO). EulerGUI does not use POJO classes for business data modelization, but Semantic Web triples.

The accent in this release is the new N3 file format for projects, that is OWL (and Protégé) compatible. Here is an example:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/examples/newproject.n3p.n3

EulerGUI has SPARQL queries, drag'n'drop, local cache Jena TDB triple store and more...

The current developments for 2.1 are towards 100% Scala code, modularization, quicker startup, and customizable domain applications based on generic semantic -aware widgets.

For a complete list of changes, the change log is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/CHANGELOG

DOWNLOAD:

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

And the ever updated User Manual is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html

Jena list

I am pleased to announce the release 2.0 of EulerGUI, a development tool and a framework for the Semantic Web and rules, under LGPL license, in Java and Scala.

As was already told on this list, EulerGUI has Jena Core, ARQ and TDB under the hood, plus rules engines, Hermit DL reasoner, and integration with controled (formal) english (ATTEMPTO). Alas Jena rule engine and syntax is not yet integrated; we have currently N3, Drools, SWRL, ATTEMPTO, CLIPS.

EulerGUI has SPARQL queries, drag'n'drop, local cache, local Jena TDB triple store, navigation from URI to URI, and other goodies.

Even if you're not interested in the business rule aspect, EulerGUI is a swiss knife semantic client .

One can type

foaf:

to download the FOAF vocabulary, or use any prefix recorded in prefix.cc .

Then you can see the Turtle source in an editor with syntax coloring and validation, open a tree view using Hermit Description Logics reasoner.

When you edit a new Turtle/N3 file, prefixes are automatically added from prefix.cc , plus you can generate a skeleton vocabulary from the current triples in project.

Video : http://www.youtube.com/watch?v=x6ZgoiH1K9Y

The accent in this release is the new N3 file format for projects, that is OWL (and Protégé) compatible. Here is an example:

@prefix : <http://eulergui.sf.net/ontology/project.owl.n3#>.
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<> a owl:Ontology.

<> owl:imports <plants.n3> .
               <plants.n3> :isActivated false . # true by default

# the main N3 query
<> :hasN3Query <plants-q.n3> .
               <plants-q.n3> :isMainQuery true .

# Import of an RDF or OWL document
<> owl:imports <herbivores.owl> .

<> :subproject <subproject.n3p.n3> . # recommanded suffix .n3p.n3
<> :postProcessing <project-post.n3p.n3> . # only one postProcessing

The current developments for 2.1 are towards 100% Scala code, modularization, quicker startup, and customizable domain applications based on generic semantic-aware widgets.

For a complete list of changes, the change log is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/CHANGELOG

DOWNLOAD:

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

DOWNLOAD a snapshot:

http://eulergui.sourceforge.net/maven2/eulergui/eulergui/2.1-SNAPSHOT/?C=M;O=D

And the ever updated User Manual is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html

Protégé project list

I am pleased to announce the release 2.0 of EulerGUI, a development tool and a framework for the Semantic Web and rules, under LGPL license, in Java and Scala.

Even if you're not interested in the business rule aspect, EulerGUI is a swiss knife semantic client .

One can type

foaf:

to download the FOAF vocabulary, or use any prefix recorded in prefix.cc .

Then you can see the Turtle source in an editor with syntax coloring and validation, open a tree view using Hermit Description Logics reasoner.

When you edit a new Turtle/N3 file, prefixes are automatically added from prefix.cc , plus you can generate a skeleton vocabulary from the current triples in project.

EulerGUI has SPARQL queries, drag'n'drop, local cache, local Jena TDB triple store, navigation from URI to URI, and other goodies.

It is now possible to load an EulerGUI project into Protégé and vice versa.

An EulerGUI project is saved in Turtle, using owl:imports and specific predidates for URI's that are not understandable by Protégé.

The accent in this release is the new N3 file format for projects, that is OWL (and Protégé) compatible. Here is an example:

@prefix : <http://eulergui.sf.net/ontology/project.owl.n3#>.
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<> a owl:Ontology.

<> owl:imports <plants.n3> .
               <plants.n3> :isActivated false . # true by default

# the main N3 query
<> :hasN3Query <plants-q.n3> .
               <plants-q.n3> :isMainQuery true .

# Import of an RDF or OWL document
<> owl:imports <herbivores.owl> .

<> :subproject <subproject.n3p.n3> . # recommanded suffix .n3p.n3
<> :postProcessing <project-post.n3p.n3> . # only one postProcessing

2013-11-24

http://www.wisemapping.org/downloads/source

http://ariejan.net/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/

filezilla -a . -s &

<jmvanel> Hi In a General Discussion, what's the difference between "send email to create a new topic" and "Create Topic" ?

<jmvanel> I guess the supporters are still in bed in California :( .

<FHaag> jmvanel: It's Sunday today, so there won't be much "official support" today, anyway.

<FHaag> !businesshours

<gribble> Sourceforge.net business hours are approximately 13:00 to 22:00 UTC, excluding weekends and holidays. Currently, it is Sun Nov 24 11:28:04 2013 UTC.

<jmvanel> thanks

<jmvanel> My understanding is that "send email to create a new topic" sends a mail to project admins , and "Create Topic" directly creates the Topic .

<jmvanel> I did "send email to create a new topic" and nothing happens , so I'll do the other action.

Scala Actor s example

From Daniel Westheide.

Looking at

http://danielwestheide.com/blog/2013/03/20/the-neophytes-guide-to-scala-part-15-dealing-with-failure-in-actor-systems.html

, actors are hierachised like an army !

import scala.concurrent.future
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import akka.actor.ActorSystem
import akka.actor.Actor

sealed trait CoffeeRequest
case object CappuccinoRequest extends CoffeeRequest
case object EspressoRequest extends CoffeeRequest
case class Bill(cents: Int)
case object ClosingTime
class Barista extends Actor {
  def receive = {
    case CappuccinoRequest =>
      sender ! Bill(250)
      println("I have to prepare a cappuccino!")
    case EspressoRequest =>
      sender ! Bill(200)
      println("Let's prepare an espresso.")
    case ClosingTime => context.system.shutdown()
  }
}

import akka.actor.{ActorRef, Props}

case object CaffeineWithdrawalWarning
class Customer(caffeineSource: ActorRef) extends Actor {
  def receive = {
    case CaffeineWithdrawalWarning => caffeineSource ! EspressoRequest
    case Bill(cents) => println(s"I have to pay $cents cents, or else!")
  }
}

import akka.actor.ActorSystem
val system = ActorSystem("Barista")
val barista = system.actorOf(Props[Barista], "Barista")
val customer = system.actorOf(Props(new Customer(barista)), "Customer")
customer ! CaffeineWithdrawalWarning
barista ! ClosingTime

2013-11-23

  testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI): Frame Title Component Chooser ".*new_source.n3.*"

COMMIT

translate package eulergui/gui/controller into Scala with Scala IDE - tests PASS

maven run test one package only

http://stackoverflow.com/questions/6819888/how-to-run-all-tests-in-a-particular-package-with-maven

COMMIT

FIX testSelectSPARQL(eulergui.gui.TestSPARQLInGUI) : now button for SPARQL table is activated only when there are rows to show

the issue was that setAction() also calls setActivated(true)

TODO still one Error : testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*"

2013-11-22

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 99 in ButtonsPanel))
ButtonsPanel.n3SourceEnablement(N3Source, boolean) line: 99
ButtonsPanel.enableN3Source(N3Source) line: 85
N3ConversionRefesher.updateN3(N3Source) line: 157
UpdateN3Thread.run() line: 40
N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 79
N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 59
ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(ProjectListener) line: 71
ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(Object) line: 71
LinkedHashSet<A>.foreach(Function1<A,U>) line: 87
ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 71
Project.rethrowEventsPlease(ProjectChangeSupport) line: 1355
ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 121
Project.rethrowEventsExceptListener(ProjectListener) line: 1512
ProjectGUI$$anon$3.run() line: 301
Thread.run() line: 744

Strange test error (does not happen in eclipse ) :

testSelectSPARQL(eulergui.gui.TestSPARQLInGUI)  Time elapsed: 0.031 sec  <<< ERROR!
java.lang.NullPointerException
at org.netbeans.jemmy.ClassReference.<init>(ClassReference.java:50)
at org.netbeans.jemmy.EventDispatcher.<init>(EventDispatcher.java:90)
at org.netbeans.jemmy.operators.ComponentOperator.<init>(ComponentOperator.java:191)
at org.netbeans.jemmy.operators.ContainerOperator.<init>(ContainerOperator.java:72)
at org.netbeans.jemmy.operators.WindowOperator.<init>(WindowOperator.java:75)
at org.netbeans.jemmy.util.DefaultVisualizer.makeVisible(DefaultVisualizer.java:202)
at org.netbeans.jemmy.operators.ComponentOperator.makeComponentVisible(ComponentOperator.java:807)
at org.netbeans.jemmy.operators.AbstractButtonOperator.push(AbstractButtonOperator.java:335)
at eulergui.gui.TestJemmy.waitForButtonActiveAndPush(TestJemmy.java:699)
at eulergui.gui.TestSPARQLInGUI.testSelectSPARQL(TestSPARQLInGUI.java:99)

representing hypermedia controls in RDF

Nice discussion on public-lod@w3.org , started by Ruben Verborgh : "representing hypermedia controls in RDF"

http://www.markus-lanthaler.com/hydra/console/?url=http://www.markus-lanthaler.com/hydra/api-demo/

http://netty.io/

Trying Callimachus, a semantic web application framework

echo 'callimachus.username=jmv' >> build.properties
echo 'callimachus.email=jeanmarc.vanel@gmail.com' >> build.properties
echo 'callimachus.password=jmv314' >> build.properties
cp src/callimachus-defaults.conf  etc/callimachus.conf
ant run 

<prototypo> jmvanel, you might be interested in dir.w3.org, which is a Callimachus application.

<prototypo> Also, there are some on demo.3roundstones.com that you can look at.

<prototypo> dir.w3.org is something that you can at least use by submitting a public URL that holds information about an organization.

<prototypo> The demos on demo.3roundstones.com are read-only to the public, though.

<prototypo> LinkedDataDeveloper.com is still in progress, so there are a lot of inoperative apps there at the moment.

<prototypo> jmvanel, you can also have a look at usepa.3roundstones.net, but be aware that we are working on it so it won't always be up.

<prototypo> Most interesting Callimachus applications run behind corporate firewalls :(

Scala Future s

Scala Future s are not lazy; they start to run as soon as created:

scala> val f = future { println("running!" ) }
f: scala.concurrent.Future[Unit] = scala.concurrent.impl.Promise$DefaultPromise@12542011

scala> running!          

scala> f.value
res0: Option[scala.util.Try[Unit]] = Some(Success(()))

It can be used as a convenient way for executing a block of code asynchronously. But also one can register callback(s) about completion of the future.

Nice coffee example from nice Daniel Westheide series "the-neophytes-guide-to-scala" :

http://danielwestheide.com/blog/2013/01/09/the-neophytes-guide-to-scala-part-8-welcome-to-the-future.html

// Some type aliases, just for getting more meaningful method signatures:
type CoffeeBeans = String
type GroundCoffee = String
case class Water(temperature: Int)
type Milk = String
type FrothedMilk = String
type Espresso = String
type Cappuccino = String

case class GrindingException(msg: String) extends Exception(msg)
case class FrothingException(msg: String) extends Exception(msg)
case class WaterBoilingException(msg: String) extends Exception(msg)
case class BrewingException(msg: String) extends Exception(msg)

import scala.concurrent.future
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration._
import scala.util.Random

def grind(beans: CoffeeBeans): Future[GroundCoffee] = future {
  println("start grinding...")
  Thread.sleep(Random.nextInt(2000))
  if (beans == "baked beans") throw GrindingException("are you joking?")
  println("finished grinding...")
  s"ground coffee of $beans"
}

def heatWater(water: Water): Future[Water] = future {
  println("heating the water now")
  Thread.sleep(Random.nextInt(2000))
  println("hot, it's hot!")
  water.copy(temperature = 85)
}

def frothMilk(milk: Milk): Future[FrothedMilk] = future {
  println("milk frothing system engaged!")
  Thread.sleep(Random.nextInt(2000))
  println("shutting down milk frothing system")
  s"frothed $milk"
}

def brew(coffee: GroundCoffee, heatedWater: Water): Future[Espresso] = future {
  println("happy brewing :)")
  Thread.sleep(Random.nextInt(2000))
  println("it's brewed!")
  "espresso"
}

def combine(espresso: Espresso, frothedMilk: FrothedMilk): Cappuccino = "cappuccino"

def prepareCappuccino(): Future[Cappuccino] = {
  val groundCoffee = grind("arabica beans")
  val heatedWater = heatWater(Water(20))
  val frothedMilk = frothMilk("milk")
  for {
    ground <- groundCoffee
    water <- heatedWater
    foam <- frothedMilk
    espresso <- brew(ground, water)
  } yield combine(espresso, foam)
}

Asymchronous execution:

scala> prepareCappuccino()
start grinding...
res0: scala.concurrent.Future[Cappuccino] = scala.concurrent.impl.Promise$DefaultPromise@32f7b6b5

scala> heating the water now
finished grinding...
milk frothing system engaged!
shutting down milk frothing system
hot, it's hot!
happy brewing :)
it's brewed!

Scala string formatting:

scala> val beans = "café"
beans: String = café

scala>  s"ground coffee of $beans"
res0: String = ground coffee of café

2013-11-20

Scala Future s

http://docs.scala-lang.org/overviews/core/futures.html

http://danielwestheide.com/blog/2013/01/09/the-neophytes-guide-to-scala-part-8-welcome-to-the-future.html

Idiomatic scala performance compared to Java

tty1, About Scala performance , I found this article nice :

http://jazzy.id.au/default/2012/10/16/benchmarking_scala_against_java.html

def sortList(list: List[Int]): List[Int] = list match {
  case Nil => Nil
  case head :: tail => sortList(
    tail.filter(_ < head)) ::: head :: sortList(tail.filter(_ >= head))
}

http://jazzy.id.au/default/2012/11/02/scaling_scala_vs_java.html

Pasted from http://stackoverflow.com/questions/5901452/scala-vs-java-performance-and-memory

Scala allows you to defer many aspects of design, implementation and execution relatively easily (with enough background reading and experimentation :)

Deferred Design Features:

Deferred Implementation Features:

Deferred Execution Features: (sorry, no links)

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

~/src/dANN/projects/ % wc **/*.java

64573 240430 2473194 total

~/src/eulergui-code/eulergui/ % wc **/*.java **/*.scala

154940 480450 5074870 total

https://www.mckesson.fr/

 154940  480450 5074870 total
oem-laptop: ~/src/eulergui-code/eulergui/ % wc **/*.java **/*.scala

In praise of Maven

Scala & Machine Learning

From their site: https://github.com/scalanlp/breeze :

Breeze used to have more components, but they are getting sharded out to different libraries. Their new homes are described below:

breeze-process (natural language processing) has become Chalk.

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

Révision de la dernière modification : 3818

Failed tests:   testPostproc(deductions.runtime.RuleBasedApplicationWithCacheTest): expected:<3> but was:<2>

Tests in error: 
  testN3SourcePrepare(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-969356487577968251.n3 ; http://dbpedia.org/sparql
  testSquall(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-5090534439989680660.n3 ; http://dbpedia.org/sparql
  testSelectSPARQL(eulergui.gui.TestSPARQLInGUI)

Tests run: 225, Failures: 1, Errors: 3, Skipped: 0

That's because of dbPedia :

The web-site you are currently trying to access is under maintenance at this time.

We are sorry for any inconvenience this has caused.

Trying Callimachus, a semantic web application framework

http://docs.api.talis.com/platform-api

Here is a .car (Callimachus archive) downloaded from the site:

 % unzip ~/Téléchargements/schools.car
Archive:  /home/jmv/Téléchargements/schools.car
  inflating: school-data.rdf         
  inflating: schools.ttl             
  inflating: School                  
  inflating: Ward                    
  inflating: school-edit.xhtml       
  inflating: school-view.xhtml       
  inflating: ward-list.rq            
  inflating: ward-list.xhtml         
  inflating: ward-view.xhtml

The file for a class (there is nothing for properties) :

% xmllint --format School 
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:calli="http://callimachusproject.org/rdf/2009/framework#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:owl="http://www.w3.org/2002/07/owl#">
  <rdf:Description rdf:about="">
    <calli:administrator rdf:resource="/auth/groups/admin"/>
    <calli:edit rdf:resource="school-edit.xhtml"/>
    <calli:editor rdf:resource="/auth/groups/staff"/>
    <calli:reader rdf:resource="/auth/groups/users"/>
    <calli:view rdf:resource="school-view.xhtml"/>
    <rdf:type rdf:resource="/callimachus/1.0/types/Class"/>
    <rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
    <rdfs:comment>definition of school from legislation in here</rdfs:comment>
    <rdfs:label>School</rdfs:label>
    <rdfs:subClassOf rdf:resource="/callimachus/1.0/types/Editable"/>
    <rdfs:subClassOf rdf:resource="/callimachus/1.0/types/Viewable"/>
    <rdfs:subClassOf rdf:resource="/callimachus/Local"/>
    <owl:equivalentClass rdf:resource="http://education.data.gov.uk/def/school/School"/>
  </rdf:Description>
</rdf:RDF>

The file school-edit.xhtml for editing a class instance; note usage of RDFa ; some {} blocs are processed by the XSLT stylesheet.

<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="/callimachus/template.xsl"?>
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
    xmlns:school="http://education.data.gov.uk/def/school/"
    xmlns:vcard="http://www.w3.org/2006/vcard/ns#">
<head>
        <title resource="?this">{rdfs:label}</title>
</head>
<body>
    <h1 resource="?this">{rdfs:label}</h1>
        <form method="POST" action="" enctype="application/sparql-update" resource="?this" typeof="school:School">
        <fieldset>
            <div class="control-group">
                <label for="name" class="control-label">Name</label>
                        <div class="controls">
                                <input type="text" id="name" class="span5" value="{school:establishmentName}" />
                        </div>
            </div>
        </fieldset>
 ...
      <div class="control-group">
         <label for="phase" class="control-label">Phase</label>
         <div id="phase" class="controls">
            <label class="radio" rel="school:phaseOfEducation" resource="?phase">
            <input type="radio" name="phase" checked="checked" />
            <span rel="rdf:type" resource="http://education.data.gov.uk/def/school/PhaseOfEducation_TERM" property="rdfs:label" />
            </label>
         </div>
      </div>

also ordinary HTML attributes are used : id, rel, .

rel= is similar to property=

Here is the HTML to drop or create a Topic inside the Note object page. Note the usage of the dcterms:hasPart property.

            <div dropzone="link s:text/uri-list" class="control-group"
                    ondrop="return calli.insertResource(event)">
                <label for="topic" class="control-label">Topics
                    <a href="Topic"
                        onclick="return calli.createResource(this, '?create=' + encodeURIComponent(this.href))"
                        class="ui-icon ui-icon-newwin" />
                </label>
                <div id="topic" rel="dcterms:hasPart" class="vbox controls">
                    <span about="?topic" rel="rdf:type" resource="Topic"
                        property="rdfs:label" class="ui-state-highlight" />
                </div>

Journal and Note are declared rdfs:subClassOf /callimachus/1.0/types/Composite , but the type of parts is not declared, it's just a consequence of the XHTML serving to edit the Composite.

http://education.data.gov.uk/def/school/EstablishmentStatus_TERM

http://www.youtube.com/watch?feature=player_embedded&v=7k6msDKODEI#t=0

<jmvanel> trying to use from git , but blocked at callimachus login

<numes> I'm not a callimachus developer

<numes> they are from the US and probably still sleeping there

<jmvanel> I dislike that the install procedure demands to run as root

<jmvanel> ok

<numes> I see what you mean

<jmvanel> I deleted all dir. and redone , and I could login :)

<jmvanel> Now I get this:

<jmvanel> New Folder

<jmvanel> Choose a recognisable label to be used in the URL

<jmvanel> Oops!

<jmvanel> Not a legal boolean value:

<jmvanel> Trying to create a Turtle ==> same message

<jmvanel> plain bug !

<jmvanel> Indeed ant test says:

integrationtest: 
[junit] Running org.callimachusproject.engine.EditResourceIntegrationTest 
[junit] Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 227,91
sec

<jmvanel> After all, just one test failing ...

<jmvanel> but making usage impossible !

http://www.manning.com/dwood/

http://callimachusproject.org/docs/1.2/getting-started-with-callimachus.docbook

cd ~/src/callimachus/
java -jar dist/callimachus-1.3-SNAPSHOT.jar -c etc/callimachus.conf
nov. 21, 2013 11:28:01 AM org.callimachusproject.util.CallimachusPolicy apply
Infos: Restricted file system access in effect
nov. 21, 2013 11:28:01 AM org.callimachusproject.management.CalliServer init
Avertissement: No Web origin is setup on this server

mkdir instance
cd instance
unzip ../dist/callimachus-1.3-SNAPSHOT.zip 
cp  etc/callimachus-defaults.conf etc/callimachus.conf
sudo bin/callimachus-install.sh
sudo bin/callimachus-setup.sh
      
Using BASEDIR: /home/jmv/src/callimachus/instance
Using PORT: 8080
Using ORIGIN: http://localhost:8080
Using JAVA_HOME: /home/jmv/apps/jdk/jre
Using JDK_HOME: /home/jmv/apps/jdk
nov. 21, 2013 11:36:55 AM org.callimachusproject.Setup updateRepositoryConfig
Infos: Creating repository: callimachus
nov. 21, 2013 11:36:55 AM org.openrdf.sail.keyword.KeywordSail initialize
Infos: Reindexing keywords in /home/jmv/src/callimachus/instance/repositories/callimachus
nov. 21, 2013 11:36:56 AM org.openrdf.repository.object.ObjectRepository compileSchema
Infos: Compiling schema
nov. 21, 2013 11:36:57 AM org.callimachusproject.setup.FileUpdater createFileData
Infos: Uploading: http://localhost:8080/favicon.ico
nov. 21, 2013 11:36:58 AM org.callimachusproject.setup.FileUpdater createFileData
Infos: Uploading: http://localhost:8080/robots.txt
nov. 21, 2013 11:36:59 AM org.callimachusproject.setup.CallimachusSetup createOrigin
Infos: Created http://localhost:8080
nov. 21, 2013 11:36:59 AM org.callimachusproject.setup.SparqlUpdateProvider$1 update
Infos: Updating http://localhost:8080 Store
nov. 21, 2013 11:37:01 AM org.callimachusproject.setup.FileUpdater createFileData
Infos: Uploading: http://localhost:8080/main-article.docbook
nov. 21, 2013 11:37:05 AM org.openrdf.repository.object.ObjectRepository compileSchema
Infos: Compiling schema
nov. 21, 2013 11:37:13 AM org.callimachusproject.setup.WebappArchiveImporter importArchive
Infos: Importing http://localhost:8080/callimachus/1.3/
Parsing http://localhost:8080/callimachus/1.3/callimachus-ontology.ttl
Parsing http://localhost:8080/callimachus/1.3/scripts/index.ttl
Parsing http://localhost:8080/callimachus/1.3/types/archive.ttl
Parsing http://localhost:8080/callimachus/1.3/types/article.ttl
Parsing http://localhost:8080/callimachus/1.3/types/book.ttl
Parsing http://localhost:8080/callimachus/1.3/types/change.ttl
Parsing http://localhost:8080/callimachus/1.3/types/class.ttl
Parsing http://localhost:8080/callimachus/1.3/types/composite.ttl
Parsing http://localhost:8080/callimachus/1.3/types/concept.ttl
Parsing http://localhost:8080/callimachus/1.3/types/creatable.ttl
Parsing http://localhost:8080/callimachus/1.3/types/credential.ttl
Parsing http://localhost:8080/callimachus/1.3/types/digest-user.ttl
Parsing http://localhost:8080/callimachus/1.3/types/digest.ttl
Parsing http://localhost:8080/callimachus/1.3/types/domain.ttl
Parsing http://localhost:8080/callimachus/1.3/types/editable.ttl
Parsing http://localhost:8080/callimachus/1.3/types/file.ttl
Parsing http://localhost:8080/callimachus/1.3/types/folder.ttl
Parsing http://localhost:8080/callimachus/1.3/types/font.ttl
Parsing http://localhost:8080/callimachus/1.3/types/graph.ttl
Parsing http://localhost:8080/callimachus/1.3/types/group.ttl
Parsing http://localhost:8080/callimachus/1.3/types/hypertext.ttl
Parsing http://localhost:8080/callimachus/1.3/types/image.ttl
Parsing http://localhost:8080/callimachus/1.3/types/invited-user.ttl
Parsing http://localhost:8080/callimachus/1.3/types/openid.ttl
Parsing http://localhost:8080/callimachus/1.3/types/origin.ttl
Parsing http://localhost:8080/callimachus/1.3/types/page.ttl
Parsing http://localhost:8080/callimachus/1.3/types/pdf.ttl
Parsing http://localhost:8080/callimachus/1.3/types/photo.ttl
Parsing http://localhost:8080/callimachus/1.3/types/pipeline.ttl
Parsing http://localhost:8080/callimachus/1.3/types/profile.ttl
Parsing http://localhost:8080/callimachus/1.3/types/purl.ttl
Parsing http://localhost:8080/callimachus/1.3/types/query.ttl
Parsing http://localhost:8080/callimachus/1.3/types/rdf-datasource.ttl
Parsing http://localhost:8080/callimachus/1.3/types/realm.ttl
Parsing http://localhost:8080/callimachus/1.3/types/relax.ttl
Parsing http://localhost:8080/callimachus/1.3/types/schematron.ttl
Parsing http://localhost:8080/callimachus/1.3/types/script.ttl
Parsing http://localhost:8080/callimachus/1.3/types/serviceable.ttl
Parsing http://localhost:8080/callimachus/1.3/types/sql-datasource.ttl
Parsing http://localhost:8080/callimachus/1.3/types/style.ttl
Parsing http://localhost:8080/callimachus/1.3/types/text.ttl
Parsing http://localhost:8080/callimachus/1.3/types/transform.ttl
Parsing http://localhost:8080/callimachus/1.3/types/vector.ttl
Parsing http://localhost:8080/callimachus/1.3/types/viewable.ttl
Parsing http://localhost:8080/callimachus/1.3/types/xquery.ttl
Storing http://localhost:8080/callimachus/1.3/assets/bootstrap/fonts/glyphicons-halflings-regular.svg
 ....
Infos: Inviting user root@oem-laptop
Use this URL to assign a password

http://localhost:8080/?register&token=b31e7d7ef55ebece14e796624a5c4b80&nonce=1ea5931b&email=root%40oem-laptop

 * Using BASEDIR:   /home/jmv/src/callimachus/instance
 * Using PORT:      8080 
 * Using ORIGIN:    http://localhost:8080
 * Using JAVA_HOME: /home/jmv/apps/jdk/jre
 * Using JDK_HOME:  /home/jmv/apps/jdk
 * Starting callimachus

2013-11-19

[WARNING]  Expected all dependencies to require Scala version: 2.10.3
[WARNING]  eulergui:eulergui:2.1-SNAPSHOT requires scala version: 2.10.3
[WARNING]  eulergui:eulergui:2.1-SNAPSHOT requires scala version: 2.10.3
[WARNING]  org.scala-lang:scala-swing:2.10.3 requires scala version: 2.10.3
[WARNING]  org.scalatest:scalatest_2.10:2.0.M8 requires scala version: 2.10.0
[WARNING] Multiple versions of scala libraries detected!

Failed tests:   testPostproc(deductions.runtime.RuleBasedApplicationWithCacheTest): expected:<3> but was:<0>

Tests in error: 
  testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): JFileChooser's window
  testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): JFileChooser's window
  testSelectSPARQL(eulergui.gui.TestSPARQLInGUI)
  testURIInProject(eulergui.gui.TestCreateProjectInGUI): JFileChooser's window
  testAddNewN3Source(eulergui.gui.TestN3SourceInGUI): JFileChooser's window
  testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI): JFileChooser's window

Tests run: 219, Failures: 1, Errors: 6, Skipped: 0

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

I am migrating little by little my Java app. to Scala; and some things are not as smooth as expected:

I there a way to call from Java a variant of a method with a default argument ?

InferenceSwingWorker.doInBackground (): class eulergui.inference.drools.DroolsInferenceEngine
N3Source.N3Source(): file:/tmp/eg-8042989011521786779.n3
>>>> n3SourceWidgets.getComponent(): javax.swing.JButton[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@6c1dc04a,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=jar:file:/home/jmv/.m2/repository/eulergui/eulergui/2.0-SNAPSHOT/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar!/eulergui/gui/main/sparqlTable.jpg,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=null,defaultCapable=true]
java.lang.reflect.InvocationTargetException
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:606)
at eulergui.inference.drools.impl.DeferredMethodCall.doPperformMethodCall(DeferredMethodCall.java:157)
at eulergui.inference.drools.impl.DeferredMethodCall.doPperformMethodCall(DeferredMethodCall.java:124)
at eulergui.inference.drools.impl.DeferredMethodCall.performMethodCall(DeferredMethodCall.java:117)
at eulergui.inference.drools.impl.DeferredMethodCall.assign(DeferredMethodCall.java:96)
at eulergui.inference.drools.impl.DeferredMethodCall.assign(DeferredMethodCall.java:63)
at infrastructure_rules.Rule_DeferredMethodCall_188350bd1d514453b3a48975411ee4ec.defaultConsequence(Rule_DeferredMethodCall_188350bd1d514453b3a48975411ee4ec.java:10)
at infrastructure_rules.Rule_DeferredMethodCall_188350bd1d514453b3a48975411ee4ecDefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
at infrastructure_rules.Rule_DeferredMethodCall_188350bd1d514453b3a48975411ee4ecDefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
at unif.TripleStoreDrools.fireAllRules(TripleStoreDrools.java:379)
at eulergui.gui.controller.ApplicationKB.fireAllRules(ApplicationKB.java:252)
at eulergui.gui.controller.ApplicationKB.n3SearchAdded(ApplicationKB.java:220)
at eulergui.gui.controller.ApplicationKB.n3QueryAdded(ApplicationKB.java:203)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Query$1.apply(ProjectChangeSupport.scala:79)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Query$1.apply(ProjectChangeSupport.scala:79)
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
at eulergui.project.ProjectChangeSupport.fireAddN3Query(ProjectChangeSupport.scala:79)
at eulergui.project.Project.addN3Query(Project.java:474)
at eulergui.project.Project.setN3Query(Project.java:465)
at eulergui.project.Project.useEulerArgumentPass(Project.java:860)
at eulergui.project.Project.prepareDrools(Project.java:846)
at eulergui.project.Project.doRunDrools(Project.java:800)
at eulergui.project.Project.runDroolsTriples(Project.java:735)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30)
at eulergui.gui.inference.InferenceSwingWorker.launchAndDisplayErrors(InferenceSwingWorker.scala:42)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:37)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:20)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at javax.swing.SwingWorker.run(SwingWorker.java:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.NullPointerException
at java.awt.Container.remove(Container.java:1254)
at eulergui.gui.view.SourceFilesView.doAddButtonForSearch(SourceFilesView.java:137)
at eulergui.gui.controller.ProjectGUI_Updater.n3SearchAdded(ProjectGUI_Updater.java:44)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Search$1.apply(ProjectChangeSupport.scala:63)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Search$1.apply(ProjectChangeSupport.scala:63)
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
at eulergui.project.ProjectChangeSupport.fireAddN3Search(ProjectChangeSupport.scala:63)
at eulergui.project.Project.addN3Search(Project.java:522)
at eulergui.project.Project.setN3Query(Project.java:459)
 ... 41 more
nov. 20, 2013 11:28:07 AM eulergui.project.Project translateN32Drools
Infos: >>>> after cacheObject( "file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure.n3p.n3#rulebase" )
http://eulergui.sourceforge.net/examples#Service112
http://eulergui.sourceforge.net/examples#Service112
N3Source.N3Source(): file:/tmp/eg-7251131875962686990.n3

Callimachus, a semantic web application framework

Questions

cd ~/src/callimachus/
java -jar dist/callimachus-1.3-SNAPSHOT.jar

Missing required option: c
usage: [options]
 -b,--basedir <directory>   Base directory used for local storage
 -c,--conf <file>           The local etc/callimachus.conf file to read
                            settings from
 -h,--help                  Print help (this message) and exit
 -pid <file>                File to store current process id
 -q,--quiet                 Don't print status messages to standard
                            output.
 -trust                     Allow all server code to read, write, and
                            execute all files and directories according to
                            the file system's ACL
 -v,--version               Print version information and exit

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

Thread [main]
SourceFactory.addSource(URL, Project) line: 78
CommandLineArguments.makeProjectFromEulerCommandLine(Array[String]) line: 159
CommandLineArguments.makeProjectsFromUserArgument(Array[String]) line: 78
RuleBasedApplicationHelper$.addKnowledge(RuleBasedApplicationStarter, Array[String]) line: 51
RuleBasedApp$delayedInit$body.apply() line: 10
Function0$class.apply$mcV$sp(Function0) line: 40
AbstractFunction0.apply$mcV$sp() line: 12
App$$anonfun$main$1.apply(Function0) line: 71
App$$anonfun$main$1.apply(Object) line: 71
List.foreach(Function1) line: 318
TraversableForwarder$class.foreach(TraversableForwarder, Function1) line: 32
App$class.main(App, Array[String]) line: 71
RuleBasedApp.main(Array[String]) line: 8
DomainApplication.main(Array[String]) line: not available

2013-11-18

Thread [main]
RuleBasedApplicationStarter.isKnowledgeAdded(URL) line: 132
RuleBasedApplicationStarter.isKnowledgeAdded(String) line: 122
RuleBasedApplicationWithCache.addKnowledge(String) line: 43
RuleBasedApplicationWithCache.addKnowledge(N3Source) line: 114
RuleBasedApplicationWithCache$$anonfun$addKnowledge$1.apply(N3Source) line: 119
RuleBasedApplicationWithCache$$anonfun$addKnowledge$1.apply(Object) line: 119
Iterator$class.foreach(Iterator, Function1) line: 727
AbstractIterator.foreach(Function1) line: 1157
IterableLike$class.foreach(IterableLike, Function1) line: 72
AbstractIterable.foreach(Function1) line: 54
RuleBasedApplicationWithCache.addKnowledge(Project) line: 119
RuleBasedApplicationHelper$$anonfun$addKnowledge$1.apply(Project) line: 52
RuleBasedApplicationHelper$$anonfun$addKnowledge$1.apply(Object) line: 52
Iterator$class.foreach(Iterator, Function1) line: 727
AbstractIterator.foreach(Function1) line: 1157
IterableLike$class.foreach(IterableLike, Function1) line: 72
AbstractIterable.foreach(Function1) line: 54
RuleBasedApplicationHelper$.addKnowledge(RuleBasedApplicationStarter, Array[String]) line: 52
RuleBasedApp$delayedInit$body.apply() line: 10
Function0$class.apply$mcV$sp(Function0) line: 40
AbstractFunction0.apply$mcV$sp() line: 12
App$$anonfun$main$1.apply(Function0) line: 71
App$$anonfun$main$1.apply(Object) line: 71
List.foreach(Function1) line: 318
TraversableForwarder$class.foreach(TraversableForwarder, Function1) line: 32
App$class.main(App, Array[String]) line: 71
RuleBasedApp.main(Array[String]) line: 8
DomainApplication.main(Array[String]) line: not available

name clash between defined and inherited member: method 
getListCellRendererComponent:(list: javax.swing.JList[_ <: String], value: AnyRef, 
 index: Int, isSelected: Boolean, cellHasFocus: Boolean) java.awt.Component 
and method 
getListCellRendererComponent:(list: javax.swing.JList[_ <: String], value: String, 
 index: Int, isSelected: Boolean, cellHasFocus: Boolean) java.awt.Component
 in class BasicComboBoxRenderer have same 
 type after erasure: 
(list: javax.swing.JList, value: Object, index: Int, isSelected: Boolean, cellHasFocus: Boolean)java.awt.Component

[ERROR] /home/jmv/src/eulergui-code/eulergui/src/main/scala/eulergui/gui/actions/ComboBoxRenderer.scala:9: 
    error: illegal inheritance;
[INFO]  self-type eulergui.gui.actions.ComboBoxRenderer[String] does not conform to
    javax.swing.ListCellRenderer[String]'s selftype javax.swing.ListCellRenderer[String]
[INFO] class ComboBoxRenderer[String](private var jComboBox: JComboBox[String]) extends BasicComboBoxRenderer() with ListCellRenderer[String]{ 
[INFO]                                                                                                               ^
[ERROR] /home/jmv/src/eulergui-code/eulergui/src/main/scala/eulergui/gui/actions/SPARQLServiceInputAction.scala:43: error: type mismatch;
[INFO]  found   : eulergui.gui.actions.ComboBoxRenderer[String]
[INFO]  required: javax.swing.ListCellRenderer[_ >: String]
[INFO] Note: String <: Any, but Java-defined trait ListCellRenderer is invariant in type E.
[INFO] You may wish to investigate a wildcard type such as `_ <: Any`. (SLS 3.2.10)
[INFO]     textfield.setRenderer(new ComboBoxRenderer(textfield))
[INFO]                           ^
[ERROR] two errors found

2013-11-17

https://github.com/openlink/Virtuoso-RDFIzer-Mapper-Scripts/blob/master/xslt/ics2rdf.xsl

Semantic Web based applications

Found nothing in http://www.w3.org/community/groups/

Started a page in EG:

Semantic web based applications

2013-11-16

Thread [AWT-EventQueue-0]
TripleStoreDrools.store(ITriple) line: 66
AbstractTripleStore.storeWithLanguage(ITripleStore, String, String, String, String) line: 77
TripleComboBoxes.storeWithDatatypeOrLanguage(ITripleStore, String, String, String, String) line: 240
TripleComboBoxes.persistTriple(String, String, String, String) line: 214
N3Form$$anon$1.focusLost(FocusEvent) line: 315
 ....
EventDispatchThread.run() line: 91

TripleComboBoxes.makeLinkingButton(...).new ActionListener() {...}.actionPerformed(): <jmv6> http://xmlns.com/foaf/0.1/name  Tutti Fruti

Exception in thread "AWT-EventQueue-0" scala.MatchError: 79 (of class java.lang.Integer)
at deductions.runtime.swing.AutoCompletion$$anon$1.keyPressed(AutoCompletion.scala:71)
at java.awt.AWTEventMulticaster.keyPressed(AWTEventMulticaster.java:249)
at java.awt.Component.processKeyEvent(Component.java:6463)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2828)

2013-11-15

Access Scala constants from Java?

Semantic quality check: a big work!

owl:sameAS

OWL disjoint classes

datatype versus object

inference from the domain (range also )

:jmv foaf:homepage "http://truc" . # not severe error !

in need of some smart big SPARQL

http://en.wikipedia.org/wiki/Deductive_database

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

http://www.googleguide.com/advanced_operators_reference.html

Results :

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testSelectSPARQL(eulergui.gui.TestSPARQLInGUI)
  testGetComponent(deductions.runtime.swing.N3FormTest)
  testColumnType(deductions.runtime.swing.N3TableModelTest)

https://class.coursera.org/reactive-001/assignment/view?assignment_id=7

cd ~/src/scalagen/scalagen/
mvn eclipse:clean eclipse:eclipse -Declipse.downloadSources=true

EulerGUI : Scalagen and by hand

Script to replace package $p and its sub packages by its Scala translation and recompile :

p=eulergui/gui

function scala_translate() {
  p=$1
  rm -r src/main/scala
  svn up
  mvn com.mysema.scalagen:scalagen-maven-plugin_2.9.3:0.3.2:main \
    -DtargetFolder=target/scala
  rm -r src/main/java/$p ; mkdir -p src/main/scala/$p
  cp -r target/scala/$p/* src/main/scala/$p
  mvn compile --offline
}

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

http://www.dataintoresults.com/2009/06/book-review-collective-intelligence-in-action/

Collective Intelligence in Action, SATNAM ALAG

http://www.netflixprize.com/

http://www.dataintoresults.com/2009/06/book-review-collective-intelligence-in-action/

2013-11-12

Access to Scala fields of objects from Java?

object O1 { val s = "XXX" }

Yes, this way :

String s = O1.s()

EulerGUI : Scalagen and by hand

COMMIT

Translate whole package eulergui/gui/main into Scala with Scalagen and by hand

[INFO] BUILD SUCCESS [INFO] Total time: 22:43.040s

Script to commit the migration to Scala:

p=eulergui/gui/main
cd ~/src/eulergui_test_all_scala/
svn rm src/main/java/$p
svn add src/main/scala/$p
svn commit

DescriptionResourcePathLocationType
The method addBehaviorToGeneratedFrame(JFrame, GUIHelper) in the type ToolsManagement is not applicable for the arguments (JFrame, GUIHelper, boolean)ObjectBehavior.java/eulergui_test_all_scala/src/main/java/unifline 159Java Problem
N3_PROJECT_SUFFIX cannot be resolved or is not a fieldSaveProjectAsN3LocalAction.java/eulergui_test_all_scala/src/main/java/eulergui/gui/actionsline 31Java Problem
HTTP_EULERGUI_SVN_SOURCEFORGE cannot be resolved or is not a field TestSimplifiedURI.java /eulergui_test_all_scala/src/test/java/n3_project/helpersline 154Java Problem
prefillN3 cannot be resolved or is not a field AddN3Action.java /eulergui_test_all_scala/src/main/java/eulergui/gui/actionsline 35Java Problem
HTTP_EULERGUI_SVN_SOURCEFORGE cannot be resolved or is not a field TestGloze.java/eulergui_test_all_scala/src/test/java/eulergui/inputsline 21Java Problem
The method getLanguage() is undefined for the type ProjectGUILaunchOWLReasoner Action.java line 75
HTTP_EULERGUI_SVN_SOURCEFORGE cannot be resolved or is not a field TestJavaEditor.java line 56

mvn clean compile --offline
 ...
[WARNING] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectSessionManagement.scala:7: warning: imported `ProjectGUI' is permanently hidden by definition of object ProjectGUI in package main
[INFO] import eulergui.gui.main.ProjectGUI

[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/java/eulergui/gui/actions/AddN3Action.java:[35,65] cannot find symbol
  symbol:   variable prefillN3
  location: class eulergui.gui.main.SourceFilesManagement
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/java/unif/ObjectBehavior.java:[159,56] method addBehaviorToGeneratedFrame in class eulergui.gui.main.ToolsManagement cannot be applied to given types;
  required: javax.swing.JFrame,unif.GUIHelper
  found: javax.swing.JFrame,unif.GUIHelper,boolean
  reason: actual and formal argument lists differ in length
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/java/eulergui/gui/tools/LaunchOWLReasonerAction.java:[75,81] cannot find symbol
  symbol:   method getLanguage()
  location: class eulergui.gui.main.ProjectGUI
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/java/eulergui/gui/actions/SaveProjectAsN3LocalAction.java:[31,38] cannot find symbol
  symbol:   variable N3_PROJECT_SUFFIX
  location: class eulergui.gui.main.ProjectFileManagement
[INFO] 4 errors 

http://www.w3.org/TR/rdf-sparql-query/#func-isIRI

http://wiki.syncleus.com/index.php/Category:dANN:Tutorials

2013-11-11

<jmvanel> I guess you are this one Aidan Delaney : http://www.it.bton.ac.uk/research/vmg/index.php?q=node/9

<balor> That's me. A better URL these days is www.ontologyengineering.org

Scalagen EulerGUI

Script to replace package $p and recompile :

p=eulergui/gui

rm -r src/main/scala
svn up
mvn com.mysema.scalagen:scalagen-maven-plugin_2.9.3:0.3.2:main -DtargetFolder=target/scala
rm -r src/main/java/$p ; mkdir -p src/main/scala/$p; cp -r target/scala/$p/* src/main/scala/$p
mvn compile --offline

 ...
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/unif/TripleUser.scala:16: error: 'this' expected but 'super' found.
[INFO]     super(subject, predicate, `object`)
[INFO]     ^
[ERROR] 75 errors found

Still 43 errors when replacing only p=eulergui/gui/main :

[INFO] Compiling 523 source files to /home/jmv/src/eulergui_test_all_scala/target/classes at 1384203043272
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/AddN3URLAction.scala:19: error: not found: value NAME
[INFO]         getValue(NAME)))
[INFO]                  ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/EditorManagement.scala:299: error: type mismatch;
[INFO]  found   : Array[String]
[INFO]  required: Array[Object]
[INFO] Note: String <: Object, but class Array is invariant in type T.
[INFO] You may wish to investigate a wildcard type such as `_ <: Object`. (SLS 3.2.10)
[INFO]         JOptionPane.QUESTION_MESSAGE, null, options, options(1))
[INFO]                                             ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/HelpMenu.scala:35: error: not found: value NAME
[INFO]     putValue(NAME, GuiResourceBundle.getString("documentation"))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:204: error: ambiguous reference to overloaded definition,
[INFO] both method setLastFile in class ProjectGUI of type (lastFile: java.io.File)Unit
[INFO] and  method setLastFile in class ProjectGUI of type (x$1: java.io.File)Unit
[INFO] match argument types (java.io.File)
[INFO]     projectGUI.setLastFile(projectFile)
[INFO]                ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:293: error: constructor OpenProjectAction in class OpenProjectAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new OpenProjectAction(GuiResourceBundle.getString("open.project"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:294:
 error: constructor OpenProjectFromUrlAction in class OpenProjectFromUrlAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new OpenProjectFromUrlAction(GuiResourceBundle.getString("open.project.from.url"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:297:
 error: constructor SaveProjectLocalAction in class SaveProjectLocalAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new SaveProjectLocalAction(GuiResourceBundle.getString("save.project"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:298:
 error: constructor SaveProjectAsLocalAction in class SaveProjectAsLocalAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new SaveProjectAsLocalAction(GuiResourceBundle.getString("save.project.as"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:299:
 error: constructor NewProjectAction in class NewProjectAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new NewProjectAction(GuiResourceBundle.getString("new.project"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:300:
 error: constructor NewWindowAction in class NewWindowAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new NewWindowAction(GuiResourceBundle.getString("new.window")))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:302: error: constructor ImportProjectAction in class ImportProjectAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new ImportProjectAction(GuiResourceBundle.getString("import.project"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:303: error: constructor ImportProjectFromUrlAction in class ImportProjectFromUrlAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new ImportProjectFromUrlAction(GuiResourceBundle.getString("import.project.from.url"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:304: error: constructor AddProjectAsPostProcessingAction in class AddProjectAsPostProcessingAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new AddProjectAsPostProcessingAction(GuiResourceBundle.getString("add.project.as.post.processing"), 
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:307: error: constructor ExportAsDroolsAction in class ExportAsDroolsAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new ExportAsDroolsAction(GuiResourceBundle.getString("export.as.drools"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:308: error: constructor ExportAsXmlAction in class ExportAsXmlAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new ExportAsXmlAction(GuiResourceBundle.getString("export.as.xml"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectFileManagement.scala:311: error: constructor ExitAction in class ExitAction cannot be accessed in class ProjectFileManagement
[INFO]     menu.add(new ExitAction(GuiResourceBundle.getString("exit"), projectGUI))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:267: error: Boolean does not take parameters
[INFO]     setVisible(setVisible)
[INFO]               ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:454: error: ambiguous reference to overloaded definition,
[INFO] both method setLastFile in class ProjectGUI of type (lastFile: java.io.File)Unit
[INFO] and  method setLastFile in class ProjectGUI of type (x$1: java.io.File)Unit
[INFO] match argument types (java.io.File)
[INFO]       setLastFile(file)
[INFO]       ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:519: error: ambiguous reference to overloaded definition,
[INFO] both method setLastFile in class ProjectGUI of type (lastFile: java.io.File)Unit
[INFO] and  method setLastFile in class ProjectGUI of type (x$1: java.io.File)Unit
[INFO] match argument types (java.io.File)
[INFO]       setLastFile(file)
[INFO]       ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:543: error: overloaded method constructor SimpleFilenameFilter with alternatives:
[INFO]   (s: String)ProjectGUI.this.SimpleFilenameFilter <and>
[INFO]   (s: Array[String])ProjectGUI.this.SimpleFilenameFilter
[INFO]  cannot be applied to ()
[INFO]       this()
[INFO]       ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:580: error: reassignment to val
[INFO]     this.project = project
[INFO]                  ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:638: error: ambiguous reference to overloaded definition,
[INFO] both method setLastFile in class ProjectGUI of type (lastFile: java.io.File)Unit
[INFO] and  method setLastFile in class ProjectGUI of type (x$1: java.io.File)Unit
[INFO] match argument types (java.io.File)
[INFO]         setLastFile(new File(project.getLocation.toURI()))
[INFO]         ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:717: error: method setLanguage is defined twice
[INFO]   conflicting symbols both originated in file '/home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala'
[INFO]   def setLanguage(language: String) {
[INFO]       ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala:627: error: method setLastFile is defined twice
[INFO]   conflicting symbols both originated in file '/home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUI.scala'
[INFO]   def setLastFile(lastFile: File) {
[INFO]       ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUIMinimal.scala:17: error: not found: value checkJavaJREVersion
[INFO]     checkJavaJREVersion()
[INFO]     ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUIMinimal.scala:30: error: not found: value projectGUICount
[INFO]       applicationKB.assign("ProjectGUI" + (projectGUICount), app)
[INFO]                                            ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectSessionManagement.scala:15: error: value += is not a member of String
[INFO]     project.showShortName().replaceAll("\\.n3p$", ".") + creationNumber += 1 + 
[INFO]                                                                         ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:66: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type eulergui.gui.main.ProjectGUI
[INFO]   this.setProjectGUI(projectGUI)
[INFO]                      ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:70: error: constructor ViewAction in class ViewAction cannot be accessed in class ResultManagement
[INFO]     val action = new ViewAction(GuiResourceBundle.getString("toggle.erase.panel.mode"))
[INFO]                  ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:73: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type ?
[INFO]     projectGUI.getEulerMenuBar.add(menu)
[INFO]     ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:77: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type ?
[INFO]     val toolBar = projectGUI.getToolBar
[INFO]                   ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:89: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type ?
[INFO]     val styledDocument = projectGUI.getTextPane.getStyledDocument
[INFO]                          ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:97: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type ?
[INFO]     projectGUI.getTextPane.setCaretPosition(projectGUI.getTextPane.getCaretPosition + mess.length)
[INFO]     ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:190: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type ?
[ERROR]     val editor = projectGUI.getEditorManagement.openJavaEditor(source, MessageFormat.format(GuiResourceBundle.getString("error.at.line.0"), 
[INFO]                  ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ResultManagement.scala:46: error: ambiguous reference to overloaded definition,
[INFO] both method projectGUI in class ResultManagement of type => eulergui.gui.main.ProjectGUI
[INFO] and  value projectGUI in class ResultManagement of type eulergui.gui.main.ProjectGUI
[INFO] match expected type eulergui.gui.main.ProjectGUI
[INFO]   var projectGUI: ProjectGUI = _
[INFO]       ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ShowVersion.scala:37: error: not found: value NAME
[INFO]   putValue(NAME, GuiResourceBundle.getString("about"))
[INFO]            ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/SourceFilesManagement.scala:132: error: not found: value ACCELERATOR_KEY
[INFO]     putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke('Q', Toolkit.getDefaultToolkit.getMenuShortcutKeyMask))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/SourceFilesManagement.scala:147: error: not found: value ACCELERATOR_KEY
[INFO]     putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke('S', Toolkit.getDefaultToolkit.getMenuShortcutKeyMask))
[INFO]              ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/SourceFilesManagement.scala:182: error: not found: value NAME
[INFO]         getProjectGUI.getResultManagement.insertStringAtPaneEnd(getProjectGUI, "# Action [" + getValue(NAME) + "] RDFAction performed! ]\n")
[INFO]                                                                                                        ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ToolsManagement.scala:144: error: ambiguous reference to overloaded definition,
[INFO] both method resultManagement in class ToolsManagement of type => eulergui.gui.main.ResultManagement
[INFO] and  value resultManagement in class ToolsManagement of type eulergui.gui.main.ResultManagement
[INFO] match expected type eulergui.gui.main.ResultManagement
[INFO]   this.setResultManagement(resultManagement)
[INFO]                            ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ToolsManagement.scala:189: error: constructor AWTTreeDisplayer in class AWTTreeDisplayer cannot be accessed in class ToolsManagement
[INFO]       menu.add(new AWTTreeDisplayer("show AWT Tree"))
[INFO]                ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ToolsManagement.scala:266: error: too many arguments for method addBehaviorToGeneratedFrame: (generatedFrame: javax.swing.JFrame, guiHelper: unif.GUIHelper)Unit
[INFO]     addBehaviorToGeneratedFrame(generatedFrame, guiHelper, true)
[INFO]                                ^
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ToolsManagement.scala:127: error: ambiguous reference to overloaded definition,
[INFO] both method resultManagement in class ToolsManagement of type => eulergui.gui.main.ResultManagement
[INFO] and  value resultManagement in class ToolsManagement of type eulergui.gui.main.ResultManagement
[INFO] match expected type eulergui.gui.main.ResultManagement
[INFO]   var resultManagement: ResultManagement = _
[INFO]       ^
[ERROR] 43 errors found

COMMIT

Pave the way for Scala translate: Remove continue , except RDFIterator & ParserLink , too complex

COMMIT

Pave the way for Scala translate: Begin Remove break (100 occurences) and continue

test suite could not be fully passed because of dbpedia downtime

Failed tests:   testSelectSPARQL(eulergui.gui.TestSPARQLInGUI): rowCount > 0
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains birthDate
  verifyPrefixes(deductions.runtime.TestRuleBasedApplicationWithCache): expected:<http://dbpedia.org/property/> but was:<null>

Tests in error: 
  testN3SourcePrepare(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-4193236630299215277.n3 ; http://dbpedia.org/sparql
  testSquall(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-1214781767700723583.n3 ; http://dbpedia.org/sparql

Tests run: 226, Failures: 3, Errors: 2, Skipped: 0

Remove break (100 occurences) and continue

cd ~/src/eulergui_test_all_scala
mvn com.mysema.scalagen:scalagen-maven-plugin_2.9.3:0.3.2:main -DtargetFolder=target/scala
cp -r target/scala/* src/main/scala/
rm -r src/main/java
mvn --offline clean compile

EulerGUI release 2.0

Announce on EG mailing list

EulerGUI 2.0 released

It's not perfect, but it's time to turn the page!

Towards new Turtle project format, 100% Scala code, modularization, and quicker startup .

The accent in this release is the new N3 file format for projects, that is OWL (and Protégé) compatible. Here is an example:

@prefix : <http://eulergui.sf.net/ontology/project.owl.n3#>.
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .

<> a owl:Ontology.

<> owl:imports <plants.n3> .
               <plants.n3> :isActivated false . # true by default

# the main N3 query
<> :hasN3Query <plants-q.n3> .
               <plants-q.n3> :isMainQuery true .

# Import of an RDF or OWL document
<> owl:imports <herbivores.owl> .

<> :subproject <subproject.n3p.n3> . # recommanded suffix .n3p.n3
<> :postProcessing <project-post.n3p.n3> . # only one postProcessing

There is amigration batch program ProjectFormatMigration.scala.

Otherwise , the raw change log is here:

GUI

Rule engines

Framework

FIX

DOWNLOAD:

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

And, remember, the ever updated User Manual is here:

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html

Maven release performing !

I found that it is necessary to add credentials on the command line:

DISPLAY=:1 mvn release:prepare -Dusername=jmvanel -Dpassword=[password]

Adding this in pom.xml

<project.scm.id>subversion.sf.net</project.scm.id>

and a corresponding tag <server> :

<server> <!-- for subversion -->
  <id>subversion.sf.net</id>
  <username>jmvanel</username>
  <password>zamia-lick</password>
</server>

in ~/.m2/settings.xml did NOT work!

[INFO] Failed tests:   testSelectSPARQL(eulergui.gui.TestSPARQLInGUI): rowCount > 0
[INFO] 
[INFO] Tests in error: 
[INFO]   testURLProjectOWL(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*index\.rdf.*"
[INFO] 
[INFO] Tests run: 225, Failures: 1, Errors: 1, Skipped: 0

After fixing above:

oem-laptop: ~/src/eulergui_test/eulergui/ % DISPLAY=:1 mvn release:perform -Dusername=jmvanel -Dpassword=????
 ....
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 47:15.772s
[INFO] Finished at: Mon Nov 11 14:45:19 CET 2013
[INFO] Final Memory: 12M/171M
[INFO] ------------------------------------------------------------------------

REL=2.0
MVN=/home/project-web/eulergui/htdocs/maven2/eulergui/eulergui/$REL
RELDIR=/home/frs/project/e/eu/eulergui/eulergui/$REL
mkdir $RELDIR
cp $MVN/*-jar-with-dependencies.jar $RELDIR
wget http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/CHANGELOG
mv CHANGELOG $RELDIR/README.txt

We are now at 2.1-SNAPSHOT !

2013-11-10

http://www.bonhams.com/auctions/20655/lot/73/

gimp script cut image in several parts for printing

http://cweiske.de/tagebuch/Printing%20a%20large%20image%20on%20multiple%20pages.htm

Trying dANN

"dANN is an Artificial Intelligence and Artificial Genetics library targeted at employing conventional techniques as well as acting as a platform for research & development of novel techniques. "

http://wiki.syncleus.com/index.php/Category:dANN

http://wiki.syncleus.com/index.php/dANN:Backprop_Feedforward_Neural_Network

cd  ~/src/dANN/projects/java_dann/
mvn  eclipse:eclipse -Declipse.downloadSources=true 
[INFO] Scanning for projects...
Downloading: http://download.java.net/maven/2/org/apache/maven/plugins/maven-project-info-reports-plugin/2.7/maven-project-info-reports-plugin-2.7.pom

Quick code analysis

cd ~/src/dANN/projects/java_dann/
# BAD
% grep --recursive break src | wc 
     55     119    5455
oem-laptop: ~/src/dANN/projects/java_dann/ % grep --recursive continue src | wc 
     22      62    1949
# NOT BAD
 % grep --recursive 'interface '  src | wc 
    142    1172   21993

% ls -l src/main/**/*.java | wc
    367    3303   42148
oem-laptop: ~/src/dANN/projects/java_dann/ % ls -l src/test/**/*.java | wc
     80     720    9544

# The longest class: # NOT BAD
% wc src/main/java/com/syncleus/dann/math/linear/SimpleRealMatrix.java
  852  3137 28480 src/main/java/com/syncleus/dann/math/linear/SimpleRealMatrix.java

<jmvanel> Syncleus on google search : Environ 4 690 résultats (0,39 secondes)

<jmvanel> eulergui (my stuff) : Environ 6 340 résultats (0,58 secondes) !

<jmvanel> crude measurement I reckon

 ~/src/dANN/projects/ % for f in *                        
do
echo "==== $f ===="
ls -l $f/src/**/*.java | wc 
done
==== c_dann_library ====
zsh: no matches found: c_dann_library/src/**/*.java
      0       0       0
==== cs_dann_library ====
zsh: no matches found: cs_dann_library/src/**/*.java
      0       0       0
==== dannalyzer ====
      8      72    1022
==== dann_jni ====
      6      54     478
==== java_dann ====
    447    4023   56162
==== java_dann_examples ====
     39     351    5117
==== jung_dann ====
     15     135    1814
==== neuroph_dann ====
      2      18     228
==== rdf_dann ====
      5      45     539

http://www.fema.gov/

http://wiki.syncleus.com/index.php/AIDE

AIDE, which stands for Automated Inference Detection Engine, is a web-service and stand-alone GUI application allowing for the discovery of inference within a database.

http://wiki.syncleus.com/index.php/PanL

Sporkie Says "No More Spam!"

dANN demos

PathFindDemoPanel : works

TravellingSalesmanDemo : pas mal ! graphical demo.

class PathFindDemoPanel * Demonstrates Path Finding across a Weighted Grid.

* The Grid's node and edge weights can be adjusted by clicking.

* The start and stop positions of the path to be found can also be specified.

* @author seh

XorDemo : NPE !

nci : aparently no main()

com.syncleus.dann.examples.hyperassociativemap.visualization.ViewMap : needs J3D , but it's not here.

<jmvanel> sseehh, I liked your TravellingSalesmanDemo

<jmvanel> But there is a problem in the GUI demos : some widgets are cut on the right side, AND the window is not resizable :(

Starting EulerGUI release 2.0

<jmvanel> not perfect, but time to turn the page!

<jmvanel> towards new Turtle projects, 100% Scala, modularization, and quicker startup .

export REL=2.0
 ./start_embedded_X_server.sh
DISPLAY=:1 mvn release:prepare

Problem :

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.2.1:prepare (default-cli) on project eulergui: Unable to tag SCM
[ERROR] Provider message:
[ERROR] The svn tag command failed.
[ERROR] Command output:
[ERROR] svn: E200007: Source and destination URLs appear not to point to the same repository.

http://stackoverflow.com/questions/13525938/maven-releaseprepare-tagging-fails-using-username-and-password-svn

[ERROR] svn: E170001: POST of '/p/eulergui/code/!svn/me': authorization failed: Could not authenticate to server: rejected Basic challenge (https://svn.code.sf.net)

Tracing package and files on Ubuntu

To see all the files the package put onto your system, do this:

dpkg-query -L <package_name>

And the reverse query is:

dpkg -S <file-path>

http://daringfireball.net/projects/markdown/basics

http://stackoverflow.com/questions/8640340/java-keystore-password

Java's default cacerts password is "changeit", unless you're on a Mac, where it's "changeme" up to a certain point.

http://askubuntu.com/questions/134174/where-is-the-oracle-java-jdk-keystore-located

http://www.sslshopper.com/article-how-to-create-a-self-signed-certificate-using-java-keytool.html

http://www.mayrhofer.eu.org/create-x509-certs-in-java

https://blogs.oracle.com/gc/entry/unable_to_find_valid_certification

http://nodsw.com/blog/leeland/2006/12/06-no-more-unable-find-valid-certification-path-requested-target

http://wiki.syncleus.com/index.php/dANN:Naive_Classifier

2013-11-09

git config --global push.default simple

https://github.com/jmvanel?tab=activity

Scala questions

http://stackoverflow.com/questions/17223213/scala-macros-making-a-map-out-of-fields-of-a-class-in-scala

<jmvanel> Where can I find a list of higher-order functions on collections and maps?

<pdxleif> fold and reduce left and right, aggregate, andThen, applyOrElse, compose, corresponds, count, dropWhile, exists, filter, filterNot, find, flatMap, fold, forall, foreach, groupBy, indexWhere, lastIndexWhere, map, mapConserve, maxBy, minBy, orElse, partition, prefixLength, reduce, reduceLeftOption, reduceOption, reduceRightOption, scan, scanLeft, scanRight, segmentLength, sortBy, sortWidth, span, takeWhile,

<jmvanel> thanks pdxleif ; found a good list on http://www.scala-lang.org/api/current/index.html#scala.collection.IndexedSeqLike , then search character ⇒

Federate people involved in Semantic Web based application

TODO : a vocabulary to describe architectures; that is the first step to later assemble components semantically by configuration in Turtle.

The people I know:

Other path to explore:

2013-11-08

not enough arguments for method load: (implicit expected: scala.reflect.ClassTag[T])T. Unspecified value parameter expected.Serializer.scala/ebics-eric/src/main/scala/deductions/ebicsline 29Scala Problem

today I'll work mostly on bank transfer with a partner; I use Scala to wrap some existing Java fw.

EAL == Evaluation Assurance Levels

http://www.adacore.com/gnatpro-high-security/eal/

http://www.adacore.com/products

SAFETY STANDARDS

DO-178B/C, EN 50128

RTCA DO-278

ECSS-E-ST-40C | ECSS-Q-ST-80C

Scala links

http://www.levinotik.com/2012/09/14/scala-abstract-classes-traits-and-self-types/

Interesting discussion starting with the Python project's leader post:

http://neopythonic.blogspot.fr/2008/11/scala.html

http://www.drmaciver.com/2008/03/an-introduction-to-implicit-arguments/

Here's a quick example that writes and reads an object:

https://gist.github.com/1480346

What should be used instead of scala.util.Marshal? (and why isn't it in the Scaladoc?)

https://groups.google.com/forum/#!topic/scala-user/9GBMiRQNhmE

bash-command-line-history

http://www.catonmat.net/blog/the-definitive-guide-to-bash-command-line-history/

history -c will clear the history list and history -d N will delete a history entry N.

translate python into Scala

http://code.google.com/p/py2scala/

http://surguy.net/articles/scala-spelling.xml

http://neopythonic.blogspot.fr/2008/11/scala.html

dANN

SeH:

http://wiki.syncleus.com/index.php/dANN

we are trying to integrate NARS and dANN

Envoyé vendredi à 09:52

moi: good new;

although I hardly understand what is dANN

Envoyé vendredi à 10:07

SeH: i will explain it

has many algorithms

Envoyé vendredi à 10:09

moi: OK : http://wiki.syncleus.com/index.php/dANN

For such algorithmic stuff, Scala would be better suited than Java.

SeH: probably

we should consider it for dann 3.0

and NARS

Envoyé vendredi à 10:13

moi: scalagen is a good tool for translating into Scala

For EulerGUI the result has only 96 compile errors

SOE:

scala> { def map[A, B](f: A => B, x: Stream[A]) = x.foldRight[Stream[B]](Stream())((a, b) => f(a) #:: b); map((n: Int) => n+1, Stream.from(1)).head }

2013-11-07

cd ~/src/eulergui-code/eulergui/ ; filelight src/main &

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:104)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:40)
at com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.getGraph(DatasetGraphTrackActive.java:103)
at com.hp.hpl.jena.sparql.core.DatasetImpl.getNamedModel(DatasetImpl.java:171)
at unif.TripleStoreTDB.getModelForWriting(TripleStoreTDB.java:71)
at unif.TripleStoreJena.store(TripleStoreJena.java:105)
at samples.TableApp2.startTest(TableApp2.java:116)
at samples.TableApp2.main(TableApp2.java:38)

http://maven.apache.org/shared/maven-archiver/examples/manifest.html

scala ":load" does not a real compilation

http://www.scalacheck.org/

class IH extends AnyRef with IntHeap with BinomialHeap

http://independent.academia.edu/JFDelannoy

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.35.8376&rep=rep1&type=pdf

http://nurkiewicz.blogspot.fr/2011/08/what-features-of-java-have-been-dropped.html

http://daily-scala.blogspot.fr/2010/03/assert-require-assume.html

http://www.cs.helsinki.fi/u/wikla/OTS/Sisalto/examples/html/ch16.html

http://ow2.org/view/OW2con-2013/Program

https://github.com/mysema/scalagen/issues?sort=updated&state=open

http://www.riscoss.eu/bin/view/Discover/Riscoss

Compile errors in EG after scalagen

assert(subProject != this) : "SubProjects must be different from main project"

The right usage of assert is :

vr called = 1
assert (called == 0, {called += 1; println("called is not 0")})

cf http://daily-scala.blogspot.fr/2010/03/assert-require-assume.html

So the right translation would be:

assert(subProject != this, { println( "SubProjects must be different from main project" ) } )

https://github.com/mysema/scalagen/issues/65

% grep 'illegal start of simple pattern' typescript 
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/EulerGUI.scala:16: error: illegal start of simple pattern
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/controller/ApplicationKB.scala:57: error: illegal start of simple pattern
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/gui/main/ProjectGUIs.scala:16: error: illegal start of simple pattern
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/infrastructure/cache/URICacheImpl.scala:23: error: illegal start of simple pattern
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/infrastructure/cache/URICacheImpl.scala:38: error: illegal start of simple pattern
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/infrastructure/cache/URICacheOSCache.scala:18: error: illegal start of simple pattern
[ERROR] /home/jmv/src/eulergui_test_all_scala/src/main/scala/eulergui/project/Project.scala:79: error: illegal start of simple pattern

2013-11-06

https://github.com/rickynils/scalacheck/wiki/User-Guide

2013-11-05

Trouble with Skype on Ubuntu 13.10

Does not work:

sudo sed -i ‘s/^Exec=.*/Exec=env PULSE_LATENCY_MSEC=30 skype %U/’ /usr/share/applications/skype.desktop

I donwloaded the Debian multiarch version from the Skype site.

http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html

http://learnyouahaskell.com/a-fistful-of-monads

In the Scala interpreter:

ProjectGUI.main( Array())

http://scala-ide.org/download/sdk.html

Testing Scala translation of all EG by scalagen

cp -r ~/src/eulergui_test2/ ~/src/eulergui_test_all_scala
cd ~/src/eulergui_test_all_scala
cp -r  target/scala/* src/main/scala/
rm -r   src/main/java
mvn --offline clean compile
 ...
[ERROR] 97 errors found

To see all the files the package put onto your system, do this:

dpkg-query -L <package_name>

COMMIT

- In TableModelFromN3.java , enforce that internally the field rowTerms contains only <> wrapped URI's

- upgrade Euler to 2013-11

Tests run: 225, Failures: 0, Errors: 0, Skipped: 0

[INFO] [surefire-report:report {execution: default-cli}]
[WARNING] Unable to locate Test Source XRef to link to - DISABLED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17 minutes 48 seconds

Subscribed to Scala / Reactive Programming on coursera !

https://class.coursera.org/reactive-001/class/index

2013-11-04

[<file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#Track> .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/05/customTaxoPlayerOntology.owl#file_name "Countdown.mp3" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/05/customTaxoPlayerOntology.owl#file_location "/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#album "Giant Steps" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#artist "John Coltrane" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#disc_no "0" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#genre "Jazz" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#title "Countdown" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#track "12" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/Countdown.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#duration 145 .
, <file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#Track> .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/05/customTaxoPlayerOntology.owl#file_name "05 Dizzy Miss Lizzie.mp3" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/05/customTaxoPlayerOntology.owl#file_location "/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#album "Larry Williams - Bad Boy of Rock And Roll" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#artist "Larry Williams" .
, <file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3> <http://www.taxochronos.com/ontologies/2012/05/customTaxoPlayerOntology.owl#comment> "tpb" .
, <file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3> <http://www.taxochronos.com/ontologies/2012/05/customTaxoPlayerOntology.owl#comment> "tpb" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#genre "Rock " .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#media "DIG" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#title "Dizzy Miss Lizzie" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#track "5" .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#acoustid_fingerprint "Description="Acoustid Fingerprint"; Text="AQADtJTyTEqS4cp1_A2O5kOJJzVK3TiP_6hyIe-PhKzSGZePJ3vwpQgTE9pwMcgvPGGOWAzRfEcfGg9pfLgRU3mCOlQHq0dI41tw0ng2Byq1GOGaHU1-nBmeHfiHh06QK4EY46Hw8cg75GmOSx-0PBYqhw2iVgp-HHl0PJoTaJdyNEUeXMl0_MFvRDqPZHGOMxI-U4evGV-Oec1xhIH2LB9yDT--o7lyhFRCVEqERs3xNMKUHLV-vLj0FM1ThN_x48eD-Ef3Q4yLPIGfHD3xXDjzoJsioRlip9CLLyGuRDrOHo3KNEHlBH9w6DqemImEh4eP3EaeF9dmDXokIcyH6cM54i_aaEemH5e2gyzDwDm0HzvCo7IU496GM1GKO8TVSUeZB6n8QtNzIvfx1TpupNWPMzyOHT2NJsfPg3vgR4F05Ni3OMETHlOOHheNb8aX-CmeR0iiXwjDtXgoPMUffFrRPEeoRCWuTTkeo3lmlE-KkL3gLocpBpU1hJN6iJGO_Gh-PItwMTKamDdCNtCVH3saG095ozqa5_gSHfqHPMepDJuWfPhj_D7OIHlm3IqRJ4uFU0nRJE9RMkc-6MiPffiLx3vg6MihI8-Dq8Uo5kIjbQ8qS0duKD9yTR-uKEFz-ugVLbhxRQt-_HgQfTkSJuNwJjTxLMePPieaNnnw6IgpRnASHvmy4H_Qr5hyTKbQNGmO5yJm5kH-DwnZybiUXMTFaIF1XAcbFn-GPjmmnBf-4DmSPMmFXAocHVzSC3-EH-EjHU384DnyHD_xFDEVqahiNIeeZQj-43uEPKKGUjqYXPg7_IkaXDLyhEEsKQfvQ5Jy5LdQepSM_gKf8UBe6AniC3sUJ0JTSSH6HFfwH08WHo54_EqiwfaRXMjRK0czTTEePcAfNOGP5ymmPFPxDzmhL7jxSE9w8grCqEcl5NB1xExqjDH6o3mUDmfwI8-RPMSZBpUYakOTHP-RW4V-hJcCR32Q99BqRA8eXFssVGeTYE80HJ-QLxt8GhqXGo9QBc5lQSOiJ5Hwg7jENGgsRUSVUMeP_NB-IdeO73iqo0k140IghUfY4WoefLmCUz0840buG7oY40wyNAl6BQc-6DRzPOGOR8cOx_vwKDmeKOOQ92nwFV0zPmia4EqUHP-DXkJzIlfS6FCV2FqGMEmfaeizHw9my8KdyMWPbzp2Bl-8okp4aMnCcQmOH74Z7PJy_Dhv-EtXJNeJbGGPP9_wPbgUFvkgZOJxPtizo_lR_UGeQp-NWVsaPD2q1PAvMGSgZ9URHS8mJ63QTMrx4MiX48cT8WCV5PCRH08n5ATHGzfObpASSrrQ-ziPXj3E0MR61K2CM_pQUSH8w8909DzqDw11_A20w1WWY3OIUOfxGx_z451SXKKDPOgDLSPx_MjPCI-WCqWFJsqPR3g63HGCJor6o9TxYz-aCyEPLe9RZUmyMEHMD-mPHzmeC1d64VKKMEf1BbIzRBR5vDTO4-GDcxHC7EEHHSptxBUdfDn66Wh-PFEQ9dBL5MeTHBdTNA-6MMGPJ8el4-kR5kTJCfrw2fiKa3HQLQmP5jqOcKWFZzEq5niT4hmao5fS4RmOHEmpD0_YBD4e7Am6En6Q6tAeBuF3NBWDSzJuD9SWikXMC1qOLD9yH7qO8DUmr8RnVFTg421UvCFCq4eqIY_aow8aRscZvOh_uDae42YQzpGh6THCfAl-PB8-Nki_G7F-XMfxhMaHX0aTY-qyI4dyBM-Dj4V3XDiuE3dxIfxCoTkfYc6CUz_4KC-0KxOk3MN9dIf6H8FN1GIaPMmH__hTfOFxbVTgUUoVIXmyIydOB6bc48yx0ziq_miKvMzxR4IuhA-a7zjtIV_CNEEDjciFR8On4qaNL0Jz9CxyJdKh68QfvCtKxkaYZDrOPMKDUyiZHx-PbUIfiUN4hdic7DjRHFcXQY9Qj0dzzL1wCl98VFsGLXui4zryJxyIPge97KgWMU3wsD5CS2ieQ7_w4yquHZdyOBeV4s2iGjpFfBjFlHjqBJ-Yw6-xH7qCPbxxL8Klo9kSoo16nJkV6EFTHuF59KF2NJMfzNGR5_ANPWmKHJ-NnkGTRKl8fNmyZMglLkLyCGay4xKjCFO-HpXq6Fh14upS-MT1FL-O5B_CND1KHnzEJajyXWjCHD9OrkJDoryNptExWRdOBu0yTJkynCUy3rihAD8eHmGuqEF_IS--5bg4Glca3Dz6HFN-6EkE6WCPJ7guNP2GXkb-YF-ObxT-UzgapUqOvA-0hEo87D_C82h-_MWTe_jCHEx6JNJThD_uRCku5XjKo2cOR-ELjzn8KUjmnEP-43iS5GhCUQQzPjgqLznyJdGKJzf6oNAPHmWOUUueBFZ7HAot5PKGPZFk3MTDoIlIo0905Dt0HvlwLWnwGc2IakdePNaCmNrRHJXD4Dx-dCGx8U6QG1NGHaeOo8lz9LgPXYyGL9FQJT2aMxWe48yh4zlyPXiShCr-wDuiH3pxMcijaCg5NJeF70G2XNCRHzyuJ8GTLIdr3BEeI3bwSSk0Snsy2E0FV4nwB1Yx6fjxPAn23fCL3Hh0NJUUHduD8NCUMjrCbAmLKz92T2iOmquGJ8OPKi_CjDeeQ7uOq4dyHaWQJ8mD_0FeRkOaH_nxBvoJT-IDfVl0YDf6JIZ5oRdGPU0wzaOOJs_xQPlwJeGCM-mxKS8-HfGPP1pwRThGM0WT_EOkL4c-5JhzPJOY4YqSo_nRHz8AQBBAQA0DnAMGUGEEEQg4YJQhBAgBCFGAICIMIQoKxQQgwgAkDPCEGCQEAoACgAgxxABglMACKAoYIIBQroAiBhFDHAVUCEEUAsIJgIQjAhgiDFCICawYIgQRxxghBDBDALsCICAYMcAQAqwBhIAugACGCKIEEsQBBIAjQjKElAEICAMEEs5ZABBAghAhALCGGACcBAAAQ4RgiBhAIQHSKaWAkAQYhAhRUjhCECAGEa2YcoYBYggoBiiCCBHAYkIAEYAAgwjwSAEiFFOIGaYEgUIxAZQwggGGMCDAMGAUM8AAaCgCjABhiADIGcAQsEAQgwwg6hAlFAMAEMCAUgQBICwBiiDBCDBOMIuAQEQLAgyjAggECZACIEcMEA8JgwAQAiIAhEAAGCEIsGQDQBRiHghIAIIECAKAEAIBIQA1yBFlkCIKAwEMYkIQAIARihAiiCFAAWGAQEIBQECWRDVEBSEUOwmUoAQAQAgDUDBAkBCAQEQ0UgABAQggSjEEjEAGMIcEIM4ZQzBASgFqmFEEMAOIIQYBIARCAgDDqBAOGWSYMggRQYAyIAGkDEOIAcEMPAoUgjwgjiGACCOMEUEoE4AA64hVQFAEiNAICQSIAQISJAiQwiyEECUPGuUMEEQIAowAggIEqFLIGAIMI0YQBggzIhGAAFBKCAAUEsBZIhRQUhgBDGOCGAOQAJQRAAgSAgBGhFBAAAGQgBIgI4kxAgAkhDMWACEAA4QIAYQQjEFEwBMAKESIAMIBAAUBigBhCBAEcSKMIYACZ5QgQgpAEAFAAWAQQkQRYJVCBAFgIEACMMCIAEgpQgBFCgBkEBBAEMWMAKQpRIYgykpmGAFaACCEIIxIgRwECBBiGBKiCMIMc8QRYABTDDAIjCGCgk08MgRAIoTBTCAAhBHAkBAQEggwRIkxAACANAIAGMIMkEQJoQAgwCCDFRRCAGeQEcIIpxEQyEhCiFCOEAKgYAgBwIx0Cg"; " .
, file:/home/jmv/bizz/AFFAIRES_EN_COURS/taxochronos/src/audio-dam/ui-swing/test/05%20Dizzy%20Miss%20Lizzie.mp3 http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl#duration 131 .
]

2013-11-03

http://stackoverflow.com/questions/818996/abstract-types-type-parameters-in-scala

http://www.somethingsimilar.com/2011/01/13/tricky-things-in-scala/

http://docs.scala-lang.org/overviews/reflection/overview.html

https://github.com/typesafehub/sbteclipse

http://dustinmartin.net/getters-and-setters-in-scala/

Extractors break this link between data representations (case class) and patterns.

val Decimal = new Regex("""(-)?(\d+)(\.\d*)?""")
val Decimal = """(-)?(\d+)(\.\d*)?""".rval input = "for -1.0 to 99 by 3"
836  for (s <- Decimal findAllIn input)
837  println(s)
838  Decimal findFirstIn input
839  Decimal findPrefixOf input
840  val Decimal(sign, integerpart, decimalpart) = "-1.23"

Chapter 9 · Control Abstraction

Nice example of an argument being a function (matcher) :

def filesMatching(query: String,
                  matcher: (String, String) => Boolean) = {
  for (file <- filesHere; if matcher(file.getName, query))
    yield file
}

Using this function :

def filesEnding(query: String) =
  filesMatching(query, _.endsWith(_))
def filesContaining(query: String) =
  filesMatching(query, _.contains(_))

It can be simplified further:

private def filesMatching(matcher: String => Boolean) =
  for (file <- filesHere; if matcher(file.getName))
    yield file
def filesContaining(query: String) =
  filesMatching(_.contains(query))

This time the closure filesContaining is an open term, having a free variable, query.

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

It seems that Scala "partially applied function" and C++ "pointer to member function" are related;

of course C++ cannot directly express a new function with some areguments

http://scala-ide.org/docs/user/gettingstarted.html

https://github.com/typesafehub/sbteclipse

f = (x: Int, y: Int) => x + y
f( 1,2 )
 
import java.io._
val f = new File(".")
f.list

Scala 2.11

The REPL is improved with several new commands that ease its usage. An overview of the commands can be seen by typing :help into the REPL.

http://booksites.artima.com/programming_in_scala_2ed

http://booksites.artima.com/programming_in_scala_2ed/examples/html/ch18.html#sec6

It’s a good example of an internal DSL, a domain specific language defined as a library in a host language instead of being implemented on its own.

http://stackoverflow.com/questions/9673233/how-is-the-pojo-javabean-pattern-treated-in-scala

http://docs.scala-lang.org/overviews/core/actors-migration-guide.html

http://stackoverflow.com/questions/14604264/why-is-scala-actors-deprecated-in-2-10

http://stackoverflow.com/questions/15203758/asynchronous-ui-update-with-swing

http://scala-programming-language.1934581.n4.nabble.com/scala-SwingWorker-in-Scala-td2002027.html

abstract class SwingActor extends Actor { 
  override val scheduler = new SchedulerAdapter { 
    def execute(block: => Unit): Unit = 
      EventQueue.invokeLater(new Runnable() { 
        def run() { block } 
      }) 
  } 
}}

Downloaded BigData :it's not Mavenized!) ; uses Jini a lot; does not implement Jena API;

https://sourceforge.net/scm/?type=svn&group_id=191861

<jmvanel> dbpedia's Virtuoso is "under maintenance " since yesterday, which happens quite often ;

<jmvanel> I wonder if dbpedia would be better with Fuseki and TDB !

<jmvanel> There some bad points on Fuseki here: http://www.garshol.priv.no/blog/231.html (RDF triple stores — an overview)

<jmvanel> like "10 billion statements" == no

Running scalagen

The recipe for scalagen is :

mvn com.mysema.scalagen:scalagen-maven-plugin_2.9.3:0.3.2:main -DtargetFolder=target/scala

% ~/bin/tdb_named_graphs | wc

306 912 23868

Unable to load default SVN Client

Scala links

By the author of the language :

programming in scala / 2nd edition

http://ge.tt/8HFp6HJ/v/0

http://lampwww.epfl.ch/~phaller/doc/ScalaActors.pdf

compare lift & play framework

http://www.coderanch.com/t/604166/Scala/Play-Lift

http://stackoverflow.com/questions/13387554/play-vs-lift-pain-points

http://stackoverflow.com/questions/3670237/should-i-use-play-or-lift-for-doing-web-development-in-scala

http://archive.org/stream/Play-frameworkBook/Introducing_the_Play_Framework-final_djvu.txt

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

COMMIT

tested

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Checksum error reading from the Journal.

Exception TDBTransactionException Exception after commit point - transaction
did commit, occured during loading this URI: http://dbpedia.org/resource/Food

% df -h

Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur

/dev/sda1 175G 163G 3,3G 99% /

COMMIT

- N3Form : change message : new or not

- quick_build.sh

- RuleBasedApplicationWithCache: extract manageGraphMetadata()

* TODO : Metadata are not distinguished from other properties of uriString, so they appear in N3Form

TODO : store both in KB and TDB store (RuleBasedApplicationWithCache or new TripleStoreHybrid)

object SillyActor extends Actor {
 def act() {
  for (i <- 1 to 5) {
   println("I'm acting!")
   Thread.sleep(1000)
  }
 }
 println("after act")
}

val intActor = actor {
 receive {
  case x: Int => // I only want Ints
  println("Got an Int: "+ x)
  x
 }
}

intActor ! "hello"

why isn't thre a keyword immutable in Scala ?

trying to return a value from an actor:

val intActor = actor {
 receive {
  case x: Int => // I only want Ints
  println("Got an Int: "+ x)
  x
 }
}

http://download.scala-ide.org/sdk/e38/scala210/stable/site

http://subclipse.tigris.org/update_1.10.x

apt-get install libsvn-java

2013-10-30

COMMIT

simple FIX reduce button size for buttons for new triples creation

TODO much better FIX: http://stackoverflow.com/questions/3485088/resizing-jbuttons-and-other-components-according-to-text

Hi Where could I find rdfs:label's in several languages for FOAF vocabulary ( and hopefully other vocabs ) ?

<jmvanel> recommended reading : The Man Who Would Teach Machines to Think:

Douglas Hofstadter

http://www.theatlantic.com/magazine/archive/2013/11/the-man-who-would-teach-machines-to-think/309529/

mavenize a project

http://download.eclipse.org/technology/m2e/releases

http://code.google.com/p/mavenize-tool/

export JAVA_HOME_7=/home/jmv/apps/jdk
mvn install
mvn exec:java -Dexec.args="/home/jmv/src/Lizzy-1.1.1-maven"

Problems with DomainApplication

2013-10-29

java.net.URISyntaxException: Illegal character in path at index 2: 05 Dizzy Miss Lizzie.mp3

Content.java line 158 in Lizzy :

if ((uri == null) || !uri.isAbsolute()) {
  uri = new File(_urlString).toURI();
  // May throw SecurityException. Shall not throw NullPointerException because of _urlString.

The problem : toURI() always returns an absolute path.

Semantic interpretation of simple words from a user

rock trumpet

1st interp

x a rock

x a trumpet

a === rdfs:type

2nd interp

x dc:subject dbpedia:Rock , dbpedia:Trumpet .

3rd interp.

x dbo:genre dbpedia:Rock ; dc:subject dbpedia:trumpet .

In dbPedia:

<http://dbpedia.org/resource/Rock>
        a                               dbpedia-owl:TopicalConcept , owl:Thing , dbpedia-owl:MusicGenre , dbpedia-owl:Genre .

In MusicOntology:

mo:genre
      rdf:type owl:ObjectProperty ;
      rdfs:comment """
        Associates an event (like a performance or a recording) to a particular musical genre.
        Further version of this property may also include works and scores in the domain.
    """ ;
      rdfs:domain
              [ rdf:type owl:Class ;
                owl:unionOf (foaf:Agent mo:Performance mo:Arrangement mo:Composition mo:Recording mo:RecordingSession mo:MusicalWork mo:MusicalExpression mo:MusicalManifestation mo:MusicalItem)
              ] ;
      rdfs:isDefinedBy mo: ;
      rdfs:label "genre" ;      rdfs:range mo:Genre ;

To enable reasoning (pour rendre possible le raisonnement) :

mo:Genre owl:sameAs dbpedia-owl:MusicGenre .

genre=rock

Not found: file:///home/jmv/bizz/taxochronos/src/audio-dam/ui-swing/audio.n3
java.lang.RuntimeException: N3SourceFromSPARQLSource.doUpdate(): file:/home/jmv/bizz/taxochronos/src/audio-dam/ui-swing/dbpedia.rq ; 
at eulergui.inputs.N3SourceFromSPARQLSource.doUpdate(N3SourceFromSPARQLSource.java:148)
at eulergui.inputs.N3SourceFromSPARQLSource.doUpdate(N3SourceFromSPARQLSource.java:84)
at eulergui.project.N3Source.update(N3Source.java:430)
at eulergui.project.N3Source.parseResult(N3Source.java:522)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:243)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90)
at eulergui.project.Project.doTranslateN32Drools(Project.java:936)
at eulergui.project.Project.translateN32Drools(Project.java:887)
at eulergui.project.Project.prepareDrools(Project.java:848)
at eulergui.project.Project.prepareDrools(Project.java:826)
at deductions.runtime.RuleBasedApplicationStarter.prepareProject(RuleBasedApplicationStarter.java:93)
at deductions.runtime.RuleBasedApplicationStarter.addKnowledge(RuleBasedApplicationStarter.java:162)
at deductions.runtime.RuleBasedApplicationHelper$$anonfun$addKnowledge$1.apply(RuleBasedApplicationHelper.scala:52)
at deductions.runtime.RuleBasedApplicationHelper$$anonfun$addKnowledge$1.apply(RuleBasedApplicationHelper.scala:52)
at scala.collection.Iterator$class.foreach(Iterator.scala:727)
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157)
at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
at deductions.runtime.RuleBasedApplicationHelper$.addKnowledge(RuleBasedApplicationHelper.scala:52)
at deductions.runtime.RuleBasedApplicationHelper.addKnowledge(RuleBasedApplicationHelper.scala)
at taxochronos.gui.PlayerGUI.start(PlayerGUI.java:125)
at taxochronos.gui.PlayerGUI.main(PlayerGUI.java:86)
Caused by: com.hp.hpl.jena.shared.NotFoundException: Not found: file:///home/jmv/bizz/taxochronos/src/audio-dam/ui-swing/audio.n3
at org.apache.jena.riot.adapters.AdapterFileManager.readModelWorker(AdapterFileManager.java:285)
at com.hp.hpl.jena.util.FileManager.readModel(FileManager.java:363)
at com.hp.hpl.jena.sparql.util.DatasetUtils.createDatasetGraph(DatasetUtils.java:175)
at com.hp.hpl.jena.sparql.util.DatasetUtils.createDatasetGraph(DatasetUtils.java:141)
at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.prepareDataset(QueryExecutionBase.java:610)
at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.getPlan(QueryExecutionBase.java:547)
at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.startQueryIterator(QueryExecutionBase.java:498)
at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execConstructTriples(QueryExecutionBase.java:252)
at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execConstruct(QueryExecutionBase.java:223)
at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.execConstruct(QueryExecutionBase.java:204)
at eulergui.project.SPARQLToN3Converter.doQuery(SPARQLToN3Converter.java:90)
at eulergui.inputs.N3SourceFromSPARQLSource.doUpdate(N3SourceFromSPARQLSource.java:131)

./Transcode.sh --help
 ./Transcode.sh ../help.m3u
 ./Transcode.sh --help
 ./Transcode.sh ../help.m3u -o ../help.smil
less ../help.smil
 ./Transcode.sh ../help.m3u -t smil
 ./Transcode.sh ../help.m3u -t plist
 ./Transcode.sh ../help.m3u -t plist | less

cd ~/src/Lizzy-1.1.1-src/src/java/ 
cp ~/src/Lizzy-1.1.1-src/VERSION .

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

Unité d'exécution [AWT-EventQueue-0] (Suspendue (exception TDBTransactionException))
DatasetImpl.getNamedModel(String) ligne : 175
Persistence(TripleStoreTDB).getNamedModel(String) ligne : 94
Persistence.getModel() ligne : 26
Persistence(TripleStoreJena).closeDatabase() ligne : 92
ProjectGUI.doFinalize() ligne : 556
ProjectGUI$3.windowClosing(WindowEvent) ligne : 491
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
ProjectGUI(Window).processWindowEvent(WindowEvent) ligne : 2051
ProjectGUI(JFrame).processWindowEvent(WindowEvent) ligne : 296
ProjectGUI(Window).processEvent(AWTEvent) ligne : 2009
ProjectGUI(Component).dispatchEventImpl(AWTEvent) ligne : 4861
ProjectGUI(Container).dispatchEventImpl(AWTEvent) ligne : 2287
ProjectGUI(Window).dispatchEventImpl(AWTEvent) ligne : 2719
ProjectGUI(Component).dispatchEvent(AWTEvent) ligne : 4687
EventQueue.dispatchEventImpl(AWTEvent, Object) ligne : 735
EventQueue.access$200(EventQueue, AWTEvent, Object) ligne : 103
EventQueue$3.run() ligne : 694
EventQueue$3.run() ligne : 692
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) ligne : non disponible [méthode native]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) ligne : 76
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) ligne : 87
EventQueue$4.run() ligne : 708
EventQueue$4.run() ligne : 706
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) ligne : non disponible [méthode native]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) ligne : 76
EventQueue.dispatchEvent(AWTEvent) ligne : 705
EventDispatchThread.pumpOneEventForFilters(int) ligne : 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) ligne : 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) ligne : 150
EventDispatchThread.pumpEvents(int, Conditional) ligne : 146
EventDispatchThread.pumpEvents(Conditional) ligne : 138
EventDispatchThread.run() ligne : 91

Unité d'exécution [AWT-EventQueue-0] (Suspendue (exception TDBTransactionException))
détient : Object  (id=7475)
DatasetGraphTransaction.get() ligne : 104
DatasetGraphTransaction.get() ligne : 40
DatasetGraphTransaction(DatasetGraphTrackActive).getGraph(Node) ligne : 103
DatasetImpl.getNamedModel(String) ligne : 171
Persistence(TripleStoreTDB).getNamedModel(String) ligne : 94
Persistence.getModel() ligne : 26
Persistence(TripleStoreJena).closeDatabase() ligne : 92
ProjectGUI.doFinalize() ligne : 556
ProjectGUI$3.windowClosing(WindowEvent) ligne : 491
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
AWTEventMulticaster.windowClosing(WindowEvent) ligne : 349
ProjectGUI(Window).processWindowEvent(WindowEvent) ligne : 2051
ProjectGUI(JFrame).processWindowEvent(WindowEvent) ligne : 296
ProjectGUI(Window).processEvent(AWTEvent) ligne : 2009
ProjectGUI(Component).dispatchEventImpl(AWTEvent) ligne : 4861
ProjectGUI(Container).dispatchEventImpl(AWTEvent) ligne : 2287
ProjectGUI(Window).dispatchEventImpl(AWTEvent) ligne : 2719
ProjectGUI(Component).dispatchEvent(AWTEvent) ligne : 4687
EventQueue.dispatchEventImpl(AWTEvent, Object) ligne : 735
EventQueue.access$200(EventQueue, AWTEvent, Object) ligne : 103
EventQueue$3.run() ligne : 694
EventQueue$3.run() ligne : 692
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) ligne : non disponible [méthode native]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) ligne : 76
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) ligne : 87
EventQueue$4.run() ligne : 708
EventQueue$4.run() ligne : 706
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) ligne : non disponible [méthode native]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) ligne : 76
EventQueue.dispatchEvent(AWTEvent) ligne : 705
EventDispatchThread.pumpOneEventForFilters(int) ligne : 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) ligne : 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) ligne : 150
EventDispatchThread.pumpEvents(int, Conditional) ligne : 146
EventDispatchThread.pumpEvents(Conditional) ligne : 138
EventDispatchThread.run() ligne : 91

domainApp examples/domain-app-Song.n3 examples/domain-app-Person.n3 http://dbpedia.org/ontology/MusicalWork foaf:

Error when updating user KB for http://DomainApplicationRules

translate(IRDFIterator iterator, ... http://DomainApplicationRules

Cause:

java.lang.RuntimeException: Drools Compile Error !

Please report this to EulerGUI team.

http://DomainApplicationRules

Drools Error: Rule Compilation error The method add(Component) in the type Container is not applicable for the arguments (String)

ErrorLines: - 82

2013-10-28

- come back to latest EYE because rule generation from OWL is fixed by Jos in EYE ( generation of blank nodes instead of automatic variables )

- DomainApp : print name of class of created resource

<jmvanel> I have the embryo of a TDB GUI manager

<jmvanel> ( no screenshot yet )

<jmvanel> there is now one screenshot : http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L7347

<jmvanel> I just uploaded a snapshot of EulerGUI : http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L931

COMMIT

FIX text suite after recent change in URLHelper.scala for URI abbreviation

Tests run: 226, Failures: 0, Errors: 0, Skipped: 0

[INFO] BUILD SUCCESS

 % svn log src/main/scala/eulergui/util/URLHelper.scala
------------------------------------------------------------------------
r3766 | jmvanel | 2013-10-27 10:51:22 +0100 (dim. 27 oct. 2013) | 2 lignes

actually show abbreviated URI's in N3Form (top combobox in DataGUI)
TODO also abbreviate URI's in bottom combobox in DataGUI
------------------------------------------------------------------------
r3760 | jmvanel | 2013-10-16 21:18:58 +0200 (mer. 16 oct. 2013) | 3 lignes

DomainApplication.scala : WIP :
- button in EuleGUI tools menu
- N3Form: better layout of the triple combobox UI
------------------------------------------------------------------------
r3741 | jmvanel | 2013-10-10 10:51:57 +0200 (jeu. 10 oct. 2013) | 1 ligne

DataGUI : FIX loading from input URI field ( bug in commit [r3738] )

Tests in error: 
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "title" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "address" loaded
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Employee" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded

Error when updating user KB for http://svn.code.sf.net/p/deductions/code/n3_new/owl-subclass-assertions-to-rules.n3
String index out of range: -1

Rule generation from OWL : EYE regression

The generation of blank nodes occurs instead of automatic variables in the latest revision.

Here is a test for the rule base I use embedded in EuleGUI to generate rules from OWL and SWRL.

DED=http://svn.code.sf.net/p/deductions/code
EG=http://svn.code.sf.net/p/eulergui/code/trunk/eulergui

eye --nope $EG/test/simplest_hierarchy.n3 \
    $DED/n3_new/owl-subclass-assertions-to-rules.n3 \
    --query $DED/n3_new/swrl-n3-rulesQ.n3

Id: euler.yap 6677 2013-10-25 20:00:19Z josd
YAP 6.2.3 (i686-linux): Sat Jun 16 23:34:26 CEST 2012
starting 56 [msec cputime] 66 [msec walltime]
GET http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/test/simplest_hierarchy.n3 SC=1
GET http://svn.code.sf.net/p/deductions/code/n3_new/owl-subclass-assertions-to-rules.n3 SC=22
GET http://svn.code.sf.net/p/deductions/code/n3_new/swrl-n3-rulesQ.n3 SC=3
networking 24 [msec cputime] 1146 [msec walltime]
TC=6 TP=16 BC=0 BP=7 PM=0 CM=0 FM=0 AM=0
reasoning 0 [msec cputime] 2 [msec walltime]

#Processed by Id: euler.yap 6677 2013-10-25 20:00:19Z josd
#eye --nope http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/test/simplest_hierarchy.n3 http://svn.code.sf.net/p/deductions/code/n3_new/owl-subclass-assertions-to-rules.n3 --query http://svn.code.sf.net/p/deductions/code/n3_new/swrl-n3-rulesQ.n3

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
@prefix math: <http://www.w3.org/2000/10/swap/math#>.
@prefix list: <http://www.w3.org/2000/10/swap/list#>.
@prefix log: <http://www.w3.org/2000/10/swap/log#>.
@prefix : <http://eulergui.sf.net/owl-rule#>.
@prefix var: <http://localhost/var#>.
@prefix ns1: <http://owldl.com/ontologies/dl-safe.owl#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix swrl: <http://www.w3.org/2003/11/swrl#>.
@prefix string: <http://www.w3.org/2000/10/swap/string#>.
@prefix fn: <http://www.w3.org/2005/xpath-functions#>.

{_:VAR a <http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/test/x>} => {_:VAR a <http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/test/y>}.

#ENDS 0.080 [sec] TC=6 TP=16 BC=0 BP=7 PM=0 CM=0 FM=0 AM=0

When processed by euler.yap 6577 2013-09-30 20:29:28Z ,

it gives ?VAR instead of _:VAR .

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

COMMIT

- revert to EYE of 2013-09 because rule generation from OWL is broken by EYE ( generation of blank nodes instead of automatic variables )

TODO test/simple_rule.n3 still broken with Drools

- fix once more the Maven build (did not work after mvn clean )

2013-10-27

FIX test suite after recent change in URLHelper.scala

http://hermit-reasoner.com/java.html

Failed tests:   testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch)
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl)
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl)

Tests in error: 
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "title" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "address" loaded
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Employee" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded

TODO :

<dependency>
    <groupId>com.hermit-reasoner</groupId>
    <artifactId>org.semanticweb.hermit</artifactId>
    <version>1.3.8.1</version>
</dependency>

% mvn versions:display-dependency-updates
 ...
[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.ibm.icu:icu4j ..................................... 50.1.1 -> 52.1
[INFO]   com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.5
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   jline:jline ............................................. 2.10 -> 2.11
[INFO]   net.sourceforge.owlapi:owlapi-apibinding .............. 3.4.3 -> 3.4.5
[INFO]   net.sourceforge.owlapi:owlapi-parsers ................. 3.4.3 -> 3.4.5
[INFO]   org.drools:drools-compiler .................. 5.5.0.Final -> 6.0.0.CR5
[INFO]   org.scala-lang:scala-library ..................... 2.10.1 -> 2.11.0-M6
[INFO]   org.scala-lang:scala-swing ....................... 2.10.1 -> 2.11.0-M6

http://jena.apache.org/documentation/inference/#RDFSPlusRules

mvn archetype:generate -Dfilter=scala

[INFO] cmd: /home/jmv/apps/jdk1.7.0_45/jre/bin/java -classpath /home/jmv/.m2/repository/org/scala-lang/scala-compiler/2.10.1/scala-compiler-2.10.1.jar:

/home/jmv/.m2/repository/org/scala-lang/scala-library/2.10.1/scala-library-2.10.1.jar:

/home/jmv/.m2/repository/org/scala-lang/scala-reflect/2.10.1/scala-reflect-2.10.1.jar:

/home/jmv/.m2/repository/org/scala-tools/maven-scala-plugin/2.15.2/maven-scala-plugin-2.15.2.jar -Xbootclasspath/a:/home/jmv/.m2/repository/org/scala-lang/scala-library/2.10.1/scala-library-2.10.1.jar org_scala_tools_maven_executions.MainWithArgsInFile scala.tools.nsc.Main /tmp/scala-maven-3114741903359252992.args

<http://dbpedia.org/class/yago/SongwritersFromMinnesota>

svn log -r {2013-10-01}:HEAD

wget --verbose --header='Accept: text/n3, text/turtle, application/rdf+xml; q=0.9, text/xml; q=0.9, text/plain; q=0.8, text/xhtml; q=0.8, text/html; q=0' \
http://dbpedia.org/resource/Jimi_Hendrix

wget --verbose --header='Accept: text/turtle; q=1, text/n3; q=1, application/rdf+xml; q=0.9, text/xml; q=0.9, text/plain; q=0.8, text/xhtml; q=0.8, text/html; q=0' \
http://dbpedia.org/resource/Jimi_Hendrix

wget --verbose --header='Accept: text/turtle,text/n3;q=1, application/rdf+xml;q=0.9, text/xml;q=0.85, text/plain;q=0.8, text/xhtml;q=0.7, text/html;q=6' \
http://dbpedia.org/resource/Jimi_Hendrix

wget --verbose --header='Accept: text/turtle,text/n3;q=1, application/rdf+xml;q=0.6, text/xml;q=0.5, text/plain;q=0.4, text/xhtml;q=0.35, text/html;q=0.3' \
http://dbpedia.org/resource/Jimi_Hendrix

http://dbpedia.org/resource/Louis_XV_of_France

HTTP headers

null: [HTTP/1.1 200 OK]
Link: [<http://dbpedia.org/data/Louis_XV_of_France.n3>; rel="alternate"; type="text/n3"; title="Structured Descriptor Document (N3/Turtle format)", <http://dbpedia.org/data/Louis_XV_of_France.json>; rel="alternate"; type="application/json"; title="Structured Descriptor Document (RDF/JSON format)", <http://dbpedia.org/data/Louis_XV_of_France.atom>; rel="alternate"; type="application/atom+xml"; title="OData (Atom+Feed format)",
<http://dbpedia.org/data/Louis_XV_of_France.jsod>; rel="alternate"; type="application/odata+json"; title="OData (JSON format)",
<http://dbpedia.org/page/Louis_XV_of_France>; rel="alternate"; type="text/html"; title="XHTML+RDFa", <http://dbpedia.org/resource/Louis_XV_of_France>; rel="http://xmlns.com/foaf/0.1/primaryTopic", <http://dbpedia.org/resource/Louis_XV_of_France>; rev="describedby", <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/data/Louis_XV_of_France.xml>; rel="timegate"]

Vary: [Accept-Encoding]
Date: [Sun, 27 Oct 2013 11:19:13 GMT]
Content-Length: [67359]
Expires: [Sun, 03 Nov 2013 11:19:13 GMT]
X-SPARQL-default-graph: [http://dbpedia.org]
Accept-Ranges: [bytes]
Connection: [keep-alive]
Content-Type: [application/rdf+xml; charset=UTF-8]
Server: [Virtuoso/07.00.3204 (Linux) i686-generic-linux-glibc212-64  VDB]

COMMIT

actually show abbreviated URI's in bottom combobox in DataGUI

(dbpedia: prefix was not present in RDF from dbpedia.org, so I add all important prefixes systematically)

TODO: in SourceFactory HTTP 303 See Other to http://dbpedia.org/data/XXX.ttl is not taken in account (wget does this very well)

wget --header='Accept: application/rdf+xml' http://dbpedia.org/resource/Jim_Keltner

wget --header='Accept: text/turtle' http://dbpedia.org/resource/Jim_Keltner
--2013-10-27 11:38:48--  http://dbpedia.org/resource/Jim_Keltner
Résolution de dbpedia.org (dbpedia.org)... 194.109.129.58, 2001:888:2000:36:1::1
Connexion vers dbpedia.org (dbpedia.org)|194.109.129.58|:80... connecté.
requête HTTP transmise, en attente de la réponse... 303 See Other
Emplacement : http://dbpedia.org/data/Jim_Keltner.ttl [suivant]
--2013-10-27 11:38:57--  http://dbpedia.org/data/Jim_Keltner.ttl
Réutilisation de la connexion existante vers dbpedia.org:80.
requête HTTP transmise, en attente de la réponse... 200 OK
Taille : 21140 (21K) [text/turtle]
Enregistre : «Jim_Keltner»

100%[============================================================================================================>] 21 140      99,2KB/s   ds 0,2s   

2013-10-27 11:39:20 (99,2 KB/s) - «Jim_Keltner» enregistré [21140/21140]

{http://dbpedia.org/ontology/alias=, http://dbpedia.org/property/=dbpprop, http://www.w3.org/1999/02/22-rdf-syntax-ns#=rdf, http://xmlns.com/foaf/0.1/=foaf, http://www.w3.org/2002/07/owl#=owl, http://purl.org/dc/terms/=dcterms, http://www.w3.org/ns/prov#=ns8, http://www.w3.org/1999/xhtml/vocab#=xhv, http://dbpedia.org/ontology/=dbpedia-owl, http://www.w3.org/2000/01/rdf-schema#=rdfs}

2013-10-26

<jmvanel> Hi! I suspect that storing prefix mappings in TDB is not implemented

<jmvanel> Well, there is actually a test /TestPrefixMappingTDB.java" 147 lines

Unité d'exécution [main] (Suspendue (point d'arrêt à la ligne 184 de TripleStoreTDB))
TripleStoreFromNamedModel(TripleStoreTDB).copyPrefixDeclarations(Map<String,URI>) ligne : 184
RuleBasedApplicationWithCache.storeN3SourceInCache(N3Source) ligne : 154
RuleBasedApplicationWithCache.addKnowledge(String) ligne : 58
TestRuleBasedApplicationWithCache.verifyPrefixes() ligne : 21
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) ligne : non disponible [méthode native]
NativeMethodAccessorImpl.invoke(Object, Object[]) ligne : 57
DelegatingMethodAccessorImpl.invoke(Object, Object[]) ligne : 43
Method.invoke(Object, Object...) ligne : 606
FrameworkMethod$1.runReflectiveCall() ligne : 47
FrameworkMethod$1(ReflectiveCallable).run() ligne : 12
FrameworkMethod.invokeExplosively(Object, Object...) ligne : 44
InvokeMethod.evaluate() ligne : 17
RunBefores.evaluate() ligne : 26
BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement, Description, RunNotifier) ligne : 271
BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) ligne : 70
BlockJUnit4ClassRunner.runChild(Object, RunNotifier) ligne : 50
ParentRunner$3.run() ligne : 238
ParentRunner$1.schedule(Runnable) ligne : 63
BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) ligne : 236
ParentRunner<T>.access$000(ParentRunner, RunNotifier) ligne : 53
ParentRunner$2.evaluate() ligne : 229
BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) ligne : 309
JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) ligne : 50
TestExecution.run(ITestReference[]) ligne : 38
RemoteTestRunner.runTests(String[], String, TestExecution) ligne : 467
RemoteTestRunner.runTests(TestExecution) ligne : 683
RemoteTestRunner.run() ligne : 390
RemoteTestRunner.main(String[]) ligne : 197

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:104)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:40)
at com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.getGraph(DatasetGraphTrackActive.java:103)
at com.hp.hpl.jena.sparql.core.DatasetImpl.getNamedModel(DatasetImpl.java:171)
at unif.TripleStoreTDB.getModelForWriting(TripleStoreTDB.java:64)
at deductions.runtime.TestRuleBasedApplicationWithCache.verifyPrefixes(TestRuleBasedApplicationWithCache.scala:29)
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:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
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)

java.lang.AssertionError: expected: java.net.URI<http://dbpedia.org/property/> but was: java.lang.String<http://dbpedia.org/property/>

http://www.scalatest.org/getting_started_with_junit_4_in_scala

Unité d'exécution [main] (Suspendue (point d'arrêt à la ligne 340 de TripleComboBoxes))
TripleComboBoxes.makeComboBoxFromURIs(Set<String>) ligne : 340
TripleComboBoxes.makeSubjectOrObjectComboBox() ligne : 324
TripleComboBoxes.getEnterURIUI() ligne : 120
DataGUIWindow.populateDataGUIWindow() ligne : 66
DataGUIWindow.<init>(RuleBasedApplicationWithCache) ligne : 55
DataGUI$delayedInit$body.apply() ligne : 13
Function0$class.apply$mcV$sp(Function0) ligne : 40
DataGUI$delayedInit$body(AbstractFunction0<R>).apply$mcV$sp() ligne : 12
App$$anonfun$main$1.apply(Function0<BoxedUnit>) ligne : 71
App$$anonfun$main$1.apply(Object) ligne : 71
$colon$colon<B>(List<A>).foreach(Function1<A,B>) ligne : 318
TraversableForwarder$class.foreach(TraversableForwarder, Function1) ligne : 32
App$class.main(App, String[]) ligne : 71
DataGUI$.main(String[]) ligne : 11
DataGUI.main(String[]) ligne : non disponible

semantic web URI's for google calendar , contact , etc

http://www-sop.inria.fr/acacia/fabien/tmp/grddl/grddl-introduction-v3/

Personalised Graph-based Selection of Web APIs

Milan Dojchinovski 1, Jaroslav Kuchar 1, Tomas Vitvar 1 and Maciej Zaremba 2

http://iswc2012.semanticweb.org/sites/default/files/76490033.pdf

http://blogs.gartner.com/darin-stewart/2012/05/17/googles-knowledge-graph-yeah-thats-the-semantic-web-sort-of/

http://answers.semanticweb.com/questions/53/what-are-good-semantic-apis-that-can-be-used-for-pulling-interesting-info-to-another-website

http://blog.restlet.com/category/semantic-web/

http://microformats.org/wiki/Main_Page

sites providing RDFa or microformats

2013-10-25

sites providing RDFa or microformats, webdatacommons.org

http://www.webdatacommons.org/

http://aws.amazon.com/datasets/41740

<jmvanel> another one : is there a list of sites providing RDFa or microformats ?

<jmvanel> found nothing on http://microformats.org

http://dws.informatik.uni-mannheim.de/fileadmin/lehrstuehle/ki/pub/Bizer-etal-DeploymentRDFaMicrodataMicroformats-ISWC-InUse-2013.pdf

Examples of websites from the Alexa top 100 list that use RDFa are the Internet Movie Database (IMDb), the

Microsoft news portal and also the website of the British Broadcasting Corporation.

https://developers.facebook.com/docs/opengraph/overview/

Examples of websites from the Alexa Top 100 list that use Microdata are the auction site eBay as well as the websites of Microsoft Corporation and Apple Inc.

http://www.w3.org/ns/md#

http://sparql.sindice.com/

Exploring Google (calendar) API's

<jmvanel> I'm exploring Google ( calendar) API's ; is it possible to have an URI associated to things ( e.g. a calendar entry ) , even its content is XML or JSON ?

Tried this URL: https://www.google.com/calendar/feeds/jeanmarc.vanel@gmail.com

https://developers.google.com/apis-explorer/#s/calendar/v3/calendar.calendarList.list?maxResults=10&_h=2&

Simple semantic importer

Given a list of correspondence from a plain string to an URI (relative or absolute), the SimpleSemanticImporter tool will translate incoming (pseudo)triples onto regular triples.

From instance given this list of correspondences :

foaf:name eg:correspondence "name" .
dc:date correspondence "date".

It will transform one pseudo triple :

( "<someURI>" "date" "2013-10-25" ) // (Scala tuple)

into this N3 triple:

<someURI> dc:date "2013-10-25"^^xsd:dateTime .

pim+ontology

<jmvanel> looking vocab's for meetings , etc

<jmvanel> considering PIMO, but it's unconnected to FOAF :(

<jmvanel> https://sourceforge.net/apps/trac/oscaf/wiki/PIMO

https://www.google.fr/search?q=pim+ontology

mappings between the new VCard ontology and two other vocabulariees commonly used to describe people, the W3C's PIM vocabulary and the community-driven FOAF vocabulary.

http://www.ibiblio.org/hhalpin/homepage/notes/vcardtable.html

ontology URI : http://www.semanticdesktop.org/ontologies/2007/11/01/pimo/#

http://libstaff.mit.edu/facade/images/b/b2/Pimv2p7p1.owl

A Multi-Ontology Approach for Personal Information Management - Huiyong Xiao Isabel F. Cruz, Department of Computer Science, University of Illinois at Chicago

http://www.cs.uic.edu/~advis/publications/dataint/sdk05.pdf

http://facade.mit.edu/

http://gleanr.com/gleans?menu=search&tag=PIM+ontology+language%2Contology%2Csemantic+desktop%2Csemantic+web

java.lang.IllegalArgumentException: URI has a fragment component
at java.io.File.<init>(File.java:425)
at eulergui.gui.main.ProjectGUI.setLastFile(ProjectGUI.java:871)
at eulergui.gui.main.ProjectGUI.initFromProject(ProjectGUI.java:163)
at eulergui.gui.main.ProjectGUI.<init>(ProjectGUI.java:136)
at eulergui.gui.main.ProjectGUI.newWindow(ProjectGUI.java:286)
at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:231)

2013-10-24

Redmine uses Redmine itself for its development, of course ! ( and of source ;) )

http://www.redmine.org/projects/redmine/news

cd ~/src/ebics/trunk/
xmllint --noout ~/ebics_qualif/client/users/JMV1/traces/INIRequest.xml --schema schema/ebics.xsd        
/home/jmv/ebics_qualif/client/users/JMV1/traces/INIRequest.xml validates

http://xmlbeans.apache.org/

http://wwbota.free.fr/XSLT_models/README.html

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

There is indeed some microformat here in Amazon, but EulerGUI does not get it :

eg 'http://www.amazon.fr/Electric-Ladyland-Jimi-Hendrix-Experience/dp/B00307WK1W/ref=sr_1_4?s=dmusic&ie=UTF8&sr=1-4&keywords=hendrix'

"playlist rdf format vocabulary" search brings only this:

http://schema.org/MusicPlaylist

% ant all
Buildfile: /home/jmv/src/Lizzy-1.1.1-src/build.xml

javac:
    [mkdir] Created dir: /home/jmv/src/Lizzy-1.1.1-src/dist/classes
    [javac] Compiling 197 source files to /home/jmv/src/Lizzy-1.1.1-src/dist/classes
    [javac] /home/jmv/src/Lizzy-1.1.1-src/src/java/christophedelory/playlist/rmp/Track.java:276: error: unmappable character for encoding UTF8
    [javac]      * This filename is both the filename on the server, as well as the destination filename for the user�s hard drive.
    [javac]                                                                                                          ^
    [javac] /home/jmv/src/Lizzy-1.1.1-src/src/java/christophedelory/playlist/rmp/Track.java:499: error: unmappable character for encoding UTF8
    [javac]      * A URL to be stored in the track�s metadata as "Playback Specifications:Context Info URL".
    [javac]                                       ^
    [javac] 2 errors

m3u playlist java reader library

http://lizzy.sourceforge.net/ : it's made in France : Copyright © 2008-2009 Christophe Delory - https://sourceforge.net/projects/lizzy/ : 500 downloads per year; no depot, but source is available

https://code.google.com/p/java-m3u-file-parser/

http://stackoverflow.com/questions/9427084/read-m3uplaylist-file-in-java

http://code.google.com/p/picardplugins/wiki/LibraryFile

2013-10-23

Project-management

http://www.opensourcesoftwaredirectory.com/Medium-and-small/Project-management

http://www.redmine.org

ValidatorException: PKIX path building failed

http://stackoverflow.com/questions/9619030/resolving-javax-net-ssl-sslhandshakeexception-sun-security-validator-validatore

Related: Java Lesson: Generating and Verifying Signatures

http://docs.oracle.com/javase/tutorial/security/apisign/index.html

The convenient InstallCert.java program

It connects ( just the hand shake ) to given URL, downloads the site's certificate, and adds to a copy of the current default cacerts keystore in JRE ( jre/lib/security/cacerts ) . The site's certificate is added as a trusted URL (trustedCertEntry) in file jssecacerts in current directory .

More explanations:

https://blogs.oracle.com/gc/entry/unable_to_find_valid_certification

Download the source:

http://code.google.com/p/java-use-examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java

Then one can check the presence of the new entry like this (look for the given URL) :

keytool -list -keystore jssecacerts | less

2013-10-22

http://www.ebics.org/

2013-10-18

Computational logic and proof

http://www.wisemapping.org/

I had a look at

http://www.cis.upenn.edu/~jean/gbooks/logic.htmlq

and downloaded the whole stuff from

http://www.cis.upenn.edu/~cis610/logic.pdf.gz‎

2013-10-17

@prefix java:  <http://java.sun.com/class#>.
@prefix javam:  <http://java.sun.com/method#>.

:x :p (:a :b :c ).
{ :x :p ?L
} => {
  _:a a java:java-util-ArrayList.
  _:a javam:addAll ?L.
  java:java-lang-System javam:println _:a .
}.

Exception in thread "AWT-EventQueue-0" com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:106)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:40)
at com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.getGraph(DatasetGraphTrackActive.java:94)
at com.hp.hpl.jena.sparql.core.DatasetImpl.getNamedModel(DatasetImpl.java:171)
at unif.TripleStoreTDB.getNamedModel(TripleStoreTDB.java:92)
at deductions.runtime.Persistence.getModel(Persistence.java:26)
at unif.TripleStoreJena.closeDatabase(TripleStoreJena.java:92)
at eulergui.gui.main.ProjectGUI.doFinalize(ProjectGUI.java:556)
at eulergui.gui.main.ProjectGUI$3.windowClosing(ProjectGUI.java:491)

2013-10-16

http://en.wikipedia.org/wiki/Maude_system

Installed on my Android:

https://play.google.com/store/apps/details?id=com.intsig.BCRLite&hl=fr

2013-10-15

http://blog.exalead.fr/

http://voxaleadnews.labs.exalead.com/

http://labs.exalead.com/

TODO start DomainApp from EG

OSS from project Quaero:

ProjectFactory.restoreAny(): no project found in KB for "file:/home/jmv/src/eulergui-code/eulergui/domain-app-Song.n3.n3p" : creating empty project
org.drools.reteoo.ReteooStatefulSession@3b8de588 2 objets sont actuellement dans la WorkingMemory.
org.drools.reteoo.ReteooStatefulSession@3b8de588 4 objets sont actuellement dans la WorkingMemory.
URICacheImpl.getURITimeStamp(): http://dbpedia.org/resource/MusicalWork : java.io.FileNotFoundException: http://dbpedia.org/page/MusicalWork
[]
after new JPanel
N3Source.N3Source(): file:/tmp/eg-4575932157935133850.n3
RuleBasedApplicationStarter.addKnowledge(): NOT yet in KB: http://DomainApplicationRules
Rules fired: 0
URICacheImpl.getURITimeStamp(): http://dbpedia.org/resource/MusicalWork : java.io.FileNotFoundException: http://dbpedia.org/page/MusicalWork
URICacheImpl.getURITimeStamp(): http://dbpedia.org/resource/MusicalWork : java.io.FileNotFoundException: http://dbpedia.org/page/MusicalWork

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

TODO EG import / export ML format like Weka

This does not work from EulerGUI inside eclipse (after clicking on start DomainApp, there is no content in the new window):

file://${project_loc}/examples/domain-app-Song.n3 
file://${project_loc}/examples/domain-app-Person.n3 
dbpedia:MusicalWork

This works with DomainApplication from eclipse :

file:///home/jmv/src/eulergui-code/eulergui/examples/domain-app-Person.n3
file:///home/jmv/src/eulergui-code/eulergui/examples/domain-app-Song.n3
foaf:
file:///home/jmv/ontologies/dbpedia_3.9.owl

semantic+web+machine+learning

http://aksw.org/Groups/MOLE.html

http://aksw.org/Projects/DLLearner.html

http://userpages.uni-koblenz.de/~staab/Research/Events/ICML05tutorial/icml05tutorial.pdf

IRCOMABeat, audioID http://en.wikipedia.org/wiki/AudioID

Scala courses and resources

http://scala.io/schedule.html

https://www.coursera.org/course/reactive

https://www.coursera.org/course/progfun

Programming in Scala, 2nd edition (Artima, 2011, 0981531644).pdf

http://ge.tt/8HFp6HJ/v/0

http://deptinfo.unice.fr/~roy/sicp.pdf

2013-10-14

alias domainApp="java -cp $JAR  deductions.runtime.swing.domainApplication.DomainApplication"

cd ~/src/eulergui-code/eulergui/examples/
domainApp domain-app-Song.n3 domain-app-Person.n3 dbpedia:MusicalWork 

d=file:///home/jmv/src/eulergui-code/eulergui/examples
domainApp $d/domain-app-Song.n3 $d/domain-app-Person.n3 dbpedia:MusicalWork \
  /home/jmv/ontologies/dbpedia_3.9.owl

COMMIT

About TDB transactions

consider this scenario:

m = dataset.getNamedModel(uri);

dataset.begin(ReadWrite.WRITE);

m1 = dataset.getNamedModel(uri);

results in a TDBTransactionException("Not in a transaction")

BUG or NORMAL ?

<jmvanel> I'll change my code as if NORMAL ...

bibliothèque,

je peux voir si je peux louer un bureaux à la pépinière de Gennevilliers,

je crois que chez toi c'est pas possible ?

COMMIT

- FIX error in TripleStoreTDB, such that TripleStoreFromNamedModel.query("") was getting the whole DB

(resulting in duplicate buttons)

- DomainApplication.scala : FIX URI for N3Source rule

(resulting in URI exception hard to understand later)

- SWExplorerWindow.scala : organize imports

2013-10-13

http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html#programmatic

http://stackoverflow.com/questions/8000903/what-are-all-the-uses-of-an-underscore-in-scala

Exception in thread "AWT-EventQueue-0" com.hp.hpl.jena.tdb.TDBException: Read-only block manager
at com.hp.hpl.jena.tdb.base.block.BlockMgrReadonly.beginUpdate(BlockMgrReadonly.java:33)
at com.hp.hpl.jena.tdb.base.page.PageBlockMgr.startUpdate(PageBlockMgr.java:132)
at com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.startUpdateBlkMgr(BPlusTree.java:406)
at com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.deleteAndReturnOld(BPlusTree.java:341)
at com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.delete(BPlusTree.java:337)
at com.hp.hpl.jena.tdb.index.TupleIndexRecord.performDelete(TupleIndexRecord.java:68)
at com.hp.hpl.jena.tdb.index.TupleIndexBase.delete(TupleIndexBase.java:76)
at com.hp.hpl.jena.tdb.index.TupleTable.delete(TupleTable.java:146)
at com.hp.hpl.jena.tdb.nodetable.NodeTupleTableConcrete.deleteRow(NodeTupleTableConcrete.java:109)
at com.hp.hpl.jena.tdb.store.QuadTable.delete(QuadTable.java:81)
at com.hp.hpl.jena.tdb.store.DatasetGraphTDB.deleteFromNamedGraph(DatasetGraphTDB.java:147)
at com.hp.hpl.jena.sparql.core.DatasetGraphTriplesQuads.delete(DatasetGraphTriplesQuads.java:58)
at com.hp.hpl.jena.tdb.store.GraphTDBBase._performDelete(GraphTDBBase.java:111)
at com.hp.hpl.jena.tdb.store.GraphTDBBase.performDelete(GraphTDBBase.java:85)
at com.hp.hpl.jena.graph.impl.GraphBase.delete(GraphBase.java:225)
at com.hp.hpl.jena.rdf.model.impl.ModelCom.remove(ModelCom.java:346)
at unif.TripleStoreJena.remove(TripleStoreJena.java:223)
at eulergui.rdf.TripleStoreHelper.replaceTriple(TripleStoreHelper.java:209)
at deductions.runtime.UserManagement$.newInstanceURI(UserManagement.scala:49)

2013-10-12

Drools Error: Rule Compilation error The method 
create(List<URI>, URI, URI, RuleBasedApplicationStarter, JPanel) in the type CreationButton is not applicable for the arguments 
(String, String, String, JFrame, JPanel)

// when there are rules in the N3 source ... more TODO <<<<<<<<<<<<<<

<jmvanel> it would be nice to have thumbnail icons for FOAF classes ...

<jmvanel> got it ! dbpedia:Person dbpedia-owl:thumbnail has a value !!!

<jmvanel> good enough

<jmvanel> There are currently in dbPedia 50001 triples matching

?S dbpedia-owl:thumbnail ?T .

<jmvanel> good to know.

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

Found a nice little Java program printing what a drag exactly drops:

http://stackoverflow.com/questions/11771918/testing-drag-and-drop-files-onto-application

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

Semantic Turkey 0.7.2r by Armando Stellato, Noemi Scarpato, Andrea Turbati

Semantic Turkey: a Knowledge Acquisition and Ontology Management Framework.

Not available for Firefox 24.0 !!!!!!!!!!!!! :((((((((

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

COMMIT

fix popup message after downloading Predicates URI referred by

TODO EG

FOAF question : is there kind of a FOAF directory ? probaly not, as one can navigate step by step from a small set of starting points.

DomainApplication

DataGUI is a quite generic application, but really suited for a ordinary user, and not domain specific at all.

DomainApplication will be just that, and will reuse some pieces of DataGUI: component N3Form, inference + storage RuleBasedApplicationWithCache.

N3 specification

Here is an example definition of a button to create a new user defined foaf:Person , with an ordered list of properties to appear in the form:

_:PersonButton a eg:creationFeature
     ; eg:hasProperties ( foaf:name foaf:mbox foaf:phone foaf:homepage foaf:knows )
     ; eg:hasClass foaf:Person
     ; foaf:thumbnail
 .

NOTE for the non-SW aware people: these RDF properties are perfectly defined (label, type, etc) by the above URI's : click on them to see their definition.

Creation buttons are part of a guiFeature:

_:creationPanel a eg:guiFeature
  ; eg:hasFeatures ( _:PersonButton _:organizationButton _:meetingButton ).

The application main panel (or web page) will be a bunch of features, with possibly hints on how to layout them:

_:mainPanel eg:hasFeature
  _:creationPanel, _:textSearch, # text field with completion
  _:suggestionsFeature,
  _:recentItems,
  _:timeline
 .

2013-10-11

http://www.playframework.com/documentation/2.2.x/ScalaTodoList

http://localhost:9000/

COMMIT

FEATURE: now when DataGUI downloads an URI <S>, it downloads also all predicates ?P such that:

<S> ?P ?O .

The downloaded ontologies are stored in persistent store,

and will be used next time a form view is displayed.

NOTE: for dbPedia properties, only label and comment are available, not domain, range, etc.

Semantic Web based applications

SQL is the default choice

Not posted :(

When talking with many Semantic Web guys (and girls), I heard that they are shy about using Semantic Web (SW) for ordinary business applications, like orders, contacts, or forum management, etc.

The main reason I hear is that SQL is mature, has triggers, clean data model with foreign keys, and cascading deletions, transactions. And it also has lots of tools for database masters, data quality, ETL, ...

storage (SPARQL or maybe no-SQL adapter), and

Review existing stuff

http://www.google.fr/search?q=java+web+semantic+framework

The EUCLID project (http://www.euclid-project.eu) is happy to announce the fifth of its live webinar series.

The webinar is dedicated to the theme of 'Building Linked Data applications' and will be held on October 14th, 2013 at 3 pm BST (4 pm CEST). The webinar, including a Twitter-based question section, will focus on frameworks and technologies to exploit Linked Data as part of applications.

First, we will provide an overview of main types of Linked Data applications and give examples of popular existing ones. Then, we will describe a generic layered architecture of a Linked Data application and technologies used to support this architecture. Furthermore, we will give details on existing frameworks which help to develop such applications in a structured way. Finally, we will describe how Web APIs can be used to support data exchange in an application.

To participate in the webinar please visit http://stadium.open.ac.uk/stadia/preview.php?whichevent=2263

The slides used in the webinar will be uploaded at http://www.slideshare.net/EUCLIDproject. Recordings of the webinar will be made available shortly after the live event at http://vimeo.com/euclidproject

In the mean time, please feel free to follow us, for further announcements via Twitter at https://twitter.com/euclid_project or join our discussion group on LinkedIn at http://www.linkedin.com/groups/Education-Training-on-Semantic-Technologies-4917016.

2013-10-10

http://torrez.us/ics2rdf/

Application for CMS, CRM or HRM or KM ? All together sir !

All these share a lot in common, regarding data model and features.

CMS means content management system.

CRM means Customer Relashionship Management.

There are also Human Resource Management Software, and Knowledge Management.

To work nicely, all those should work together, because they share a lot of information, and some features. That's what ERP are supposed to do. But then one has a big bloated thing, that does not lend itself easily to customization and data reuse and sharing (not to speak of changing vendor!).

Or if the enterprises uses specialized software for each domain, there will be either re-entering of data, or batch import between tools, creating divergent changes. Of course SOA is supposed to make application notify each other of changes, but I doubt if a standard API exists across enterprise applications and ERP's.

That's where the Linked Data concept and the Semantic Web come into play. There were made right from the start for data reuse and sharing. Plus now we have lots of Open Source SPARQL database engines ( a.k.a. triple stores), and lots of Linked Open Data source like dbPedia.

With DataGUI / EulerGUI framework infrastructure, it all amounts to get the right ontologies and the right UI and user scenario specifications.

CMS contact management system specification

UI features:

That's already a big set of widgets!

Example of notes taken in Google Contacts ( not all for the same contact ! )

met through Eric

twitter : @descl3

met at OWF 2013

creator of Reador software

possible partner

specialist in Machine Learning

teaches in Sup Telecom

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

COMMIT on deductions

- enhance ape/owl2attempto_lexicon.n3 , the generator of ATTEMPTO lexicon from OWL/N3 .

- hand edit ape/foaf-lexicon.pl , the ATTEMPTO lexicon generated from FOAF

2013-10-09

\p{Latin}+ : does not work in Java !!!!!!!

[^\p{Punct}] : no ! matches ":"

[^:] : yes !:

FIXED:

Exception JenaTransactionException Not in a transaction (location:/home/jmv/.eulergui/TDBDatabases/Dataset1/)
, occured during loading this URI: http://dbpedia.org/resource/John_Coltrane

http://www.questioncube.com/ldb_semantics/ ???

/home/jmv/.eulergui/n3_cache/appartment_price.ace_3364580270447591627.n3

contains this bad URI :

<http://www.w3.org/2002/07/owl#appartment_simple.ace.n3p#has-price>

Drools ==> N3 translator error

{ ?t0 ns2:has-surface ?t1. ?t0 a ns2:appartment.
  ?t2 log:equalTo ?t3. (?t1 7000) math:product ?t3
} => {
  ?t0 ns2:has-price ?t2}.

gives this error with Drools translator:

# log:equalTo
#       LogBuiltins.acceptAntecedent(): nothing is bound or literal:
?t2 <http://www.w3.org/2000/10/swap/log#equalTo> ?t3

% ape.exe -ulexfile foaf-lexicon.pl -text '.'                                                                   
<?xml version="1.0" encoding="UTF-8"?>

<apeResult>
  <duration tokenizer="0,000" parser="0,001" refres="0,000"/>
  <messages>
    <message
importance="warning"
type="lexicon"
sentence=""
token=""
value="Persons"
repair="This plural noun is defined twice."/>
    <message
importance="warning"
type="lexicon"
sentence=""
token=""
value="Person"
repair="This singular noun is defined twice."/>
 ...

2013-10-08

http://marmotta.incubator.apache.org/

TODO EulerGUI

play framework semantic web

http://www.w3.org/RDF/FAQ

2013-10-07

http://fr.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model

<ontologiae> hi

<jmvanel> :)

<jmvanel> working on datagui + contact management as a technology showcase

TODO: integrate in Doc EG

The ATTEMPTO ACE is a whole ecosystem with all the necessary doc. :

syntax and semantics of the language (ACE==ATTEMPTO Controled English)

syntax of the lexicon

syntax and semantics of the target language(DRS==Discourse Representation Syntax)

tutorials, etc

and several tools:

the parser from ACE to DRS, and several other formats : OWL+SRWL, paraphrase, ruleml, fol, tptp, ...

(written in SWI Prolog),

a verbalizer from OWL to ACE ( in SWI Prolog),

a parser from DRS to internal representation and paraphrase (in OCAML)

etc , cf http://attempto.ifi.uzh.ch/site/tools/

ATTEMPTO is not the only one in the vast category of CNL (Controled Natural Languages), but it is certainly the most powerful. Here is recent review of CNL, written by one the ATTEMPTO team:

http://attempto.ifi.uzh.ch/site/pubs/papers/kuhn2013cl.pdf

This ecosystem aspect allows one to reuse the specifications with new implementations. The specifications alone result from many years of research by the authors.

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

http://stackoverflow.com/questions/17447045/java-library-for-keywords-extraction-from-input-text

http://tosdr.org/ has GitHub project : https://github.com/tosdr/tosdr.org

Not sw (JSON) but interesting : http://tosdr.org/#services

To explore : "Building Semantic Web and Linked Data Applications" http://notes.3kbo.com/ http://blog.3kbo.com/

Interesting stuff about javascript+triple+store:

https://github.com/antoniogarrote/rdfstore-js

etc

The wikimeta API could be used for EulerGUI, there is a free API limited to 100 calls.

http://www.wikimeta.com/api.html

need a SKOS for competences (not a ontology because someone with a broad competence in machine lerrning would not necessarily be competent in genetic algorithms)

2013-10-06

GregorianCalendar c = new GregorianCalendar();
c.setTime(yourDate);
XMLGregorianCalendar date2 = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);

https://issues.apache.org/jira/browse/JENA-559

COMMIT

- better catch RDF parse errors (still trouble in Jena itself that looses line numbers)

- upgrade Euler to 2023-10

Thread démon [SwingWorker-pool-4-thread-1] (suspendu (point d'arrêt au niveau de la ligne 467 dans N3Source))
détient : N3Source  (id=108)
N3Source.manageParseN3() ligne : 467
N3Source.update() ligne : 431
N3ConversionRefesher.updateN3(N3Source) ligne : 123
UpdateN3Thread.run() ligne : 40
N3ConversionRefesher.doN3SourceAdded(Project, N3Source) ligne : 79
N3ConversionRefesher.n3SourceAdded(Project, N3Source) ligne : 59
ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(ProjectListener) ligne : 71
ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(Object) ligne : 71
LinkedHashSet<A>.foreach(Function1<A,U>) ligne : 87
ProjectChangeSupport.fireAddN3Source(Project, N3Source) ligne : 71
Project.addN3Source(N3Source, boolean) ligne : 383
Project.addN3Source(N3Source) ligne : 362
AddN3Action$1AddN3SourceWorker.doInBackground() ligne : 114
AddN3Action$1AddN3SourceWorker.doInBackground() ligne : 1
SwingWorker$1.call() ligne : 296
SwingWorker$2(FutureTask<V>).run() ligne : 262
AddN3Action$1AddN3SourceWorker(SwingWorker<T,V>).run() ligne : 335
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) ligne : 1145
ThreadPoolExecutor$Worker.run() ligne : 615
Thread.run() ligne : 724

http://www.moodstocks.com/how-it-works/

http://sourcemap.com/

Robot_Operating_Systems

http://en.wikipedia.org/wiki/Robot_Operating_System

http://stackoverflow.com/questions/7804388/what-is-the-right-rtos-for-a-humanoid-robot

http://wiki.ros.org/

in french:

http://www.generationrobots.com/fr/content/55-ros-robot-operating-system

TODO EG

With openfoodfacts (big RDF) this message appears all the time:

N3Source.manageParseN3(): fr.openfoodfacts.org.products.rdf : freeMemory=447719584 < necessaryMemory=6384046400
 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.

2013-10-03

org.xml.sax.SAXParseException; systemId: file:/home/jmv/data/fr.openfoodfacts.org.products.rdf; lineNumber: 1540401; columnNumber: 8; Element or attribute do not match QName production: QName::=(NCName':')?NCName. 

PROBLEM when managing N3 Cache for N3 source file:/home/jmv/data/fr.openfoodfacts.org.products.rdf
Error when downloading RDF from the URI: file:/home/jmv/data/fr.openfoodfacts.org.products.rdf : org.apache.jena.riot.RiotException: Element or attribute do not match QName production: QName::=(NCName':')?NCName. 
Cause:
org.apache.jena.riot.RiotException: Element or attribute do not match QName production: QName::=(NCName':')?NCName. 
 , caused by Element or attribute do not match QName production: QName::=(NCName':')?NCName. 

user:

% cwm -rdf fr.openfoodfacts.org.products.rdf -n3 >
fr.openfoodfacts.org.products.n3
MemoryError

DataGUI issues

TODO add gr prefix:

@prefix gr: <http://purl.org/goodrelations/v1#> .

Starting EulerGUI with GR v 1 ontology:

[ERROR] - 2013-10-03 14:17:16,730 [LaunchOWLReasoner: gr_v1.owl.n3] deductions.runtime.swing.TemporaryFrame (TemporaryFrame.java:<init>:52) 
 TemporaryFrame.TemporaryFrame(): HermiT supports all and only the datatypes of the OWL 2 datatype map, see 
http://www.w3.org/TR/owl2-syntax/#Datatype_Maps. 
HermiT supports all and only the datatypes of the OWL 2 datatype map, see 
http://www.w3.org/TR/owl2-syntax/#Datatype_Maps. 
The datatype 'http://www.w3.org/2001/XMLSchema#time' is not part of the OWL 2 datatype map and 
no custom datatype definition is given; 
therefore, HermiT cannot handle this datatype.

14:17:16 [LaunchOWLReasoner: gr_v1.owl.n3] [error] n3: java.lang.NullPointerException
14:17:16 [LaunchOWLReasoner: gr_v1.owl.n3] [error] n3:  at eulergui.gui.tools.OwlClassHierarchyBuilder.getTreeRoot(OwlClassHierarchyBuilder.java:327)
14:17:16 [LaunchOWLReasoner: gr_v1.owl.n3] [error] n3:  at eulergui.gui.tools.OwlClassHierarchyBuilder.getTreeModel(OwlClassHierarchyBuilder.java:312)
14:17:16 [LaunchOWLReasoner: gr_v1.owl.n3] [error] n3:  at eulergui.gui.tools.OwlClassHierarchyBuilder.getRawJTree(OwlClassHierarchyBuilder.java:530)
14:17:16 [LaunchOWLReasoner: gr_v1.owl.n3] [error] n3:  at eulergui.gui.tools.LaunchOWLReasonerAction$1.run(LaunchOWLReasonerAction.java:76)

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

datagui ical.rdf dc.n3 foaf.n3 ~/src/eulergui-code/eulergui/examples/foaf-homepage-rule.n3 &

update N3; PARSE ERROR in file:/home/jmv/ontologies/ical.rdf
 ( /home/jmv/ontologies/ical.rdf ) 
Erreur pendant  re-parsing N3 source "ical.rdf"
 getLocalN3(): /home/jmv/ontologies/ical.rdf
getURI(): file:/home/jmv/ontologies/ical.rdf
Cause:
file:/home/jmv/ontologies/ical.rdf
n3_project.exceptions.parser.ParsingException: Last character read : "<" on line 4
Expecting one of these :
-> !
-> ,
-> .
-> ;
-> ^
-> caret (LEXICAL_STRING)
-> exclam (LEXICAL_STRING)
-> terminal#79 ';' (LEXICAL_STRING)
-> terminal#80 ';' (LEXICAL_STRING)
-> terminal#81 ',' (LEXICAL_STRING)
-> terminal#84 '.' (LEXICAL_STRING)

Thread Name: main
0java.lang.Thread.getStackTrace(Thread.java:1568)
1eulergui.util.StackHelper.printStackTrace(StackHelper.java:20)
2eulergui.util.StackHelper.printStackTrace(StackHelper.java:12)
3eulergui.project.N3Source.manageParseN3(N3Source.java:493)
4eulergui.project.N3Source.update(N3Source.java:431)
5eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:123)
6eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
7eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:79)
8eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:59)
9deductions.runtime.RuleBasedApplicationStarter.processRulesAndFacts(RuleBasedApplicationStarter.java:143)
10deductions.runtime.RuleBasedApplicationStarter.addKnowledge(RuleBasedApplicationStarter.java:107)
11deductions.runtime.RuleBasedApplicationWithCache.addKnowledge(RuleBasedApplicationWithCache.scala:44)

java.net.MalformedURLException: no protocol: ical.rdf
at java.net.URL.<init>(URL.java:585)
at java.net.URL.<init>(URL.java:482)
at java.net.URL.<init>(URL.java:431)
at deductions.runtime.RuleBasedApplicationStarter.isKnowledgeAdded(RuleBasedApplicationStarter.java:122)
at deductions.runtime.RuleBasedApplicationWithCache.addKnowledge(RuleBasedApplicationWithCache.scala:29)
at deductions.runtime.RuleBasedApplicationHelper$$anonfun$addKnowledge$1.apply(RuleBasedApplicationHelper.scala:46)
at deductions.runtime.RuleBasedApplicationHelper$$anonfun$addKnowledge$1.apply(RuleBasedApplicationHelper.scala:38)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:105)
at deductions.runtime.RuleBasedApplicationHelper$.addKnowledge(RuleBasedApplicationHelper.scala:38)
at deductions.runtime.swing.data_manager.DataGUI$delayedInit$body.apply(DataGUI.scala:14)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.collection.immutable.List.foreach(List.scala:318)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
at scala.App$class.main(App.scala:71)

Scenario:

loadAction: file:/home/jmv/ontologies/dc.n3
N3Form.N3Form(ITripleStoreRETE): file:/home/jmv/ontologies/dc.n3
N3Form.N3Form(): the ontology (vocabulary) was not found in the KB for file:/home/jmv/ontologies/dc.n3
N3Form.N3Form(RuleBasedApplicationStarter): file:/home/jmv/ontologies/dc.n3
TripleStoreTDB.query(): com.hp.hpl.jena.sparql.core.DatasetImpl@45108d59
subscribeTripleAdded:
@prefix javam:  <http://java.sun.com/method#>.
@prefix eg: <http://eulergui.sourceforge.net/engine.owl#> .
@prefix log:  <http://www.w3.org/2000/10/swap/log#>.
@prefix java:  <http://java.sun.com/class#>.
{
<file:/home/jmv/ontologies/dc.n3> ?P ?O .
?P log:uri ?PU.
<N3Form641148192> a java:deductions-runtime-swing-N3Form.
}=>{
<N3Form641148192> javam:addTriple ( "file:/home/jmv/ontologies/dc.n3" ?PU ?O ) .
 _:d eg:trace ( ?P ?O ) . }.

N3Source.N3Source(): file:/tmp/eg-4749620731976606055.n3
RuleBasedApplicationStarter.addKnowledge(): NOT yet in KB: file:/home/jmv/ontologies/dc.n3#N3Form641148192
N3JavaMappingBuiltin.processTripleElementForConsequent(): INFO: "file:/home/jmv/ontologies/dc.n3" is not a variable and not a Resource

Scenario:

  1. Entering dbpedia:FrancoisPaulServant in bottom triple UI
  2. Entering dbpedia:FrancoisPaulServant in top left URI field

    ==> label column on left is not present, although property information is present in tooltip

-----------

Scenario:

Entering :FrancoisPaulServant in bottom triple UI.

There 2 issues in one here:

  1. not having Internet access is not reported or bypassed
  2. default namespace is not supported here
Caused by: java.net.UnknownHostException: prefix.cc
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at java.net.Socket.connect(Socket.java:528)
at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
at sun.net.www.http.HttpClient.New(HttpClient.java:308)
at sun.net.www.http.HttpClient.New(HttpClient.java:326)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:996)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:932)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:850)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1300)
at eulergui.util.URLHelper$.downloadFromURL2(URLHelper.scala:230)
at eulergui.util.URLHelper$.downloadFromURL(URLHelper.scala:224)
at eulergui.util.URLHelper$.downloadFromURL(URLHelper.scala:198)
at eulergui.util.URLHelper.downloadFromURL(URLHelper.scala)
at eulergui.PrefixManager.getURIFromPrefix_cc(PrefixManager.java:42)
at eulergui.PrefixManager.getFullURIFromPrefix_cc(PrefixManager.java:32)
at eulergui.gui.actions.URLPrefixCompletion.completeURIPrefixes(URLPrefixCompletion.java:72)
at eulergui.gui.actions.URLPrefixCompletion.completeURIPrefixes(URLPrefixCompletion.java:29)
at deductions.runtime.swing.TripleComboBoxes.completeURIPrefixes(TripleComboBoxes.java:205)
at deductions.runtime.swing.TripleComboBoxes.access$100(TripleComboBoxes.java:47)
at deductions.runtime.swing.TripleComboBoxes$3.actionPerformed(TripleComboBoxes.java:126)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)

Contact management with SW

Questions to ATTEMPTO list

Literal data types in ACE

Dates do not seem to be representable in ACE.

AFAIK the implemented data types in APE are :

int , real, string

and I forgot where on ATTEMPTO site the implemented data types in APE are described.

The best we can do in to use a string data type; but trying further like this fails:

JM_Vanel meets FrancoisPaulServant at Makolab_Semantic_Day on "2013-10-03" which is a date.

does not work :( !

Of course it's possible to "embed" data type in RDF/Turtle style within the string like this:

"2013-10-03^xsd:date"

but this is not supported : no reasonning is possible, the translation in OWL/SWRL is not aware of the data type.

Admitedly, specifying just a a fact is not complex, and ACE is made for complex logic.

But complex logic can have dates in it, for instance comparison of dates.

Representing namespaces in ATTEMPTO

Modeling by example with ACE

Modeling by example with ACE

JM_Vanel meets Francoispaulservant at Makolab_Semantic_Day on 2013-10-03 .

% ape.exe -text 'JM_Vanel meets Francoispaulservant at Makolab_Semantic_Day on 2013-10-03 .' -solo drspp
[A]
predicate(A,meet,named(JM_Vanel),named(Francoispaulservant))-1/2
modifier_pp(A,on,expr(-,expr(-,int(2013),int(10)),int(3)))-1/6
modifier_pp(A,at,named(Makolab_Semantic_Day))-1/4

NOTES:

2013-10-02

COMMIT (deductions)

SWRL ==> N3 translation : FIXING arithmetic expressions with variables; tested with

eulergui/examples/ace/appartment_price.ace

export d=~/src/deductions/n3_new
export e=~/src/eulergui-code/eulergui/examples/ace
cd ~/src/eulergui-code/eulergui/examples/ace/
eye --nope $e/appartment_simple.ace.n3 \
    $d/owl-subclass-assertions-to-rules.n3 $d/variableSubstitution.n3 $d/swrl-n3-rules.n3 \
    --query $d/swrl-n3-rulesQ.n3 > bb.txt

2013-10-01

<jmvanel> thanks ctsai-lunch ; that was not the permissions , but my bad .htaccess .. sorry ; next time I'll always look at /home/project-web/error_logs/

cd /home/project-web/error_logs/ 
zgrep eulergui *.gz

EulerGUI snapshot

[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 minutes 12 seconds
[INFO] Finished at: Tue Oct 01 17:49:10 CEST 2013
[INFO] Final Memory: 64M/4

TODO EulerGUI

2013-09-27

A look at VCARD ontology

The form generators should handle owl:Restriction, like this:

cal:Valarm  a            owl:Class ;
        rdfs:comment     "Provide a grouping of component properties that define an alarm." ;
        rdfs:label       "VALARM" ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:minCardinality  0 ;
                           owl:onProperty      cal:summary
                         ] ;

Enhancing ACE ==> SWRL ==> N3 translation

From

If an n:appartment A v:has-surface S and P = ( S * 7000 ) then A v:has-price P .

A1 is an n:appartment . A1 v:has-surface 100 .

svn+ssh://jmvanel@svn.code.sf.net/p/eulergui/code/trunk/eulergui/examples/ace/appartment_price.ace

here is what gets out of OWL API:

:Ind479176179172865372 rdf:type owl:NamedIndividual ,
                                owl:Thing ;         
                       :has-surface 100 ;                    
                       owl:sameAs :Ind833069043231146179 .
###  file:/home/jmv/src/eulergui-code/eulergui/examples/ace/appartment_price.ace.n3p#Ind833069043231146179

:Ind833069043231146179 rdf:type :appartment ,
                                owl:NamedIndividual .

The Euler rule owl-sameAs-ext takes care of that. It would be good to either :

  1. automatically add rule owl-sameAs-ext to project when there are owl:sameAs predicates;
  2. eliminate objects of predicates owl:sameAs in rules and facts

This could happen as part of a post-loading step in EulerGUI projects (that does not exit yet).

COMMIT (deductions)

- SWRL ==> N3 translation : variables in SWRL built-in were not generated as N3 automatic variables

TESTED with:

eulergui/examples/ace/appartment_price.ace

If an n:appartment A v:has-surface S and P = ( S * 7000 ) then A v:has-price P .

In Protégé last release, this rule is shown as :

appartment(?x1), has-surface(?x1, ?x2), equal(?x4, ?xg1), multiply(?xg1, ?x2, 7000) -> has-price(?x1, ?x4)

COMMIT (deductions)

- SWRL ==> N3 translation (WIP) : variables in SWRL built-in were not generated as N3 automatic variables

- simplify SWRL built-in translation

2013-09-26

Got an appointement with a company in Munich.

Answered to Kaarel on ATTEMPTO list.

Downloaded new ontology dbpedia_3.9.owl

http://downloads.dbpedia.org/3.9/dbpedia_3.9.owl.bz2

Erroneous

{ ?t0 app:has-surface ?t1.
  ?t0 a app:appartment.
  u:x4 log:equalTo u:xg1.
  (u:x2 7000) math:product u:xg1
} => {
  ?t0 app:has-price u:x4}.

2013-09-25

java.net.MalformedURLException: unknown protocol: dbpedia
at java.net.URL.<init>(URL.java:592)
at java.net.URL.<init>(URL.java:482)
at java.net.URL.<init>(URL.java:431)
at deductions.runtime.RuleBasedApplicationStarter.isKnowledgeAdded(RuleBasedApplicationStarter.java:122)
at deductions.runtime.RuleBasedApplicationWithCache.addKnowledge(RuleBasedApplicationWithCache.scala:29)
at deductions.runtime.swing.explorer.SWExplorerWindow$$anon$1.doInBackground(SWExplorerWindow.scala:144)
at deductions.runtime.swing.explorer.SWExplorerWindow$$anon$1.doInBackground(SWExplorerWindow.scala:137)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)

Hi to whom it may concern : http://www.dbpedia.org is down :( It says :

Error 08001

HT016: Cannot connect to wiki.dbpedia.org:80 in http_get

COMMIT

- RuleBasedApplicationWithCache: avoid enumerate all graphs, query for graph named uri

com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction

http://www.kr.org/KR2014/

{?t0 ns2:has-surface ?t1. ?t0 a ns2:appartment. <urn:swrl#x4> log:equalTo <urn:swrl#xg1>. (<urn:swrl#x2> 7000) math:product <urn:swrl#xg1>} => {?t0 ns2:has-price <urn:swrl#x4>}.

2013-09-23

http://www.openworldforum.org/

Telemeta : open web audio CMS in Python : http://telemeta.org/

search scala+machine+learning

http://www.google.fr/search?q=scala+machine+learning

http://www.scalanlp.org/

http://www.quora.com/What-are-the-best-Scala-libraries-for-machine-learning#

https://github.com/factorie/factorie

https://code.google.com/p/scalalab/

EulerGUI TODO

Results : Tests run: 224, Failures: 0, Errors: 0, Skipped: 0

TODO :

2013-09-22

How the N3 table should be filled in a dynamic application ( e.g. the musical player) :

kb.addKnowledge( new N3Source( new File( "examples/table_app.n3" )));
// "seed" the KB with implementation objects
// N3TableModel n3TableModel = new N3TableModel();
// n3TableModel.setTripleStore ( tripleStoreRETE );
tripleStoreRETE.assign(
// NOTE: this URI appears also in the in the N3+Java rule in table_app.n3
Triple.wrapAsURI( "eg", "N3TableModel" ),
n3TableModel);

2013-09-21

<http://dbpedia.org/property/regnum>
        a           rdf:Property ;
        rdfs:label  "regnum"@en ;
        owl:sameAs  <http://dbpedia.org/property/regnum> .

2013-09-19

To download my stuff from Google:

https://www.google.com/takeout/#downloads

TODO EG

After downloadPredicatesURI: [<http://dbpedia.org/ontology/abstract>
 <http://dbpedia.org/ontology/binomialAuthority>
 <http://dbpedia.org/ontology/class>
 <http://dbpedia.org/ontology/division>
 <http://dbpedia.org/ontology/family>
 <http://dbpedia.org/ontology/genus>
 <http://dbpedia.org/ontology/kingdom>
 <http://dbpedia.org/ontology/order>
 <http://dbpedia.org/ontology/thumbnail>
 <http://dbpedia.org/property/binomial>
 <http://dbpedia.org/property/binomialAuthority>
 <http://dbpedia.org/property/familia>
 <http://dbpedia.org/property/genus>
 <http://dbpedia.org/property/hasPhotoCollection>
 <http://dbpedia.org/property/imageCaption>
 <http://dbpedia.org/property/ordo>
 <http://dbpedia.org/property/regnum>
 <http://dbpedia.org/property/species>
 <http://dbpedia.org/property/tribus>
 <http://dbpedia.org/property/unrankedClassis>
 <http://dbpedia.org/property/unrankedDivisio>
 <http://dbpedia.org/property/unrankedOrdo>
 <http://dbpedia.org/property/wikiPageUsesTemplate>
 <http://eulergui.sourceforge.net/examples
 <http://example.com
 <http://purl.org/dc/elements/1.1/author>
 <http://purl.org/dc/elements/1.1/date>
 <http://purl.org/dc/terms/subject>
 <http://www.w3.org/1999/02/22-rdf-syntax-ns
 <http://www.w3.org/2000/01/rdf-schema
 <http://www.w3.org/2002/07/owl
 <http://www.w3.org/ns/prov
 <http://xmlns.com/foaf/0.1/depiction>
 <http://xmlns.com/foaf/0.1/isPrimaryTopicOf>
 <http://xmlns.com/foaf/0.1/primaryTopic>]

http://spectrum.ieee.org/magazine

Search : ilp inductive filetype:ppt

2013-09-17

http://jena.apache.org/download/maven.html

http://wifo5-03.informatik.uni-mannheim.de/bizer/pub/LinkedDataTutorial/

http://www.w3.org/TR/swbp-vocab-pub/

SimplifiedN3QueryGUI :

- standard prefixes like dbpedia are now in context

- columns are now labeled "S", "P", "O"

TODO : prefix mappings are not saved in TDB cache, need to find some way to keep them ( maybe prefixes are somehow stored in TDB ? )

?S dbpedia:genre ?G .

COMMIT

SimplifiedN3QueryGUI.scala now displays triples in a 3 columns table

TODO : standard prefixes like dbpedia are not in context

26 $Triple_1 : Triple( $N3Form1834928328S : subject, predicate == "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>", $N3Form1834928328C : object )

Running scalagen

The recipe for scalagen is :

mvn com.mysema.scalagen:scalagen-maven-plugin_2.9.3:0.3.1:main -DtargetFolder=target/scala

musicbrai{?t0 ns2:has-surface ?t1. ?t0 a ns2:appartment. <urn:swrl#x4> log:equalTo <urn:swrl#xg1>. (<urn:swrl#x2> 7000) math:product <urn:swrl#xg1>} => {?t0 ns2:has-price <urn:swrl#x4>}. nz SPARQL endpoint

http://musicbrainz.org/

http://en.wikipedia.org/wiki/MusicBrainz

http://wiki.musicbrainz.org/LinkedBrainz#SPARQL_Endpoint

SPARQL endpoint : http://dbtune.org/musicbrainz/sparql

gives nothing :

SELECT ?p ?o WHERE { <http://dbtune.org/musicbrainz/resource/20ff3303-4fe2-4a47-a1b6-291e26aa3438.rdfa> p ?o }

The SPARQL endpoint works a bit from the Web page; but not with EulerGUI :( why ?)

2013-09-16

Failed tests:   warning(junit.framework.TestSuite$1): No tests found in eulergui.project.TestDroolsNPE
  testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Frame Title Component Chooser ".*new_source.rq.*"

Tests run: 219, Failures: 2, Errors: 1, Skipped: 0

COMMIT

FIX test TestEulerGUIInputs

NOTE: currently (2013-09-16) Drools/N3 gives empty results here,

* because EulerGUI parser fails on dot in abbreviated resource, like:

* @prefix ns1: <http://maven.apache.org/POM/4.0.0#>.

* <s> ns1:properties ns1:project.build.sourceEncoding */

EYE : a dot in abbreviated resource

@prefix ns1: <http://maven.apache.org/POM/4.0.0#>.
<s> ns1:properties  ns1:project.build.sourceEncoding .

and this is what eye outputs :

% eye --pass --nope test/dot-in-n3.n3
Id: euler.yap 6548 2013-09-14 17:01:38Z josd
YAP 6.2.3 (i686-linux): Sat Jun 16 23:34:26 CEST 2012
starting 64 [msec cputime] 65 [msec walltime]
GET file:///home/jmv/src/eulergui-code/eulergui/test/dot-in-n3.n3 SC=1
networking 4 [msec cputime] 2 [msec walltime]
TC=1 TP=2 BC=0 BP=2 PM=0 CM=0 FM=0 AM=0
reasoning 0 [msec cputime] 0 [msec walltime]

#Processed by Id: euler.yap 6548 2013-09-14 17:01:38Z josd
#eye --pass --nope test/dot-in-n3.n3

@prefix ns1: <http://maven.apache.org/POM/4.0.0#>.
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.

<file:///home/jmv/src/eulergui-code/eulergui/test/s> ns1:properties <http://maven.apache.org/POM/4.0.0#project.build.sourceEncoding>.

#ENDS 0.068 [sec] TC=1 TP=2 BC=0 BP=2 PM=0 CM=0 FM=0 AM=0

2013-09-15

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testInsertPlainLiteral(deductions.runtime.RuleBasedApplicationWithCacheTest): unif.TripleStoreDrools cannot be cast to unif.TripleStoreTDB
  testInsertPlainLiteral(deductions.runtime.RuleBasedApplicationStarterTest): unif.TripleStoreDrools cannot be cast to unif.TripleStoreTDB

Tests run: 223, Failures: 1, Errors: 4, Skipped: 0

dbpedia:The_Beatles dbprop:associatedBand dbpedia:Staline

<http://dbpedia.org/resource/The_Beatles> <http://dbpedia.org/property/blabla> <http://dbpedia.org/resource/Staline> .

Index: src/main/java/unif/TripleStoreJena.java

129a130,133

> if( object.contains( "PolarMusicPrizeLaureates" ) ) {

> // TODO debug <<<<<<<<<<<<<<<

> System.out.println( ">>>> store " + t );

> }

//if( "/home/jmv/src/eulergui-code/eulergui/a" .equals(file.toString() ))// TODO debug <<<<<<<<<<<<<<<

//System.err.println();

Java(TM) SE Runtime Environment : updated from build 1.7.0_25-b15 to ( from Oracle )

% tdbdump| grep Polar | grep Dylan | grep type

<http://dbpedia.org/resource/Bob_Dylan> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://dbpedia.org/class/yago/PolarMusicPrizeLaureates> <http://dbpedia.org/resource/Bob_Dylan> .

http://www.taxochronos.com/ontologies/2012/08/columnsTableOntology.owl

<html>http://www.taxochronos.com/ontologies/2012/10/mp3TagsSimplifiedOntology.owl is HTML

and HTML is not interpretable as RDF.<br/>will try RDFa.

<html>http://deductions.sf.net/ontology/software_applications.owl.n3 is HTML

and HTML is not interpretable as RDF.<br/>will try RDFa.

 if( predicateURINoSharp.endsWith( "/a" ) )
           println( "predicateURI " + predicateURI)

<html>http://www.taxochronos.com/ontologies/2012/10/userNewColumnOntology.owl is HTML

and HTML is not interpretable as RDF.<br/>will try RDFa.

COMMIT

- SWExplorerWindow.scala : download in background triples about predicates from their URI

- SourceFactory.scala : in TemporaryFrame also print url

TODO : one TemporaryFrame for each property URI are too intrusive

2013-09-14

COMMIT

COMMIT

- in SWExplorerWindow (& DataGUI), when URI to load gives an error, try to recover triples from TDB

TODO EulerGUI

2013-09-13

<file:/home/jmv/Musique/Jimi%20Hendrix%20-%20Are%20You%20Experienced/04%20-%20Can%20You%20See%20Me.flac>

http://www.openworldforum.org/fr/schedule/1/

TODO EulerGUI ( SWExplorer )

COMMIT

- pave the way for updating the TDB store using timestamps :

* store timestamps of named datasets

* refactor: create val needToRetrieveFromCache

TODO: TripleStoreJena.updateTriple() : incorrect !!!! must retrieve the Statement and then call changeObject

To add somewhere in RuleBasedApplicationWithCache.scala :

115,122c111,119
<       val reallyLoaded = TripleStoreHelper.copyN3SourceToTripleStore(n3,
<         tdbCache.createTripleStoreFromNamedModel(uriString))
<         // record timestamp and author
<         tdbCache.store( uriString, Triple.wrapAsURI( "dc", "date"), new Date().toString(),
<             Triple.wrapAsURI( "xsd", "dateTime"))
<         tdbCache.store( uriString, Triple.wrapAsURI( "dc", "author"),
<             System.getProperty( "user.name" ))
<         // TODO delete old triples  <uriString> dc:date ?D .
---
>       if( uriString.startsWith( "file:") ) {
>         // systematically replace NamedModel; TODO do it only if given file is younger
>         val tripleStoreFromN3Source = new TripleStoreSimple
>       val reallyLoaded = TripleStoreHelper.copyN3SourceToTripleStore(n3, tripleStoreFromN3Source )
>         tdbCache.replaceNamedModel(uriString, tripleStoreFromN3Source )
>       } else {
>         // TODO replace NamedModel; do it only if given file is younger via HEAD HTTP request
>         val tripleStoreFromNamedModel = tdbCache.createTripleStoreFromNamedModel(uriString)
>       val reallyLoaded = TripleStoreHelper.copyN3SourceToTripleStore(n3, tripleStoreFromNamedModel)
126a124
>       }

Should use Jena Statement.changeObject() :

http://jena.apache.org/documentation/javadoc/jena/com/hp/hpl/jena/rdf/model/Statement.html#changeObject(com.hp.hpl.jena.rdf.model.RDFNode)

http://www.objectdefinitions.com/odblog/2007/converting-java-dates-to-xml-schema-datetime-with-timezone/

COMMIT

RuleBasedApplicationWithCache.scala : addKnowledge(uriString0: String) : for files systematically update NamedModel

( fixes persistence in musical player app )

TODO replace NamedModel; do it only if given file is younger

2013-09-12

public void replaceNamedModel(String uri, Model model) ;

git status --short -uno

2013-09-11

eulergui.gui.TestEulerGUIOutputs

eulergui.gui.TestEulerGUIOutputs

eulergui.gui.TestGenericGuiGenerationInsertLogical

eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules

eulergui.gui.TestJavaEditor

2013-09-10

FIX test N3FormTest

(after enhancements for DataGUI, N3Form had to be cleaned for Null Pointer Exceptions)

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB): Can't add a triple to the RDF merge of all named graphs
  testInsertPlainLiteral(unif.TestTripleStoreTDB): [line: 1, col: 10] Broken IRI (bad character: '<'): 
  testStoreRetrieveN3file(unif.TestTripleStoreTDB): Not in a transaction
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

Tests run: 223, Failures: 1, Errors: 5, Skipped: 0

FIX test TestParserLink

by fixing URLHelper.removeHashFragment()

Results :

Failed tests:   testRDFList(eulergui.drools_engine.TestParserLink): expected:<<[http://myUri]#v>> but was:<<[]#v>>
  testTriple(eulergui.drools_engine.TestParserLink): expected:<<[http://myUri]#v>> but was:<<[file:/tmp/eg-2330199485357006289.n3]#v>>
  testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 
  testRuleWithURIArgument3(deductions.runtime.RuleBasedApplicationWithCacheTest): call to printURI2 by rule Succeeded
  testRuleWithURIArgument3(deductions.runtime.RuleBasedApplicationStarterTest): call to printURI2 by rule Succeeded

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB): Can't add a triple to the RDF merge of all named graphs
  testInsertPlainLiteral(unif.TestTripleStoreTDB): [line: 1, col: 10] Broken IRI (bad character: '<'): 
  testStoreRetrieveN3file(unif.TestTripleStoreTDB): Not in a transaction
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testGetComponent(deductions.runtime.swing.N3FormTest)
  testRuleWithURIArgument(deductions.runtime.RuleBasedApplicationWithCacheTest): Error in addKnowledge
  testRuleWithURIArgument2(deductions.runtime.RuleBasedApplicationWithCacheTest): Error in addKnowledge
  testRuleWithURIArgument(deductions.runtime.RuleBasedApplicationStarterTest): Error in addKnowledge
  testRuleWithURIArgument2(deductions.runtime.RuleBasedApplicationStarterTest): Error in addKnowledge

Tests run: 225, Failures: 5, Errors: 10, Skipped: 0

COMMIT

FIX test TestGenericGuiGenerationInsertLogicalRefactorRules after preceding commit

test code was not compiling in Maven: FIX:

svn mv src/test/scala/eulergui/util/WikipediaCompletionTest.java src/test/java/eulergui/util/WikipediaCompletionTest.java

Failed tests:   testRDFList(eulergui.drools_engine.TestParserLink): expected:<<[http://myUri]#v>> but was:<<[]#v>>
  testTriple(eulergui.drools_engine.TestParserLink): expected:<<[http://myUri]#v>> but was:<<[file:/tmp/eg-6710802868009422315.n3]#v>>
  testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB): Can't add a triple to the RDF merge of all named graphs
  testInsertPlainLiteral(unif.TestTripleStoreTDB): [line: 1, col: 10] Broken IRI (bad character: '<'): 
  testStoreRetrieveN3file(unif.TestTripleStoreTDB): Not in a transaction
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "title" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "address" loaded
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Employee" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded
  testGetComponent(deductions.runtime.swing.N3FormTest)
  testRuleWithURIArgument(deductions.runtime.RuleBasedApplicationWithCacheTest): Error in addKnowledge
  testRuleWithURIArgument(deductions.runtime.RuleBasedApplicationStarterTest): Error in addKnowledge

Tests run: 225, Failures: 3, Errors: 18, Skipped: 0

COMMIT

- N3 / Drools engine: now a method with argument type URI is transmitted the N3 resource variable value as an URI Java object

* tested in RuleBasedApplicationStarterTest . testRuleWithURIArgument3()

* pave the way for updating N3Form by rule

- in pom.xml add explicitely sources src/main/scala</source and src/test/scala

2013-09-05

git status --short --untracked-files=no

TODO : FIX OWL reasoner

http://www.aes.org/conferences/53/

[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.ibm.icu:icu4j ..................................... 50.1.1 -> 51.2
[INFO]   com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.4
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   jline:jline ............................................. 2.10 -> 2.11
[INFO]   net.sourceforge.owlapi:owlapi-apibinding .............. 3.4.3 -> 3.4.5
[INFO]   net.sourceforge.owlapi:owlapi-parsers ................. 3.4.3 -> 3.4.5
[INFO]   org.drools:drools-compiler .................. 5.5.0.Final -> 6.0.0.CR3
[INFO]   org.scala-lang:scala-library ..................... 2.10.1 -> 2.11.0-M5
[INFO]   org.scala-lang:scala-swing ....................... 2.10.1 -> 2.11.0-M5

2013-09-04

https://www.coursera.org/course/reactive

jeudi 15h30 docteur Gentilhomme

http://en.wikipedia.org/wiki/Reactive_programming

2013-09-01

eulergui examples/BloodPressure.n3p.n3

: nothing in GUI !

eulergui examples/BloodPressure.n3p
 ...
PROBLEM when preparing N3 source "catch_allQ.n3"
Unable to create an absolute n3 URI from this URI: "catch_allQ.n3", with URI base file:/home/jmv/src/eulergui-code/eulergui/
Cause:
java.net.URISyntaxException: Illegal character in path at index 0: "catch_allQ.n3"
 , caused by Illegal character in path at index 0: "catch_allQ.n3"

After reverting N3JavaHelper.getJavaTypedValue():

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 
  testSelectSPARQL(eulergui.gui.TestSPARQLInGUI): rowCount > 0

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB): Can't add a triple to the RDF merge of all named graphs
  testInsertPlainLiteral(unif.TestTripleStoreTDB): [line: 1, col: 10] Broken IRI (bad character: '<'): 
  testStoreRetrieveN3file(unif.TestTripleStoreTDB): Not in a transaction
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testGetComponent(deductions.runtime.swing.N3FormTest)

Tests run: 212, Failures: 2, Errors: 6, Skipped: 0

COMMIT

- N3Form.subscribeTripleAdded() : rule now transmits raw triple object

- FIX RuleBasedApplicationWithCache.addKnowledge(n3: N3Source)

2013-09-01

<htpp://blibli> <file:///home/jmv/src/eulergui-code/eulergui/bb.n3#prop> "bla"@fr.
<file:///home/jmv/src/eulergui-code/eulergui/N3Form604046899> <file:///home/jmv/src/eulergui-code/eulergui/bb.n3#addTriple> ("htpp://blibli" "file:///home/jmv/src/eulergui-code/eulergui/bb.n3#prop" "bla"@fr).
_:sk0 eg:trace (<file:///home/jmv/src/eulergui-code/eulergui/bb.n3#prop> "bla"@fr).

#ENDS 0.068 [sec] TC=4 TP=10 BC=0 BP=5 PM=0 CM=0 FM=0 AM=0

# queryTripleResults
<N3Form604046899> <file:/home/jmv/src/eulergui-code/eulergui/bb.n3#addTriple> ( "htpp://blibli" "bb.n3#prop" "bla"@fr ) . #R
<N3Form604046899> <bb.n3#addTriple> ( "htpp://blibli" "file:/home/jmv/src/eulergui-code/eulergui/bb.n3#prop" "bla"@fr ) . #R
<N3Form604046899> <file:/home/jmv/src/eulergui-code/eulergui/bb.n3#addTriple> ( "htpp://blibli" "file:/home/jmv/src/eulergui-code/eulergui/bb.n3#prop" "bla"@fr ) . #R
<htpp://blibli> <file:/home/jmv/src/eulergui-code/eulergui/bb.n3#prop> "bla"@fr . #R
<N3Form604046899> <bb.n3#addTriple> ( "htpp://blibli" "bb.n3#prop" "bla"@fr ) . #R
<htpp://blibli> <bb.n3#prop> "bla"@fr . #R

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 
  testSelectSPARQL(eulergui.gui.TestSPARQLInGUI): rowCount > 0
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains birthDate

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB): Can't add a triple to the RDF merge of all named graphs
  testInsertPlainLiteral(unif.TestTripleStoreTDB): [line: 1, col: 10] Broken IRI (bad character: '<'): 
  testStoreRetrieveN3file(unif.TestTripleStoreTDB): Not in a transaction
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testGetComponent(deductions.runtime.swing.N3FormTest)

Tests run: 212, Failures: 3, Errors: 6, Skipped: 0

@prefix javam:  <http://java.sun.com/method#>.
@prefix eg: <http://eulergui.sourceforge.net/engine.owl#> .
@prefix log:  <http://www.w3.org/2000/10/swap/log#>.
{
        <htpp://blibli> ?P ?O .
        ?P log:uri ?PU.
} => {
        <N3Form604046899> javam:addTriple (     "htpp://blibli" ?PU ?O ) .
 _:d eg:trace ( ?P ?O ) .
}.

FIX

- N3Form.subscribeTripleAdded() : rule now transmits raw triple object

2013-08-31

http://dbpedia.org/resource/Sacha_Distel : no triple telling he's a jazzman :( ; just the word jazz in some triples .

Typing "Mel Tormé" in wikipedia combo box results in this non valid URI:

http://dbpedia.org/resource/Mel_Torm\u00e9

However this URI works in a web browser:

http://dbpedia.org/resource/Mel_Tormé

COMMIT

- FIX : wikipedia combo box when non ASCII is entered : needed to convert JavaScript encoding to java String, then to URL encoding

TESTED by typing "Mel Tormé" , giving :

http://dbpedia.org/resource/Mel_Torm%C3%A9

- WIP : DataGUI : triple entered for new subject non-derefentiable URI should be added at once in the N3 form

2013-08-30

2013-08-29

COMMIT [r3688]

- FIX : N3Form: top panel for entering a triple from form's subject

COMMIT

FIX Jena TDB transaction issue (JenaTransactionException Currently in a transaction) , occuring when retrieving an URI in TDB cache

2013-08-28

java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:996)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.Semaphore.acquire(Semaphore.java:317)
at com.hp.hpl.jena.tdb.transaction.TransactionManager.begin(TransactionManager.java:306)
at com.hp.hpl.jena.tdb.transaction.TransactionManager.begin(TransactionManager.java:287)
at com.hp.hpl.jena.tdb.StoreConnection.begin(StoreConnection.java:104)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction._begin(DatasetGraphTransaction.java:153)
at com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.begin(DatasetGraphTrackActive.java:45)
at com.hp.hpl.jena.sparql.core.DatasetImpl.begin(DatasetImpl.java:125)
at unif.TripleStoreTDB.startTransaction(TripleStoreTDB.java:116)
at deductions.runtime.RuleBasedApplicationWithCache.storeN3SourceInCache(RuleBasedApplicationWithCache.scala:92)
at deductions.runtime.RuleBasedApplicationWithCache.addKnowledge(RuleBasedApplicationWithCache.scala:63)
at deductions.runtime.swing.N3Form.subscribeTripleAdded(N3Form.java:135)
at deductions.runtime.swing.N3Form.initialize(N3Form.java:107)
at deductions.runtime.swing.explorer.SWExplorerWindow$$anon$1.doInBackground(SWExplorerWindow.scala:136)

2013-08-27

COMMIT

DataGUI (TripleComboBoxes): bottom panel for entering a triple from scratch : FIX layout : BoxLayout

TODO :

- in N3Form, addTriple() (subcription through a KB rule) and displayPropertyValues() are 2 different mechanisms for displaying triples

- FIX : N3Form: top panel for entering a triple from form's subject

Exception in thread "AWT-EventQueue-0" com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Not in a transaction
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:104)
at com.hp.hpl.jena.tdb.transaction.DatasetGraphTransaction.get(DatasetGraphTransaction.java:40)
at com.hp.hpl.jena.sparql.core.DatasetGraphTrackActive.getGraph(DatasetGraphTrackActive.java:103)
at com.hp.hpl.jena.sparql.core.DatasetImpl.getNamedModel(DatasetImpl.java:171)
at unif.TripleStoreTDB.query(TripleStoreTDB.java:106)
at eulergui.rdf.TripleStoreHelper.extractPredicatesURI(TripleStoreHelper.java:61)
at deductions.runtime.swing.TripleComboBoxes.makePredicatesComboBox(TripleComboBoxes.java:290)
at deductions.runtime.swing.TripleComboBoxes.getEnterURIUI(TripleComboBoxes.java:85)
at deductions.runtime.swing.TripleComboBoxes$3.actionPerformed(TripleComboBoxes.java:120)

2013-08-25

dbpedia:Taraxacum_japonicum

COMMIT:

- DBPediaComboBox.scala : now KeyListener computes completion for every key typed

- new method URLHelper.downloadFromURL2() retiurn BOTH String content AND URLConnection

actually useless, since JDK implementation tries to reuse connections anyway, see

http://docs.oracle.com/javase/6/docs/technotes/guides/net/http-keepalive.html

TODO:

* kill unfinished completion when new key is typed

* load dbPedia URI for current combobox content when user types return

http://ubuntu.mylifeunix.org/2012/05/29/how-to-connect-android-smartphone-ice-cream-sandwich-to-ubuntu-to-browse-files-and-for-file-access/

% mtp-detect | grep idProduct
Device 0 (VID=04e8 and PID=6860) is a Samsung Galaxy models (MTP).

SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666"

sudo mkdir /media/Galaxy ; sudo chmod a+rwx /media/Galaxy

mtpfs -o allow_other /media/Galaxy

http://www.junauza.com/2012/07/how-to-tether-android-smartphone-to.html

2013-08-12

COMMIT

2013-08-03

COMMIT (not done)

- add an action to Launch DataGUI in EulerGUI's tools menu

- DataGUI : (WIP) possible to paste a new value in combobox for property or object value

- update doc. for DataGUI

java.lang.IllegalArgumentException: Comparison method violates its general contract!
at java.util.TimSort.mergeHi(TimSort.java:868)
at java.util.TimSort.mergeAt(TimSort.java:485)
at java.util.TimSort.mergeForceCollapse(TimSort.java:426)
at java.util.TimSort.sort(TimSort.java:223)
at java.util.TimSort.sort(TimSort.java:173)
at java.util.Arrays.sort(Arrays.java:659)
at sun.awt.datatransfer.DataTransferer.setToSortedDataFlavorArray(DataTransferer.java:2407)
at sun.awt.datatransfer.DataTransferer.getFlavorsForFormatsAsArray(DataTransferer.java:941)
at sun.awt.dnd.SunDropTargetContextPeer.getTransferDataFlavors(SunDropTargetContextPeer.java:194)
at java.awt.dnd.DropTargetContext.getCurrentDataFlavors(DropTargetContext.java:223)
at java.awt.dnd.DropTargetDragEvent.getCurrentDataFlavors(DropTargetDragEvent.java:139)
at javax.swing.TransferHandler$TransferSupport.getDataFlavors(TransferHandler.java:532)
at javax.swing.TransferHandler.canImport(TransferHandler.java:925)
at javax.swing.TransferHandler$DropHandler.handleDrag(TransferHandler.java:1459)
at javax.swing.TransferHandler$DropHandler.dragEnter(TransferHandler.java:1478)
at java.awt.dnd.DropTarget.dragEnter(DropTarget.java:357)
at javax.swing.TransferHandler$SwingDropTarget.dragEnter(TransferHandler.java:1238)

2013-08-02

COMMIT (not done)

http://jmvanel.free.fr/tmp/test.n3

http://jmvanel.free.fr/tmp/test.n3#me

Thread [SwingWorker-pool-2-thread-1]
N3ModelCreator.createUri(UriValueData, Boolean) line: 245
N3ModelCreator.createPredicate(VerbData, Boolean) line: 351
N3ModelCreator.createStatementData(StatementEltData, Boolean, LinesAndCols) line: 110
N3ModelCreator.createFormula(StatementData, Boolean) line: 177
N3ModelCreator.createSubject(SubjectOrObjectData, Boolean) line: 326
N3ModelCreator.createStatementData(StatementEltData, Boolean, LinesAndCols) line: 108
N3ModelCreator.computeN3Model(StatementData, URI) line: 94
N3Parser.parseN3(String, InputStream) line: 213
ParserLink.doParse(File, String) line: 162
ParserLink.parse(N3Source) line: 123
N3Source.doParseN3() line: 546
N3Source.manageParseN3() line: 476
N3Source.update() line: 431
N3ConversionRefesher.updateN3(N3Source) line: 123
UpdateN3Thread.run() line: 40
N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 79
N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 59
RuleBasedApplicationStarter.processRulesAndFacts(N3Source) line: 142
RuleBasedApplicationStarter.addKnowledge(N3Source) line: 106
RuleBasedApplicationWithCache.addKnowledge(N3Source) line: 62
N3Form.subscribeTripleAdded(String) line: 133
N3Form.initialize() line: 107
SWExplorerWindow$$anon$1.doInBackground() line: 128
SWExplorerWindow$$anon$1.doInBackground() line: 110
SwingWorker$1.call() line: 296
FutureTask$Sync.innerRun() line: 334
FutureTask.run() line: 166
SwingWorker.run() line: 335
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145
ThreadPoolExecutor$Worker.run() line: 615
Thread.run() line: 722

COMMIT

in RuleBasedApplicationWithCache.storeN3SourceInCache() : do NOT save in TDB Cache when N3 source is empty ( e.g. case when dbPedia is down )

TODO DataGUI

RuleBasedApplicationStarter.addKnowledge(): NOT yet in KB: http://jmvanel.free.fr/jmv.rdf#me
N3Source.manageN3Cache() 1: n3Source.location(): file:/tmp/eg-2158248592092078799.n3
java.net.URISyntaxException: Illegal character in fragment at index 33: http://jmvanel.free.fr/jmv.rdf#me#P
at java.net.URI$Parser.fail(URI.java:2829)
at java.net.URI$Parser.checkChars(URI.java:3002)
at java.net.URI$Parser.parse(URI.java:3048)
at java.net.URI.<init>(URI.java:595)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.createUri(N3ModelCreator.java:245)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.createPredicate(N3ModelCreator.java:351)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.createStatementData(N3ModelCreator.java:110)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.createFormula(N3ModelCreator.java:177)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.createSubject(N3ModelCreator.java:326)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.createStatementData(N3ModelCreator.java:108)
at eulergui.parser.n3.impl.parser4j.service.N3ModelCreator.computeN3Model(N3ModelCreator.java:94)
at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:213)
at eulergui.inference.drools.impl.ParserLink.doParse(ParserLink.java:162)
at eulergui.inference.drools.impl.ParserLink.parse(ParserLink.java:123)
at eulergui.project.N3Source.doParseN3(N3Source.java:546)
at eulergui.project.N3Source.manageParseN3(N3Source.java:476)
at eulergui.project.N3Source.update(N3Source.java:431)
at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:123)
at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:79)
at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:59)
at deductions.runtime.RuleBasedApplicationStarter.processRulesAndFacts(RuleBasedApplicationStarter.java:142)
at deductions.runtime.RuleBasedApplicationStarter.addKnowledge(RuleBasedApplicationStarter.java:106)
at deductions.runtime.RuleBasedApplicationWithCache.addKnowledge(RuleBasedApplicationWithCache.scala:62)
at deductions.runtime.swing.N3Form.subscribeTripleAdded(N3Form.java:133)
at deductions.runtime.swing.N3Form.initialize(N3Form.java:107)
at deductions.runtime.swing.explorer.SWExplorerWindow$$anon$1.doInBackground(SWExplorerWindow.scala:128)

COMMIT

- DataGUI: entering a non-downloadable URI in field "Enter URI for N3 term" does not prevent creating of an (empty) N3 form

- fix use of TDB transactions in RuleBasedApplicationWithCache.scala & TripleComboBoxes.java

- pom.xml : iupgrade to Euler(EYE) 2013-08

2013-07-31

TODO

2013-07-26

open source structs

2013-07-19

We need a persistant prefix manager, as well as a persistant RDF Internet cache.

For example :

@prefix foaf: <http://xmlns.com/foaf/0.1/> .

could be turned into:

eg:hasPrefix <http://xmlns.com/foaf/0.1/> "foaf:" .

And then the persistant RDF cache will store this into a graph named eg:hasPrefix.

What do you think ?

2013-07-18

a.
<a ==> b>.

FIX nasty bug: most outputs were gone

the text to display should be computed BEFORE calling SwingUtilities.invokeLater()

TODO

http://www.meetup.com/Paris-Machine-learning-applications-group/

http://www.eyrolles.com/Sciences/Livre/apprentissage-artificiel-9782212124712

export CVSROOT=:pserver:anonymous@dev.w3.org:/sources/publicvs checkout java/classes/org/w3c/IsaViz

Try EulerGUI person-app example from ACE sentences

The character $ works with ACE, but the N3 prefixes are not replaced:

per$Person is a owl$Class .

But in fact the ACE sentence for this in the form of an example :

JMV is a n:Person.

This does not work:

A person is somebody.

2013-07-17

expecty

http://www.indiegogo.com/projects/help-make-me-the-world-s-smartest-robot

<jmvanel> Hi would it be feasible to add triggers to TDB ?

<jmvanel> like watching triples <someURI> ?p ?O . for additions and removals .

<ephemerian> jmvanel: Jena models already have an event API, you just need to register a listener

<ephemerian> http://jena.apache.org/documentation/notes/event-handler-howto.html

<jmvanel> nice , thanks ! I see that is somewhat experimental though ...

<ephemerian> That comment is old. The API has been there for years!

<jmvanel> :))

<jmvanel> Could the trigger be used for updating the TDB with infered triples , or is there better ways ?

<ephemerian> the answer is "it depends"

<ephemerian> you haven't really said what you're trying to do

<ephemerian> If it requires a lot of explanation, you might be better off sending an email to users@jena.apache.org

<jmvanel> yes, I'll do that when I have specific needs ; for now let's say that I want the subclassOf and subprop declarations used to create triples

A TDB-backed dataset can be used non-transactionally but once used in a transaction, it should be used transactionally after that.

2013-07-16

Get all named graphs in TDB :

java -cp target/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar tdb.tdbquery \
--loc=$HOME/.eulergui/TDBDatabases/Dataset1 \
--set tdb:unionDefaultGraph=true \
--file $HOME/src/eulergui-code/eulergui/examples/graphs2.rq

FIXED:

"65537"^^<<http://www.w3.org/2001/XMLSchema#integer>>

<cert:exponent rdf:datatype="http://www.w3.org/2001/XMLSchema#integer">65537</cert:exponent>

http://jmvanel.free.fr/jmv.rdf#me

dbpedia:The_Beatles

http://live.dbpedia.org/resource/Bob_Dylan

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB): Can't add a triple to the RDF merge of all named graphs
  testN3SourcePrepare(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-7639791175903297413.n3 ; http://dbpedia.org/sparql
  testSquall(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-2194877322692886669.n3 ; http://dbpedia.org/sparql
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "title" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class javax.swing.JButton
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "address" loaded
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Employee" loaded
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded

Pei : a number of accumulated bug fixes, plus some adjustments in the control mechanism.

https://travis-ci.org/w3c/banana-rdf

installing ScalaTest in eclipse

cat  .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:w3c/banana-rdf.git
[branch "master"]
remote = origin
merge = refs/heads/master

f onSuccess { case msg => println(msg) }

2013-07-15

2013-07-14

COMMIT

pres_osdc_2012_regles_n3_long.xhtml : adding ACE sentences corresponding to N3 rules ( WIP )

% ape.exe -guess  -text 'If X and Y are yellow then X is bright and Y is bright.' -solo owlfsspp
<?xml version="1.0" encoding="UTF-8"?>

<messages>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token="5"
      value="be"
      repair="Subject or object of this verb makes an illegal reference."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token="2"
      value="something"
      repair="A reference to this noun either does not exist or is illegal."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token="4"
      value="something"
      repair="A reference to this noun either does not exist or is illegal."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token=""
      value="and"
      repair="Noun phrase conjunctions not supported."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token=""
      value="bright"
      repair="A reference to this noun either does not exist or is illegal."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token="13"
      value="be"
      repair="Subject or object of this verb makes an illegal reference."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token=""
      value="bright"
      repair="A reference to this noun either does not exist or is illegal."/>
  <message
      importance="error"
      type="owl"
      sentence="1"
      token="9"
      value="be"
      repair="Subject or object of this verb makes an illegal reference."/>
  <message
      importance="error"
      type="owl"
      sentence=""
      token=""
      value=""
      repair="Text could not be translated."/>
</messages>

but this works:

ape.exe -guess -text 'If X is yellow and Y is yellow then X is bright and Y is bright.' -solo owlfsspp

2013-07-13

Hyperion, Dan Simmons

Bitcoin, Tor

ATTEMPTO tests

interpret adjectives as class for OWL output : OK

ape.exe -guess -cdrspp -cparaphrase -cowlfsspp -text 'Every n:concrete that contains a reinforcement-bar is a reinforced-concrete.'

Example from Wikipedia:

% ape.exe -guess  -solo paraphrase -text 'A man tries-on a new tie. If the tie pleases his wife then the man buys it.'
There is a man X1.
The man X1 tries-on a new tie X2.
If the new tie X2 pleases a wife of the man X1 then the man X1 buys the new tie X2.

APE has no notion that people are generally monogamic !

But how to say that in ACE ?

2013-07-12

<jmv_> while testing new DataGUI app, I thought I found that , according to himself, timbl is both a Person AND a PersonalProfileDocument

<jmv_> but the bug is on my side

EulerGUI features TODO

2013-07-10

<jmv> Hi failed to find a vocab' on civil engineering ...

Intergated in EulerGUI's DataGUI application:

http://www.orbital-computer.de/JComboBox/

2013-07-09

Building rule based applications

http://en.wikipedia.org/wiki/Rule_engine

Strategies for building forms

  1. given instance, using actual instance triples
  2. new resource: given class, using RDFS domain and range
  3. new resource : given list of properties

  4. new resource : given class, using properties of other instances of same class

It is possible to mix several items above, like 2 & 3, or 1 & 3, or 1 & 2 .

Communication between rule engine and application

http://en.wikipedia.org/wiki/Event_condition_action

2013-07-08

#machinelearning

<jmv> Hi Are there some test suites for ML

<zxtx_> jmv, test suites?

<jmv> zxtx, I use a probabilistic - logic engine called NARS ( http://code.google.com/p/open-nars/ ) ; it lacks tests larger than unit tests ; so I wondered if I can find test suites for ML

2013-07-07

Possible workflow for ACE/GF

Ask the RDF/NLP guys: vocab' for lexicons

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

Declarative forms

Vocab' for forms: name, class, list of properties

nice to have : an editor for RDF lists

generate a form for a new item with such a rule :

{?VAR a ns2:concrete} => {?t0 a ns2:aggregate. ?t1 a ns2:cement. ?VAR ns2:contains ?t0. ?VAR ns2:contains ?t1}.

must first instanciate :

:newConcrete a ns2:concrete.

then call fireAllRules()

TODO in DataGUI & SWExplorer

TODO in DataGUI

TODO in SWExplorer

Find duplicate code

In Java there is PMD.

diff --unchanged-group-format='@@ %dn,%df %<' --old-group-format='' --new-group-format='' \
  --changed-group-format='' \
src/main/scala/deductions/runtime/swing/explorer/SWExplorerWindow.scala src/main/scala/deductions/runtime/swing/data_manager/DataGUIWindow.scala

2013-07-06

enum, ordre

COMMITS

tooltips were missing for editable N3Form

extracted N3Form.makeToolTipText()

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

FIX : in editable N3 forms:

- the buttons for object property values showed wrong label ; in NewWindowInstanceObjectPropertyGUIComponent.scala

- the input field for datatype property was empty

- update doc.

TODO

- widget for entering object property links to existing or new Id

- save new triples

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

- refactor in N3Form to call filterValuesByApplicationLanguage() also in displayPropertyLabels()

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

Data manager GUI: in response to full text search, filter labels after language (WIP)

added method filterValuesByApplicationLanguage() in TripleStoreHelper

TODO :

- filter labels after language does not show because lang tag is lost when querying TDB with EG API :(

- refactor in N3Form to also call filterValuesByApplicationLanguage()

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

Data manager GUI: without CL arguments from TDB data) buttons in response to full text search bear a label and comment

- FIX NPE in TripleStoreJena.toN3Term(RDFNode node): case of a Literal without a DatatypeURI was not covered

- TripleStoreTDB.getModel() now returns NamedModel( "urn:x-arq:UnionGraph" )

- RuleBasedApplicationWithCache : expose the tdbCache

- DataGUIWindow: use tripleStoreTDB to search label and comment

TODO : this is just a exploration, architecture is not satisfying: RuleBasedApplicationWithCache should not not expose the tdbCache, and should copy triples from TDB to KB when a search* or a SPARQL query is called (to enable inferences in the KB)

2013-07-05

Cannot complete the install because one or more required items could not be found.

Software being installed: Scala IDE for Eclipse 3.0.1.rc02-2_10-201306261001-9406bbf (org.scala-ide.sdt.feature.feature.group 3.0.1.rc02-2_10-201306261001-9406bbf)

COMMITS

Data manager GUI:

- make N3 Form editable

update doc. at http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5773

TODO:

- filter labels after language

- ensure that it works without CL arguments (solely from TDB data)

- buttons in response to full text search must bear a label or local URI part (in N3JTable)

-----------

Data manager GUI: WIP: user click on one button to open an N3 form;

point 3 in scenario

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5773

TODO:

2013-07-04

This evening , Paris, I'm attending meetup: machine learning ( reenforcement applied to telecom)

http://www.meetup.com/

http://linkfluence.com/fr/

Pour ma part , je développe en Scala surtout côté client: Web Sémantique, Swing, grammaires Scala, ...

Working on Wikipedia combobox with completion

http://en.wikipedia.org/wiki/Convention_over_configuration

https://today.java.net/pub/a/today/2007/07/19/adding-auto-completion-to-swing-comboboxes.html#complex-case-a-model-backed-by-custom-objects

http://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#editable

jmvanel> works but very slowly;

<jmvanel> I guess I should reuse the URL connection to Wikipedia JSON service

COMMIT

- added Wikipedia combobox with completion in SW Explorer

- carriage return now works in SW Explorer Load field

TODO

- isCompleted() should be true also when there are several completions

- I guess I should reuse the URL connection to Wikipedia JSON service; maybe also set a client name in HTTP headers; ask on IRC ...

2013-07-03

COMMIT

- upgrade Euler to 2013-07

- DataGUIWindow.scala : show N3 form View instead of N3 table

- fix button label inNewWindowInstanceObjectPropertyGUIComponent

ACE and pure Prolog

% ape.exe -file simple.ace  -solo paraphrase1
If there is a plant X1 then the plant X1 is a n:living-being .

What I'd like to obtain from this is plain ordinary Prolog like:

living-being(X1) :- plant(X1).

but the FOL output is:

forall(
 A,=>(
  object(B,A,plant,countable,na,eq,1)-1/2,
  exists(
   C,exists( D, &(
    object(B,C,'living-being',countable,na,eq,1)-1/7,
    predicate(B,D,be,A,C)-1/3)
  ))
 )
)

The "copula" to be plays a special role in ATTEMPTO, and is not interpreted in THE FOL above.

Of course not every ACE sentence is translatable to Prolog.

Another approach is to verbalize "N3 P-code" from Euler/EYE using a DCG, in a manner compatible with ACE. Here is an example of N3 P-code" from Euler/EYE:

% eye --n3p examples/BloodPressure.n3
 ...
:- style_check(-discontiguous).
:- style_check(-singleton).
:- dynamic('<http://eulergui.sourceforge.net/examples#val>'/2).
:- dynamic('<http://eulergui.sourceforge.net/examples#alert>'/2).
pfx('log:','<http://www.w3.org/2000/10/swap/log#>').
pfx('math:','<http://www.w3.org/2000/10/swap/math#>').
pfx(:,'<http://eulergui.sourceforge.net/examples#>').
implies( cn(
    ['<http://eulergui.sourceforge.net/examples#val>'('<http://eulergui.sourceforge.net/examples#BloodPressure>',_136031),
    '<http://www.w3.org/2000/10/swap/math#greaterThan>'(_136031,70)]
  ),
 '<http://eulergui.sourceforge.net/examples#alert>'( '<http://eulergui.sourceforge.net/examples#Service112>',
     literal(true,type('<http://www.w3.org/2001/XMLSchema#string>'))),
 '<file:///home/jmv/src/eulergui-code/eulergui/examples/BloodPressure.n3>').

pred('<http://eulergui.sourceforge.net/examples#val>').
:- dynamic('<http://eulergui.sourceforge.net/examples#val>'/2).
'<http://eulergui.sourceforge.net/examples#val>'('<http://eulergui.sourceforge.net/examples#BloodPressure>',72).
prfstep('<http://eulergui.sourceforge.net/examples#val>'('<http://eulergui.sourceforge.net/examples#BloodPressure>',72),true,
'<http://eulergui.sourceforge.net/examples#val>'('<http://eulergui.sourceforge.net/examples#BloodPressure>',72),_136035,forward,
'<file:///home/jmv/src/eulergui-code/eulergui/examples/BloodPressure.n3>').

The N3 rule and fact being:

@prefix math: <http://www.w3.org/2000/10/swap/math#>.
@prefix : <http://eulergui.sourceforge.net/examples#> .

{ :BloodPressure :val ?x.
  ?x math:greaterThan 70
} => { :Service112 :alert "true" } .

:BloodPressure :val 72 .

# infer that
# :Service112 :alert "true"

Examining NARS update

spurious changes in formatting: new line in comments

Concept line 78 : generic parameter was removed :(

Sentence : replace StringBuffer with StringBuilder : OK

Stamp line 181 : generic parameter was removed :(

CompositionalRules line 393 : generic parameter was removed :(

Data GUI application

TODO

Tested full text query:

java -cp target/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar tdb.tdbquery \
--loc=$HOME/.eulergui/TDBDatabases/Dataset1 \
--file $HOME/src/eulergui-code/eulergui/examples/graphs2.rq

java -cp target/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar tdb.tdbquery \
--loc=$HOME/.eulergui/TDBDatabases/Dataset1 --set tdb:unionDefaultGraph=true \
--file $HOME/src/eulergui-code/eulergui/examples/fulltext2.rq

% cat examples/fulltext2.rq 
CONSTRUCT {
   ?s ?p ?o } 
WHERE { 
         ?s ?pf ?of . 
         FILTER regex( ?of, 'Versailles', 'i') 
         ?s ?p ?o. 
}

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

Moez Essaidi's Thesis

http://www.cs.ox.ac.uk/activities/machlearn/Aleph/aleph.html

http://en.wikipedia.org/wiki/OLAP

Idea: CNL sentences could be used for OLAP.

2013-07-01

DataGUI ideas

2013-06-30

http://attempto.ifi.uzh.ch/site/docs/syntax_report.html

<jmvanel> Hi I enjoy the new Scala IDE having extract methods refactoring, but I still miss the Display view that is so convenient in debug

With rszeno on reasoners pitfals

milawa : <rszeno> the reasoner which prove itself that is correct

<rszeno> actualy with what you get you can't go far, both euler and cwm are very limited

<jmvanel> euler can mix forward & backward, + create model & counter models, manipulating rules, proof explanation, + the lemma stuff

<rszeno> is not enough, it can do this for simple tasks only. How many simple tasks you have to do in a day?

<rszeno> plus it miss control

<rszeno> if you run euler only to take a decision, a yes or no answer, you ends with the need to write a new task to use the answer in a chain

<rszeno> no flow control

<rszeno> if you replace this with a rule you end with a complicated and slow task

<rszeno> every attempt to solve the flow control problem will end badly because is designed to run one task at each step

<rszeno> both cwm and euler have this problem and for both was one moment when they try to find a solution

<rszeno> in euler with yap plugins and in cwm with modules

<rszeno> but both solution are artificial, depend of writing external code manualy

<rszeno> and manualy integration in the main code

<jmvanel> OK, agree

wget --mirror

wget --mirror --level 1 http://www.lovebolts.co.uk/bruce_springsteen/

--mirror -T urn on options suitable for mirroring. This option turns on recursion and time-stamping, sets infinite recursion depth and keeps FTP directory listings. It is currently equivalent to -r -N -l inf --no-remove-listing.

wget --mirror --level 1 --convert-links http://www.lovebolts.co.uk/bruce_springsteen/

EulerGUI framework : fixing TDB cache

Triples in Drools coming from TDB are wrong :

<http://dbpedia.org/resource/Louis_XV_of_France> <http://www.w3.org/2000/01/rdf-schema#label> "Louis XV of France\"@en" .

java -cp target/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar arq.sparql --help

COMMIT

- SPARQLToN3Converter.java : add TDB.symUnionDefaultGraph in queryExecution context

- RuleBasedApplicationWithCache: WIP: retrieveURIFromCache was missing

- DataGUIWindow : add SPARQL full text query and N3JTable

TODO:

- SWExplorer is now broken

- simplify variants of addKnowledge, regarding input as String, URI, URL, N3Source with ecplicit base URI or implicit (current dir.)

- unit tests for RuleBasedApplicationWithCache

are lang after @ always with 2 characters ? like "salut"@fr .

for now I assumed that the lang id has always 2 characters

<jmvanel> good enough ...

Thread [AWT-EventQueue-0]
Triple.unwrapQuotes(String) line: 356
TripleStoreJena.createNonListStatement(ITriple) line: 139
TripleStoreJena.createStatementForAdding(ITriple) line: 108
TripleStoreJena.store(ITriple) line: 97
StorageTripleHandler.acceptTriple(String, String, String, String) line: 17
ParserLink.visitAllURI(TripleHandler) line: 492
TripleStoreHelper.copyN3SourceToTripleStore(N3Source, ITripleStore) line: 217
RuleBasedApplicationWithCache.storeN3SourceInCache(N3Source) line: 86
RuleBasedApplicationWithCache.addKnowledge(String) line: 36
SWExplorerWindow.loadURL(String) line: 75
SameWindowInstanceObjectPropertyGUIComponent$$anon$1.actionPerformed(ActionEvent) line: 41

Here in ParserLink we loose the parsing already done in EG parser:

String expandRelativeURI( IValue v )

This is a recent change !

jmvanel> The TDB cache works good enough on the SWExplorer app., can then be used in EG itself ...

TODO : TestTripleStoreTDB.testRDFList() is broken

2013-06-29

TODO

general SPARQL in DataGUI

DataGUI: merge all graphs in TDB

CONSTRUCT { ?s ?p ?o } 
      WHERE { 
         ?s ?pf ?of . 
         FILTER regex( ?of, '<TEXT>', 'i') 
         ?s ?p ?o. 
      }

==> Gateway Time-out

CONSTRUCT { <http://dbpedia.org/resource/Louis_XV_of_France> ?pf ?of } 
      WHERE { 
         <http://dbpedia.org/resource/Louis_XV_of_France> ?pf ?of . 
         FILTER regex( ?of, '<TEXT>', 'i') 
      }

TODO : make use of this HTTP header from dbPedia :

Link: [<http://dbpedia.org/data/Little_Richard.n3>; rel="alternate"; type="text/n3"; title="Structured Descriptor Document (N3/Turtle format)", <http://dbpedia.org/data/Little_Richard.json>; rel="alternate"; type="application/json"; title="Structured Descriptor Document (RDF/JSON format)", <http://dbpedia.org/data/Little_Richard.atom>; rel="alternate"; type="application/atom+xml"; title="OData (Atom+Feed format)", <http://dbpedia.org/data/Little_Richard.jsod>; rel="alternate"; type="application/odata+json"; title="OData (JSON format)", <http://dbpedia.org/page/Little_Richard>; rel="alternate"; type="text/html"; title="XHTML+RDFa", <http://dbpedia.org/resource/Little_Richard>; rel="http://xmlns.com/foaf/0.1/primaryTopic", <http://dbpedia.org/resource/Little_Richard>; rev="describedby", <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/data/Little_Richard.xml>; rel="timegate"]

<jmvanel>

COMMIT

- WIP: Developping Data manager GUI: generic app. to manage underlying SPARQL 1.1 database: navigate and update;

- RuleBasedApplicationWithCache now caches in TDB each N3 source loaded with addKnowledge(), and checks if it is Already In Cache

- now RuleBasedApplicationStarter checks if Knowledge is already Added in in-memory KB

TESTED with SWExplorer

- TripleStoreFromNamedModel now epxlicitely shares the database when created from TripleStoreTDB

TEST Results :

Failed tests: testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,

Tests in error:

testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException

testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

testURIInProject(eulergui.gui.TestCreateProjectInGUI): Frame with title "jEdit.*

http://stackoverflow.com/questions/2220815/whats-the-difference-between-scalatest-and-scala-specs-unit-test-frameworks

SPARQL: get list of Graphs in the RDF Dataset

In RuleBasedApplicationWithCache, I store each N3 source in its own named model.

And I need to check if given URI is already loaded, using TDB SPARQL API .

http://thefigtrees.net/lee/sw/sparql-faq

http://www.w3.org/TR/sparql11-query/#accessingRdfGraphs

This query gets the list of Graphs in the RDF Dataset, with their properties:

CONSTRUCT { ?g ?pg ?og }
WHERE {
   GRAPH ?g { ?s ?p ?o } .
   ?g ?pg ?og.
}

Here is result on dbPedia;

<http://dbpedia.org/sparql>
        a                     sd:Service ;
        sd:endpoint           <http://dbpedia.org/sparql> ;
        sd:feature            sd:UnionDefaultGraph , sd:DereferencesURIs ;
        sd:resultFormat       <http://www.w3.org/ns/formats/Turtle> , <http://www.w3.org/ns/formats/SPARQL_Results_XML> , <http://www.w3.org/ns/formats/SPARQL_Results_CSV> , <http://www.w3.org/ns/formats/N-Triples> , <http://www.w3.org/ns/formats/N3> , <http://www.w3.org/ns/formats/RDFa> , <http://www.w3.org/ns/formats/RDF_XML> , <http://www.w3.org/ns/formats/SPARQL_Results_JSON> ;
        sd:supportedLanguage  sd:SPARQL10Query ;
        sd:url                <http://dbpedia.org/sparql> .

<http://www.openlinksw.com/schemas/oplweb#>
        a                  owl:Ontology ;
        rdfs:comment       "OpenLink Product Portfolio Ontology making use of GoodRelations to publicise product and service offerings" ;
        rdfs:label         "OpenLink ProductPortfolio"^^<http://www.w3.org/2001/XMLSchema#string> ;
        gr:BusinessEntity  <http://www.openlinksw.com/schemas/oplweb#BusinessEntity> ;
        virtrdf:catName    "oplweb" ;
        virtrdf:version    "1.00" ;
        owl:imports        <http://purl.org/goodrelations/v1> .

<http://dbpedia-live.openlinksw.com/sparql>
        a                     sd:Service ;
        sd:endpoint           <http://dbpedia-live.openlinksw.com/sparql> ;
        sd:feature            sd:UnionDefaultGraph , sd:DereferencesURIs ;
        sd:resultFormat       <http://www.w3.org/ns/formats/RDFa> , <http://www.w3.org/ns/formats/N3> , <http://www.w3.org/ns/formats/SPARQL_Results_CSV> , <http://www.w3.org/ns/formats/N-Triples> , <http://www.w3.org/ns/formats/Turtle> , <http://www.w3.org/ns/formats/SPARQL_Results_XML> , <http://www.w3.org/ns/formats/SPARQL_Results_JSON> , <http://www.w3.org/ns/formats/RDF_XML> ;
        sd:supportedLanguage  sd:SPARQL10Query ;
        sd:url                <http://dbpedia-live.openlinksw.com/sparql> .

<http://opengraphprotocol.org/schema/>
        a               owl:Ontology ;
        dc:date         "2010-04-29"^^<http://www.w3.org/2001/XMLSchema#date> ;
        dc:description  "Schema for the Open Graph protocol."@en-us ;
        dc:title        "Open Graph Protocol Schema"@en-us .

2013-06-28

<jmvanel> I'm developping a new semweb explorer : http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5773

<jmvanel> ( snapshot available )

IA links

http://aima.eecs.berkeley.edu/slides-pdf/

http://www.cis.temple.edu/~wangp/

http://en.wikibooks.org/wiki/Prolog/Search_techniques

Vision : knowledge representation, wikipedia & open source

what about knowledge representation done collaboratively, to create rules based on data and concepts from wikipedia ?

<jmvanel> something like a collaborative Opencyc

<Anniepoo> Opencyc is indeed 'open'

<Anniepoo> though it's got a high barrier to entry

<jmvanel> maybe not totally, regarding the engine, and it's monolythic.

Testing SWExplorer

2013-06-27

// TODO store each N3 source in a named model

http://www.w3.org/wiki/SweoIG/TaskForces/CommunityProjects/LinkingOpenData

Example appli SPARQL 1.1

http://www.cambridgesemantics.com/semantic-university/sparql-by-example

Specs; see Roadmap for EulerGUI

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L9989

Semantic management of contacts

Semantic Web Applications : links

New EulerGUI snapshot

Twitt

The Semantic Web Explorer displays the contents of the URI as a convenient form view,

and navigates from to URI to URI by hyperlinks :

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html # L5773

Snapshot:

http://eulergui.sourceforge.net/maven2/eulergui/eulergui/2.0-SNAPSHOT/

-----------

In EG mailing list :

New Semantic Web Explorer app. and component

The Semantic Web Explorer displays contents of an URI as a form view, and navigates by hyperlinks:

See screenshots here :

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5773

In EulerGUI, in jEdit N3 editor, one can launch SW Explorer on a resource at mouse or caret by right click menu .

There is a snapshot at the usual place:

http://eulergui.sourceforge.net/maven2/eulergui/eulergui/2.0-SNAPSHOT/

2013-06-26

Notes on SPARQL 1.1 app. with forms

testing EulerGUI

TODO examples/deductions_person.n3p.n3 does not work.

Missing in saved project :

<> a owl:Ontology.

with this scenario:

  1. eg &
  2. add concrete.ace
  3. save as N3 project

ACE-in-GF a "concrete" example

Every n:concrete v:contains a n:cement and v:contains an n:aggregate.

translates like this in N3 :

{ ?VAR a ns2:concrete
} => {
  ?t0 a ns2:aggregate. ?t1 a ns2:cement. ?VAR ns2:contains ?t0. ?VAR ns2:contains ?t1}.

from this in OWL :

   SubClassOf(
      :concrete
      ObjectIntersectionOf(
         ObjectSomeValuesFrom(
            :contains
            :cement
         )
         ObjectSomeValuesFrom(
            :contains
            :aggregate
         )
      )
   )
)

EulerGUI developments : SWExplorer

TODO

Add jedit action to open N3 form (read only):

src/main/resources/org/gjt/sp/jedit/actions.xml

eg -text "Every n:concrete v:contains a n:cement and v:contains an n:aggregate."

<jmvanel> http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5773

<jmvanel> Semantic Web explorer allows user to navigate from a starting point URI, display URI's content as a form view, and download URI's by clicking them.

COMMIT

SWExplorer ( N3Form ) :

- buttons for URI's make the new URI replace the current one in the form view

- the URI in the input combobox is without <>

- scroll main pane to middle horizontally

TODO

- datatype triples are not displayed

- long text in tooltip should be formatted on several lines

- do not reload URI's already loaded ( either reuse triple store in memory, or persistent TDB store )

svn cat \
src/main/scala/deductions/runtime/swing/InstanceObjectPropertyGUIComponent.scala@3601 \
  > /tmp/InstanceObjectPropertyGUIComponent.scala

Removed:

private def replace(container: JComponent, component:JComponent ) {
  val parent = container.getParent()
parent.remove(container); 
parent.add(component, 
// TODO retrieve component index
BorderLayout.CENTER);
}

2013-06-25

EulerGUI developments : SWExplorer

TODO

Keep in a cache the donwloaded URI's.

http://jena.apache.org/documentation/tdb/datasets.htm

2013-06-24

EulerGUI developments : SWExplorer

COMMIT

SWExplorer :

set label and value column sizes ( maybe set prefered size )

TODO

2013-06-23

EulerGUI developments : SWExplorer

COMMIT

SWExplorer :

- add scrollbar ;

- avoid having twice the same URI in combobox

- doc. add parag. "Independant reusable applications : N3 table, N3 Form, Semweb explorer"

TODO: set label and value column sizes ( maybe set prefered size )

TODO

2013-06-22

https://www.google.fr/search?q=theorem+provers

http://www.cs.miami.edu/~tptp/

http://www4.informatik.tu-muenchen.de/~schulz/E/Usage.html

http://www4.in.tum.de/~schulz/WORK/E_DOWNLOAD/V_1.7/README

EulerGUI developments : in perspective

Some developments that I left aside the last mounths:

2013-06-21

% When there is a client there is an employee
employee(E) :- client(C).
client(john).

present(E) :- employee(E).
present(C) :- client(C).

?- present(X).
true ;
X = john.

?- findall( X, present(X), L ).
L = [_G1845, john].

http://semanticweb.com/doug-lenat-i-was-positively-impressed-with-wolfram-alpha_b11570

swipl -s pttp

?- prove(( siblings( X,peter))).

search for cost 0 proof...  
search for cost 1 proof...  
search for cost 2 proof...  
Proof time: 0.00011464899999999445 seconds
Proof:
length = 3, depth = 1
Goal#  Wff#  Wff Instance
-----  ----  ------------
  [0]    0   query :- [1].
  [1]   16      siblings(paul,peter) :- [2] , [3].
  [2]    8         parent(adam,paul).
  [3]    6         parent(adam,peter).
Proof end.
X = paul ;
false.

2013-06-20

Results :
Failed tests: test(eulergui.parser.n3.service.TestMissingPrefixesCompletion)
testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,
Tests in error:
testSquall(eulergui.inputs.TestSPARQL)
testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
testXMLInp

Testing PTTP - Prolog Technology Theorem Prover

How PTTP compares with Euler/EYE

I wonder how PTTP compares with Euler/EYE.

The first obvious difference is that PTTP handles strong negation:

pttp( (a(1),  (not_a(X) ; b(X))) ).
prove( b(Y) ).

NOTE: the notation not_a is not convenient; I wonder what happens of a user predicate has an underscore:

pttp( (a_good_one(1),  (not_a_good_one(X) ; b(X))) ).
prove( b(Y) ).

Well, it works too !

There is a resemblance with Euler/EYE : both output proofs.

PTTP has only 1217 lines of standard Prolog, in a single file.

2006/02swap/euler.yap has 9089 lines of not quite standard Prolog, in a single file.

Euler is used in production, PTTP probably not.

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

Non trivial PTTP example (primes)

If a is a prime and a = b*b/c*c then a divides b.

NOTES

this is problem NUM014-1 in TPTP

this problem is non-Horn, so clauses are written in disjunction form to result in generation of all contrapositives.

because the query is ground, it is unnecessary for its negation to be included.

pttp((
  p(a), % a is a prime 
  m(a,s(c),s(b)),  %  a*c*c = b*b, that is a = b*b/c*c 
  m(X,X,s(X)),     % s(X)=X*X , that is define square function
  (not_m(X,Y,Z) ; m(Y,X,Z)), % Y*X=Z or not X*Y=Z, that is strange way of defining commutativity
  (not_m(X,Y,Z) ; d(X,Z)),
     % not X*Y=Z or X divides Z, that is define divide in term of multiplication
  (not_p(X) ; not_m(Y,Z,U) ; not_d(X,U) ; d(X,Y) ; d(X,Z)),
    % ???
  (query :- d(a,b))
)).
prove(query).

Incoherent behavior in SWI Prolog

Incoherent and not DWIM !

?- consult(src/pttp).
% src/pttp compiled 0,01 sec, 131 clauses
true.
?- edit(src/pttp).
ERROR: functor/3: Type error: `integer' expected, found `pttp'
false.

However, changing directory allows SWIPL to "understand" what it must do :

?- cd(src).
true.

?- edit(pttp).
% library(swi_edit) compiled into pce_nedit 0,01 sec, 22 clauses
true.

2013-06-19

EulerGUI tests

New project format OWL compatible:

tested roundtrip with OWL/XML, OWL/RDF, RDF, ACE, plain XML

TODO

- OWL/XML, OWL/RDF, RDF should be saved in project with owl:imports , not proj:hasN3Source

(same behavior has Protégé)

- replace everywhere :hasRDFImport with :hasN3Source

2013-06-18

http://www.hermit-reasoner.com/support.html

https://groups.google.com/forum/?fromgroups#!topic/hermit-users/iLsjGoTuK6k

http://lisfs2008.irisa.fr/ocsigen/squall/examples

ACE-in-GF

Regarding Clex, consider "words/clex/" as just an example of how to translate an existing Prolog-formated lexicon into a GF lexicon, i.e. don't use it as an actual lexicon. I haven't used this directory for a long time, so there might be some regression.

APE (ATTEMPTO) big test

<jmv_> I tested 2879 sentences in APE tests together in 1mn CPU :)

Using this piece of Prolog:

:- consult(test_ape).

concat :- concat('tests.ace').

concat(SrcDest) :-
        open(SrcDest, write, Stream, [] ) ,
        findall( Text,
        (   text_drs_eval(_Evaluation, _Id, Text, DRS, _Trees, _Timestamp, _Author, _Comment),
            DRS \= drs([], []) ),
               TT ),
        write_list( TT, Stream ) .

write_list( [], _Stream ) .

write_list( [H|T], Stream ) :-
        write(Stream, H), write(Stream, '\n\n'),
        write_list( T, Stream ) .

========================

Concatenate and run all APE tests

:- consult(test_ape).

concat :- concat('tests.ace').

concat(SrcDest) :-

open(SrcDest, write, Stream, [] ) ,

findall( Text,

( text_drs_eval(_Evaluation, _Id, Text, DRS, _Trees, _Timestamp, _Author, _Comment),

DRS \= drs([], []) ),

TT ),

write_list( TT, Stream ) .

write_list( [], _Stream ) .

write_list( [H|T], Stream ) :-

write(Stream, H), write(Stream, '\n\n'),

write_list( T, Stream ) .

COMMIT:

FIX: new ACE file should open the ORIGINAL file, not the resulting N3.

2013-06-17

lun. juin 17 13:49:02 CEST 2013

Failed tests: testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,

Tests in error:

testSquall(eulergui.inputs.TestSPARQL)

testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException

testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)

testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)

testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)

Tests run: 211, Failures: 1, Errors: 6, Skipped: 0

jmv@localhost:~/src/eulergui-code/eulergui$ mvn versions:display-dependency-updates

[INFO] The following dependencies in Dependencies have newer versions:

[INFO] com.ibm.icu:icu4j ..................................... 50.1.1 -> 51.2

[INFO] com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.4

[INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist

[INFO] jline:jline ............................................. 2.10 -> 2.11

[INFO] org.drools:drools-compiler ............. 5.5.1-SNAPSHOT -> 6.0.0.Beta3

[INFO] org.scala-lang:scala-library ..................... 2.10.1 -> 2.11.0-M3

[INFO] org.scala-lang:scala-swing ....................... 2.10.1 -> 2.11.0-M3

http://www.startinlyon.com/2013/06/

Wrong translation of OWL restriction :

Every animal that eats some plants is an herbivore.

{_:sk2 e:findall (?t0 {?VAR :eat ?t0. ?VAR a :plant} ?t0). ?VAR a :animal. ?t0 math:memberCount _:sk3. _:sk3 math:notLessThan "2"^^xsd:nonNegativeInteger} => {?VAR a :herbivore}.

Substitute

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

with :

http://svn.code.sf.net/p/eulergui/code

Substitute

http://deductions.svn.sourceforge.net/viewvc/deductions

with :

http://svn.code.sf.net/p/deductions/code

Exception in thread "main" java.lang.NoSuchMethodError: org.coode.owlapi.rdfxml.parser.RDFXMLParser.getInputSource(Lorg/semanticweb/owlapi/io/OWLOntologyDocumentSource;Lorg/semanticweb/owlapi/model/OWLOntologyLoaderConfiguration;)Lorg/xml/sax/InputSource;

at org.coode.owlapi.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:118)

at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:206)

at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:827)

at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:773)

at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:792)

at eulergui.project.N3SourceFromOWL.convertOWLToN3(N3SourceFromOWL.java:76)

at eulergui.project.N3SourceFromACE.convertToN3(N3SourceFromACE.java:28)

at eulergui.project.N3Source.manageN3Cache(N3Source.java:645)

at eulergui.project.N3Source.doUpdate(N3Source.java:445)

at eulergui.project.N3SourceFromRDF.prepare(N3SourceFromRDF.java:72)

at eulergui.project.N3Source.placeInProject(N3Source.java:364)

at eulergui.project.SourceFactory.addSource(SourceFactory.scala:116)

at eulergui.CommandLineArguments.makeProjectFromEulerCommandLine(CommandLineArguments.java:148)

at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:75)

at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:220)

[1] + exit 1 eulergui examples/herbivores.ace

Daemon Thread [SwingWorker-pool-4-thread-7] (Suspended)

ParserLink.findStatementsBySubject(IValue, IFormula) line: 424

ParserLink.extractRDFList(IValue, IFormula) line: 264

StatementHelper.<init>(IStatement, IFormula) line: 40

ParserLink.visitAllURI(LineTrackingTripleHandler) line: 717

N3SourcetoDrools.translate(IRDFIterator, String, boolean, boolean, boolean) line: 282

N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 248

N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 89

Project.translateToDrools(N3Source, boolean, boolean) line: 978

N3ConversionRefesher.updateKB(Project, N3Source) line: 175

N3ConversionRefesher.n3SourceChanged(Project, N3Source) line: 51

ProjectChangeSupport$$anonfun$fireN3SourceChanged$1.apply(ProjectListener) line: 103

ProjectChangeSupport$$anonfun$fireN3SourceChanged$1.apply(Object) line: 103

LinkedHashSet<A>.foreach(Function1<A,U>) line: 87

ProjectChangeSupport.fireN3SourceChanged(Project, N3Source) line: 103

Project.fireN3SourceChanged(N3Source) line: 1398

URIModificationChecker$1.doInBackground() line: 106

URIModificationChecker$1(N3SourceWorker).doInBackground() line: 1

SwingWorker$1.call() line: 296

FutureTask$Sync.innerRun() line: 334

SwingWorker$2(FutureTask<V>).run() line: 166

URIModificationChecker$1(SwingWorker<T,V>).run() line: 335

ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145

ThreadPoolExecutor$Worker.run() line: 615

Thread.run() line: 722

Daemon Thread [SwingWorker-pool-4-thread-5] (Suspended (breakpoint at line 87 in MatchQName))

owns: Object (id=188)

owns: N3Source (id=189)

MatchQName.reduceAction(IParseSessionForMatchMgr, IParseNode, IParseNode[], int[]) line: 87

MatchMgrInvoker.reduceAction(int, IMatchMgr, IParseNode, IParseNode[], int[], IParseSessionForMatchMgr) line: 261

MatchMgrInvoker.computeData(IParseSessionForMatchMgr, IParseNode) line: 560

MatchMgrInvoker.endVisitImpl(IParseNode) line: 527

MatchMgrInvoker(AbstractParseNodeVisitor).endVisit(IParseNode) line: 57

ConcatParseNode(AbstractNonTerminalParseNode).accept(IParseNodeVisitor) line: 414

MatchMgrInvoker.checkDataComputed(IParseSessionForMatchMgr, IParseNode) line: 462

MatchMgrInvoker.computeParseNodeData(IParseSessionForMatchMgr, ParseStack) line: 449

ParseStackAction.reduce(ParseStack, boolean, int, EnumSource, EnumSource, int, int, IParseNode[], int[], boolean) line: 225

Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1033

Parser.checkForMatch(ParseStackAction, ParseStack) line: 926

Parser.shiftByToken(ParseStackAction) line: 814

Parser.parse(ParserFileReader, boolean, boolean, boolean, ParseSession) line: 397

N3Parser.parseN3(String, InputStream) line: 178

ParserLink.doParse(File, String) line: 162

ParserLink.parse(N3Source) line: 123

N3Source.doParseN3() line: 546

N3Source.manageParseN3() line: 476

N3Source.update() line: 431

N3ConversionRefesher.updateN3(N3Source) line: 123

N3ConversionRefesher.n3SourceChanged(Project, N3Source) line: 50

ProjectChangeSupport$$anonfun$fireN3SourceChanged$1.apply(ProjectListener) line: 103

ProjectChangeSupport$$anonfun$fireN3SourceChanged$1.apply(Object) line: 103

LinkedHashSet<A>.foreach(Function1<A,U>) line: 87

ProjectChangeSupport.fireN3SourceChanged(Project, N3Source) line: 103

Project.fireN3SourceChanged(N3Source) line: 1398

URIModificationChecker$1.doInBackground() line: 106

URIModificationChecker$1(N3SourceWorker).doInBackground() line: 1

SwingWorker$1.call() line: 296

FutureTask$Sync.innerRun() line: 334

SwingWorker$2(FutureTask<V>).run() line: 166

URIModificationChecker$1(SwingWorker<T,V>).run() line: 335

ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1145

ThreadPoolExecutor$Worker.run() line: 615

Thread.run() line: 722

now Euler builtin e:trace does not break Drools / N3 engine

added acceptAntecedentObjectList for Drools/N3 plugins

2013-06-14

Strange stack ; I thought that I have OWL API in the big jar :

Caused by: java.lang.NoSuchMethodError: org.coode.owlapi.rdfxml.parser.RDFXMLParser.getInputSource(Lorg/semanticweb/owlapi/io/OWLOntologyDocumentSource;Lorg/semanticweb/owlapi/model/OWLOntologyLoaderConfiguration;)Lorg/xml/sax/InputSource;

at org.coode.owlapi.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:118)

at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:206)

at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:827)

at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:765)

at eulergui.project.N3SourceFromOWL.convertToN3(N3SourceFromOWL.java:64)

at eulergui.project.N3SourceFromOWL.convertToN3(N3SourceFromOWL.java:56)

at eulergui.project.N3Source.manageN3Cache(N3Source.java:645)

at eulergui.project.N3Source.doUpdate(N3Source.java:445)

at eulergui.project.N3SourceFromRDF.prepare(N3SourceFromRDF.java:72)

at eulergui.project.N3Source.placeInProject(N3Source.java:364)

at eulergui.project.N3Source.prepare(N3Source.java:389)

at eulergui.project.N3SourceFromRDF.prepare(N3SourceFromRDF.java:71)

at eulergui.project.N3SourceFromRDF.<init>(N3SourceFromRDF.java:59)

at eulergui.project.N3SourceFromOWL.<init>(N3SourceFromOWL.java:44)

at eulergui.project.SourceFactory.addSource(SourceFactory.scala:139)

cat examples/herbivores.ace

Every animal that eats some plants is an herbivore.

gives:

{ _:sk2 e:findall (?t0 {?VAR ns2:eat ?t0. ?VAR a ns2:plant} ?t0).

?VAR a ns2:animal.

?t0 math:memberCount _:sk3.

_:sk3 math:notLessThan "2"^^xsd:nonNegativeInteger

} => {

?VAR a ns2:herbivore}.

THIS IS WRONG !!!!

Should be :

{

?VAR a ns2:animal.

_:sk2 e:findall (?t0 {?VAR ns2:eat ?t0. ?t0 a ns2:plant} ?t1).

?t1 math:memberCount _:sk3.

_:sk3 math:notLessThan "2"^^xsd:nonNegativeInteger

} => {

?VAR a ns2:herbivore}.

COMMIT

fixing save as new N3 project format :

this scenario : add OWL source,

save as new N3 project,

quit,

open new N3 project,

TESTED with examples/interesting-contact.owl

Failed tests: testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,

Tests in error:

testSquall(eulergui.inputs.TestSPARQL)

testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException

testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "street" loaded

test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "herbivores.owl" loaded

test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "herbivores.owl" loaded

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

<jmvanel_> uploading a snapshot

<jmvanel_> ( fixed OWL class tree )

========================

relocate working directories from Sourceforge

svn relocate "svn+ssh://jmvanel@svn.code.sf.net/p/eulergui/code/trunk/eulergui/"
svn relocate "svn+ssh://USERNAME@svn.code.sf.net/p/deductions/code/"

<jmv_> lots of bug fixing these times;

<jmv_> due to new project format OWL compatible;

<jmv_> and replacing Pellet.

2013-06-13

Here is the official page on registering-a-channel-on-freenode :

http://blog.freenode.net/2008/04/registering-a-channel-on-freenode/

<jmv> On behalf of the project http://www.grammaticalframework.org/ , Id' like to use the channel #gf ; but it's registered, aparently by freenode-staff, but unused since 2006 ;

Maybe it's someone from the GF project ...

/msg ChanServ info #gf

-ChanServ- Information on #gf:
-ChanServ- Founder    : freenode-staff
-ChanServ- Registered : Dec 23 20:13:14 2006 (6 years, 24 weeks, 5 days, 16:11:16 ago)
-ChanServ- Last used  : Dec 23 20:13:14 2006 (6 years, 24 weeks, 5 days, 16:11:16 ago)
-ChanServ- Mode lock  : +ntc-s
-ChanServ- *** End of Info ***

-ChanServ- [#freenode] Welcome to #freenode. All network staff are voiced in here, but may not always be around - type /stats p to get a list of on call staff. Others may be hiding so do feel free to ping and /msg us at will! Also please read the channel guidelines at http://freenode.net/poundfreenode.shtml - thanks.
* #freenode :http://freenode.net/

Working with ACE-in-GF

Setting up

cf http://github.com/Attempto/ACE-in-GF#readme

moi: I made clean of course

Envoyé jeudi à 11:03

Kaarel: I think your version of GF is still wrong

in particular the version of RGL.

I have no other explanation...

moi: RGL ?

Envoyé jeudi à 11:16

Kaarel: resource grammar library

it's part of the GF repository

Envoyé jeudi à 11:18

moi: ok

you're right, I had a bad PATH

and the gf was the one from Ubuntu

export PATH=$HOME/.cabal/bin:$PATH

Here is the version of the right gf command :

% /home/jmv/.cabal/bin/gf --version
Grammatical Framework (GF) version 3.4-darcs
No detailed version info available
Built on linux/x86_64 with ghc-7.6, flags: interrupt server new-comp
oem-laptop: ~/src/ACE-in-GF/ % gf --version 
Grammatical Framework (GF) version 3.4
No detailed version info available
Built on linux/x86_64 with ghc-7.4, flags: interrupt server new-comp

moi: pgf_Geography re-works , and I notice that it calls acewiki_aceowl and others

moi: As you see, there are lots of Warnings though ...

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

Running GF

cf Understanding ACE-in-GF ;

Compiling the grammar and starting the gf interpreter:

make pgf_ontograph_40
gf TestAttempto.pgf

Note : make pgf_acewiki_aceowl also creates TestAttempto.pgf, but a smaller one .

gf Geography.pgf
                              
         *  *  *              
      *           *           
    *               *         
   *                          
   *                          
   *        * * * * * *       
   *        *         *       
    *       * * * *  *        
      *     *      *          
         *  *  *              
                              
This is GF version 3.4-darcs. 
No detailed version info available
Built on linux/x86_64 with ghc-7.6, flags: interrupt server new-comp
License: see help -license.   
Bug reports: http://code.google.com/p/grammatical-framework/issues/list


Languages: GeographyAce GeographyApe GeographyGer GeographySpa
Geography> 

2013-06-12

<jmv> feel risky today : upgrading to Ubuntu 13.04 ;

<jmv> on the laptop: still have multiboot with debian

<jmv> and Mageia on the desktop

<jmv> I'll have a meeting with a customer selling expertise on engineering.

<jmv> I'll present them ATTEMPTO and what can be done with it .

Trying ACE-in-GF

<jmv> installing GF to try ACE-in-GF

Installing GF

Hi

I'm installing GF to try ACE-in-GF .

I'm following the recipe "Installing the latest release from source" :

http://www.grammaticalframework.org/download/index.html

That is :

cabal update
cabal install gf
Resolving dependencies...
[1 of 2] Compiling WebSetup ( /tmp/gf-3.4-7917/gf-3.4/WebSetup.hs, /tmp/gf-3.4-7917/gf-3.4/dist/setup/WebSetup.o )
[2 of 2] Compiling Main ( /tmp/gf-3.4-7917/gf-3.4/Setup.hs, /tmp/gf-3.4-7917/gf-3.4/dist/setup/Main.o )

/tmp/gf-3.4-7917/gf-3.4/Setup.hs:394:14: Not in scope: `E.try'
/tmp/gf-3.4-7917/gf-3.4/Setup.hs:413:20: Not in scope: `E.try'
/tmp/gf-3.4-7917/gf-3.4/Setup.hs:422:13: Not in scope: `E.try'
cabal: Error: some packages failed to install:
gf-3.4 failed during the configure step. The exception was:
ExitFail

mail sent to the list ...

I try the binary ... OK !!! It works:

sudo dpkg -i $t/gf_3.4-1_amd64.deb

But I'm not sure if it is compatible with ACE-in-GF.

So I try to install GF from GIT sources:

git pull --verbose
From git://github.com/GrammaticalFramework/GF
 = [up to date]      master     -> origin/master
Already up-to-date.

% ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.6.2

oem-laptop: ~/src/GF/ % cabal install 
Resolving dependencies...
<command line>: cannot satisfy -package Cabal-1.14.0
    (use -v for more information)
cabal: Error: some packages failed to install:
gf-3.4 failed during the configure step. The exception was:
ExitFailure 1

The binary package was not enough for running ACE-in-GF.

Thanks to Kaarel Kaljurand, I just managed to build GF from the latest Git. This is how I did it:

m -r dist
ghc-pkg unregister gf
ghc-pkg list gf
cabal install

moi: )))))) seems to have worked ; just a bad message:

darcs failed:  Not a repository: . (./_darcs/inventory does not exist)
but I'm with GIT, so I think it's OK as i says after :
Installing library in /home/jmv/.cabal/lib/gf-3.4/ghc-7.6.2
Installing executable(s) in /home/jmv/.cabal/bin
Registering gf-3.4...
Installing [prelude] /home/jmv/.cabal/share/gf-3.4/lib/prelude
Installing [Present] /home/jmv/.cabal/share/gf-3.4/lib/present
Installing [AllTenses] /home/jmv/.cabal/share/gf-3.4/lib/alltenses
setupWeb
etc ..............;;

Kaarel: yes, I also get this "darcs failed" message

there are some darcs specific things in the repository, which don't make sense when using the Git mirror

Installing ACE-in-GF

When latest GF is installed, ACE-in-GF works like a charm:

make pgf_Geography
 ...
linking ... OK
Writing 

2013-06-11

A bizz contact old me about http://www-igm.univ-mlv.fr/~unitex/

http://www.w3.org/TR/owl2-syntax/#Time_Instants

2013-06-10

Migrating from Pellet to HermiT

HermiT supports all and only the datatypes of the OWL 2 datatype map, see 
http://www.w3.org/TR/owl2-syntax/#Datatype_Maps. 
The datatype 'http://www.w3.org/2001/XMLSchema#date' is not part of the OWL 2 datatype map and 
no custom datatype definition is given; 
therefore, HermiT cannot handle this datatype.

Before migrating from Pellet to HermiT:

Exception in thread "LaunchOWLReasoner: examples/person-app-spec.n3" java.lang.NoSuchMethodError: org.coode.owlapi.rdfxml.parser.RDFXMLParser.getInputSource(Lorg/semanticweb/owlapi/io/OWLOntologyDocumentSource;Lorg/semanticweb/owlapi/model/OWLOntologyLoaderConfiguration;)Lorg/xml/sax/InputSource;
at org.coode.owlapi.rdfxml.parser.RDFXMLParser.parse(RDFXMLParser.java:118)
at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:206)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:827)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:765)
at eulergui.gui.tools.OwlClassHierarchyBuilder.processTreeWithReasoner(OwlClassHierarchyBuilder.java:149)
at eulergui.gui.tools.OwlClassHierarchyBuilder.<init>(OwlClassHierarchyBuilder.java:111)
at eulergui.gui.tools.LaunchOWLReasonerAction$1.run(LaunchOWLReasonerAction.java:73)
at java.lang.Thread.run(Thread.java:722)

2013-06-08

http://www.ii.uib.no/~bezem/

http://www.ae-info.org/ae/Acad_Main/Sections/Informatics/Informatics_Workshop_Bergen_2012

2013-06-07

Could not load N3 source from URL http://dbpedia.org/resource/The_Beatles

dbpedia.org

http://www.cs.cmu.edu/~tom/mlbook.html

http://www.cs.cmu.edu/~tom/mlbook-chapter-slides.html

http://www.cs.cmu.edu/~tom/mlbook.html

https://www.lri.fr/~antoine/Courses/Master-ISI/Cours-ISI-10.html

http://www.j-paine.org/prolog/library.html

multidimensional scaling (MDS)

http://www.inf.ed.ac.uk/teaching/courses/aipp/lecture_slides/lecture1.pdf

prolog introduction filetype:pdf

http://members.unine.ch/jacques.savoy/Lectures/CoursNLP.html

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

consult from a string (not a file) ?

[17:35] <ttmrichter> jmvanel ! ping

[17:43] <ttmrichter> jmvanel:

atom_to_memory_file('my_predicate :- false.', H), open_memory_file(H, read, R), load_files(stream, [stream(R)]).

[17:44] <ttmrichter> I'm about to hit the hay, so I'll just dump that on you and let you figure out its significance. :)

<jmvanel> I discovered that in SWI Prolog space bar works also for ;

<jmvanel> This seems an introduction:

<jmvanel> Machine Learning for Hackers

<jmvanel> by Drew Conway and John Myles White

AIMA : Artificial Intelligence II (CSE 5361) Spring 1995 - Prolog Edition

http://www.eecs.wsu.edu/~holder/courses/cse5361/spr95/cse5361.html

http://www.nyu.edu/pages/linguistics/anlcbk.html

Loading WordNet into SWI Prolog

I play with the Prolog database; download from here :

http://wordnet.princeton.edu/wordnet/download/current-version/#nix

First I succeded to get the basic things.

% wn_s compiled 3,20 sec, 212,559 clauses
?- [wn_sk].
% wn_sk compiled 3,06 sec, 212,559 clauses

Start with this clause about 'plant' :

s(100017222,1,'plant',n,2,37).

All synsets having word 'plant' :

?- s( ID, W_num, 'plant', Ss_type, Sense_number, Tag_count ).
ID = 100017222,
W_num = 1,
Ss_type = n,
Sense_number = 2,
Tag_count = 37 ;
ID = 103956922,
W_num = Sense_number, Sense_number = 1,
Ss_type = n,
Tag_count = 63 ;
ID = 105906080,
W_num = 1,
Ss_type = n,
Sense_number = 4,
Tag_count = 0 ;
ID = 110438470,
W_num = 1,
Ss_type = n,
Sense_number = 3,
Tag_count = 0 ;
ID = 200734790,
W_num = 1,
Ss_type = v,
Sense_number = 6,
Tag_count = 0 ;
ID = 201371201,
W_num = 1,
Ss_type = v,
Sense_number = 5,
Tag_count = 0 ;
ID = 201528821,
W_num = 5,
Ss_type = v,
Sense_number = Tag_count, Tag_count = 2 ;
ID = 201567275,
W_num = Sense_number, Sense_number = 1,
Ss_type = v,
Tag_count = 8 ;
ID = 201647229,
W_num = Sense_number, Sense_number = 3,
Ss_type = v,
Tag_count = 1 ;
ID = 202322810,
W_num = 1,
Ss_type = v,
Sense_number = 4,
Tag_count = 0.

So, we have 10 synset_id matching word 'plant' .

Now we want the definition of those synsets (just nouns) :

?- s( Synset_id, W_num,'plant', n, _, _ ), g(Synset_id, Gloss).
Synset_id = 100017222,
W_num = 1,
Gloss = '(botany) a living organism lacking the power of locomotion' ;
Synset_id = 103956922,
W_num = 1,
Gloss = 'buildings for carrying on industrial labor; "they built a large plant to manufacture automobiles"' ;
Synset_id = 105906080,
W_num = 1,
Gloss = 'something planted secretly for discovery by another; "the police used a plant to trick the thieves"; "he claimed that the evidence against him was a plant"' ;
Synset_id = 110438470,
W_num = 1,
Gloss = 'an actor situated in the audience whose acting is rehearsed but seems spontaneous to the audience' ;
false.

Now we want also all the word forms of those synsets (just nouns) :

s( Synset_id, W_num,'plant', n, _, _ ),
  findall( WORD,
    s( Synset_id, _, WORD, n, _, _ ),
    WORDS ),
  g(Synset_id, Gloss).

Now we want to access to the "domain" and "domain terms" as shown in WordNet browser.

Ask about synset 100017222, which is:

plant, flora, plant life -- ((botany) a living organism lacking the power of locomotion)

For this, use this predicate:

cls(synset_id,w_num,synset_id,w_num,class_type).

The cls operator specifies that the first synset has been classified as a member of the class represented by the second synset.

class_type indicates whether the classification relation represented is topical, usage, or regional, as indicated by the class_type of t, u, or r, respectively.

cls(100017222, W_num, Synset_id, W_num2, Class_type),
  g(Synset_id, Gloss).

W_num = W_num2, W_num2 = 0,
Synset_id = 106066555,
Class_type = t,
Gloss = 'the branch of biology that studies plants'.

Now for "domain terms" as shown in WordNet browser :

Sense 2
plant, flora, plant life -- ((botany) a living organism lacking the power of locomotion)
       TOPIC TERM->(adj) acid-loving#1
       TOPIC TERM->(adj) alkaline-loving#1
etc ...

I suffises to reverse both Synset_id arguments in clause cls/5 :

cls( Synset_id, W_num, 100017222, _W_num2, Class_type),
  s( Synset_id, _W_num, WORD, _Ss_type, _Sense_number, _Tag_count ),
  g( Synset_id, Gloss).

or , with less variables in answer:

cls( Synset_id, _, 100017222, _, Class_type),
  s( Synset_id, _, WORD, Ss_type, _, _ ),
  g( Synset_id, Gloss).

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

NOTE : French WordNet is only in XML :

https://gforge.inria.fr/frs/?group_id=1177

Derivationally related forms :

1 sense of skiing

Sense 1

skiing -- (a sport in which participants must travel on skis)

RELATED TO->(verb) ski#1

=> ski -- (move along on skis; "We love to ski the Rockies"; "My children don't ski")

more general sense of a verb: ski :

ski -- (move along on skis; "We love to ski the Rockies"; "My children don't ski")

=> travel, go, move, locomote -- (change location; move, travel, or proceed, also

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

<jmvanel> Is there in SWI a convenience predicate that prints solution to a query as a tabular display , instead of the standard Var=value plus semicolons ?

<jmvanel> Bonjour ttmrichter

<ttmrichter> I've not heard of such a predicate, no.

<jmvanel> it would save screen space

<jmvanel> I could write it ...

<jmvanel> involves findall ; must also get the list of free variables in query

* osa1 (~omer@95.211.186.145) a rejoint ##prolog

<jmvanel> so it 's not trivial; at least for me :(

RESTdesc

Well, I hope your expectations are not too high,

because we are of course far from an automated understanding :-)

What RESTdesc does is trying to capture the functionality of a Web API,

but RESTdesc rules still need to be authored manually.

Our best paper about RESTdesc is this one:

http://ruben.verborgh.org/publications/verborgh_wsrest_2012/

I have also attached the Pragmatic Proof paper to this mail,

this one builds on RESTdesc by explaining composition,

based on the EYE reasoner’s proof.

Since you’re speaking about RDFizing,

again a word of caution;

RESTdesc is independent of the underlying API’s content type,

i.e., your API could send RDF, JSON, JPEG, PDF…

We don’t describe the format of the entity body.

Regarding the RDFizing, I do believe in JSON-LD

(and I know Markus Lanthaler, who is working on that).

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

2013-06-06

http://www.reddit.com/r/semanticweb

http://heather.cs.ucdavis.edu/r.html

<jmv> Hi is there a vocab' to describe datasets for machine learning ?

<EtnaRosso> sorry I don't know

<jmv> ( since the data themselse alas are in CSV or ARFF, it makes sense to describe columns and dataset in semweb

Machine Learning Programs and Laboratory Experiments in Prolog

Zdravko Markov

Professor of Computer Science, Central Connecticut State University

http://www.cs.ccsu.edu/~markov/

http://www.cs.ccsu.edu/~markov/ccsu_courses/mlprograms/

Running R

The linux command to start R is R .

http://www.r-bloggers.com/sparql-with-r-in-less-than-5-minutes/

available.packages()
install.packages("SPARQL")
install.packages("ggplot2")

library(SPARQL) # SPARQL querying package
library(ggplot2)

On t #machinelearning IRC :

<jmv> Hi

<jmv> what are the most used file formats for ML ?

Links on machine learning

See below "Machine learning links"

http://eulersharp.sourceforge.net/2006/02swap/nbbn-plugin.html

http://stackexchange.com/sites#technology

https://www.coursera.org/course/neuralnets

http://www.dspguru.com/dsp/links/matlab-clones

http://www.torch.ch/

http://en.wikipedia.org/wiki/Deep_learning

http://en.wikipedia.org/wiki/Restricted_Boltzmann_machine

http://en.wikipedia.org/wiki/Feature_(machine_learning)

https://github.com/thinkaurelius/titan/wiki/The-Benefits-of-Titan

http://conference.scipy.org/scipy2013/keynotes.php

http://ai.stanford.edu/~ang/

http://en.wikipedia.org/wiki/Inductive_Logic_Programming

2013-06-05

EulerGUI misc.

See New ideas TODO

TODO :

Hermit

https://groups.google.com/forum/?fromgroups#!topic/hermit-users/bWBKZYuITOo

https://github.com/phillord/hermit-maven#readme

My mavenized version of HermiT has been updated. No changes from the

HermiT side; this version includes Javadoc, source and test source jar

files added.

  <groupId>org.semanticweb.hermit</groupId> 
  <artifactId>HermiT</artifactId> 
  <version>1.3.7.2</version> 

  <repositories> 
    <repository> 
      <id>phillord</id> 
      <url>http://homepages.cs.ncl.ac.uk/phillip.lord/maven</url> 
    </repository> 
  </repositories>

New EulerGUI snapshot

<jmv> deploying new snapshot

<jmv> ( fixes with ATTEMPTO integration and new N3 format OWL compatible )

<jmv> [INFO] Total time: 3 minutes 23 seconds

<jmv> with fiber here :)

COMMIT

- FIX stupid syntax error in test examples/ace.n3p.n3 : now works

- FIX save as new N3 project format : did not include triple:

<PROJECT> a owl:Ontology .

now Project opened with CommandLineArguments ( that is with ProejectGUI ) is not infrastructure_project

Failed tests: testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,

Errors "well known" :

Tests in error:

testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException

testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

Tests run: 211, Failures: 1, Errors: 2, Skipped: 0

ATTEMPTO misc.

DONE check about my bug report " problem with -uri parameter in ape.exe : URI ending in # "

https://github.com/Attempto/APE/commit/50638c6d2e293406dbfc70e553e2a8b1098054db#L0R2

ATTEMPTO test files

Found the ATTEMPTO test files in APE/tests/ :

acetexts.pl
swipl -f none -g main -t halt -s test_owlswrl.pl > /tmp/bb

Nice sentence:

For everything X a man knows X.

ape.exe -text 'For everything X a man knows X.' -solo owlfsspp
Prefix(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>)
Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test>
   SubClassOf(
      owl:Thing
      ObjectSomeValuesFrom(
         ObjectInverseOf(
            :know
         )
         :man
      )
   )
)

ATTEMPTO Suggestion : guess domain for DatatypeProperty

This Datatype Property assignement :

p:Linda has-name "Ronstadt" .

gives this Turtle OWL result in APE:

:has-name rdf:type owl:DatatypeProperty .
:Linda rdf:type owl:NamedIndividual ;
       :has-name "Ronstadt"^^xsd:string .

It would be desirable to add this conclusion:

:has-name rdfs:range xsd:string .

because currently there is no way in APE to conclude range being a literal type.

Specifying OWL DatatypeProperty in ATTEMPTO

From these ACE sentences:

p:Linda is a n:nice-girl .    /* class assignement */
p:Linda has-name "Ronstadt" . /* DatatypeProperty assignement */
p:Linda has-friend p:Bruce . /* ObjectProperty assignement */

These OWL declarations are generated:

:nice-girl rdf:type owl:Class .
:Linda rdf:type :nice-girl ,
                owl:NamedIndividual .

:has-name rdf:type owl:DatatypeProperty .
:Linda rdf:type owl:NamedIndividual ;    
       :has-name "Ronstadt"^^xsd:string .

2013-06-04

N3ParserSession.addPrefix()

Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*"

2013-06-02

java -cp $HOME/.m2/repository/eulergui/eulergui/2.0-SNAPSHOT/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar deductions.runtime.swing.explorer.SWExplorer http://dbpedia.org/resource/Little_Richard

2013-05-31

Tried samples.N3FormApp with :

/home/jmv/ontologies/owl.n3
 <http://www.w3.org/2002/07/owl#Class>

Nothing !? But there are properties ?P such that:

?P rdfs:domain owl:Class.

Adding these § paragraphs in EG manual

Advanced uses of Euler/EYE

Writing Euler plugins written in Prolog

proof explanation

Model and counter model building

Manipulating rules

Lemmas

svn add advanced_euler.html
svn propset svn:mime-type text/html advanced_euler.html

Semweb explorer: queries to recommend new URI's

The goal is to write simple rules or queries to recommend (and order) new URI's; could be similar to "facebook" example rules, but involving properties and their dc:subject, data triples.

{ ?RES eg:chosenByUser ?USER.
  ?RES ?P1 ?V1.
  ?OTHER ?P1 ?V1.
} => {
  ?OTHER eg:recommendationFrom ?RES
}.

In SPARQL, ?RES becomes a parameter:

CONSTRUCT {
  ?OTHER eg:recommendationFrom <RES>.
}
WHERE {
  <RES> ?P1 ?V1.
  ?OTHER ?P1 ?V1.
} LIMIT 20

However, this is more complex than this; one must take in account the number of property-value pairs coinciding in the resources already chosen By User.

{ ?RES eg:chosenByUser ?USER.
  _:d eu:findall( ?OTHER {
    ?RES ?P1 ?V1.
    ?OTHER ?P1 ?V1.
    ?OTHER log:notEqualTo ?RES.
  } ?LIST.
} => {
  ?OTHER eg:recommendationFrom ?RES
}.

But the ?OTHER resources are not very likely to be here locally with their properties, so we must do the same in SPARQL.

CONSTRUCT {
  ?OTHER eg:recommendationFrom <RES>.
}
WHERE {
  <RES> ?P1 ?V1.
  ?OTHER ?P1 ?V1.
} LIMIT 20

TODO

2013-05-30

Semweb explorer

COMMIT

Semantic Web explorer : form view works, even when no vocabulary is available

tested with http://dbpedia.org/resource/The_Beatles

TODO need to load ontology, but not easy for most URL's

I think better when I have a use case AND a prototype. This is now the case with the Semweb Explorer:

java -cp $HOME/.m2/repository/eulergui/eulergui/2.0-SNAPSHOT/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar \
deductions.runtime.swing.explorer.SWExplorer \
http://dbpedia.org/resource/Little_Richard

(not yet in snapshot).

New ideas TODO

Microformats in EulerGUI

This works in EulerGUI:

http://www.w3.org/2012/pyMicrodata/extract?format=turtle&uri=http://www.imdb.com/title/tt1375666/

In fact, even better, this works;

http://www.imdb.com/title/tt1375666/

As a side effet, it opens the HTML page in the system browser. I discovered that, this is because the web service used does both RDFa and schema.org microformats.

Installed in my Chrome the microformat distiller from

http://www.w3.org/2012/pyMicrodata

which btw gives this when queried by EulerGUI (I should really do my homework in DOAP, or write a rule base to generate the DOAP out of the Maven POM):

@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix doap:  <http://usefulinc.com/ns/doap#> .

<http://www.w3.org/2012/pyRdfa>
        rdfs:comment               "RDFa 1.1 is a specification for attributes to be used with XML languages or with HTML5 to express structured data. The rendered, hypertext data of XML or HTML is reused by the RDFa markup, so that publishers don’t need to repeat significant data in the document content. The underlying abstract representation is RDF, which lets publishers build their own vocabulary, extend others, and evolve their vocabulary with maximal interoperability over time. pyRdfa is a distiller that generates RDF triples from an XML or HTML5 file annotated by RDFa in various RDF serialization formats. It can either be used directly from a command line or via a CGI service. It corresponds to the RDFa 1.1 Core document, XHTML+RDFa, and HTML+RDFa specifications, as well as to the SVG Tiny 1.2 Recommendation for the SVG version." ;
        rdfs:seeAlso               <http://www.w3.org/TR/rdfa-core/> ;
        doap:created               "2012-05-24" ;
        doap:description           "pyRdfa is a distiller that generates RDF triples from an XML or HTML5 file annotated by RDFa in various RDF serialization formats. It can either be used directly from a command line or via a CGI service." ;
        doap:developer             <http://www.ivan-herman.net/foaf#me> ;
        doap:file-release          <https://github.com/RDFLib/pyrdfa3> ;
        doap:license               <http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231> ;
        doap:maintainer            <http://www.ivan-herman.net/foaf#me> ;
        doap:name                  "pyRdfa" ;
        doap:programming-language  "Python" ;
        doap:repository            <https://github.com/RDFLib/pyrdfa3> ;
        doap:repository-location   <https://github.com/RDFLib/pyrdfa3> .

<https://github.com/RDFLib/pyrdfa3>
        a       doap:Repository .

<http://www.ivan-herman.net/foaf#me>
        a          foaf:Person ;
        foaf:name  "Ivan\n            Herman" .

<jmvanel> Hi is there any web service for schema.org to Turtle ?

<stain> what do you mean, from microdata?

<stain> does http://www.w3.org/2012/pyMicrodata/ work?

<stain> it's just a web page, not a web service

<stain> ah, you can mint some URIs and stuff

<jmvanel> In EulerGUI semweb swiss knife, I already use a RDFa web service (instead of using a library to translate from RDFa to Turtle

<jmvanel> stain, it works fine

<jmvanel> I can probably use it as web service :)

<jmvanel> or I could the Java library http://any23.apache.org/

2013-05-29

I wonder what this means in Virtuoso HTTP headers:

HTTP headers

null: [HTTP/1.1 200 OK]
Link: [<http://dbpedia.org/data/Little_Richard.n3>; rel="alternate"; type="text/n3"; title="Structured Descriptor Document (N3/Turtle format)", <http://dbpedia.org/data/Little_Richard.json>; rel="alternate"; type="application/json"; title="Structured Descriptor Document (RDF/JSON format)", <http://dbpedia.org/data/Little_Richard.atom>; rel="alternate"; type="application/atom+xml"; title="OData (Atom+Feed format)", <http://dbpedia.org/data/Little_Richard.jsod>; rel="alternate"; type="application/odata+json"; title="OData (JSON format)", <http://dbpedia.org/page/Little_Richard>; rel="alternate"; type="text/html"; title="XHTML+RDFa", <http://dbpedia.org/resource/Little_Richard>; rel="http://xmlns.com/foaf/0.1/primaryTopic", <http://dbpedia.org/resource/Little_Richard>; rev="describedby", <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/data/Little_Richard.xml>; rel="timegate"]
Vary: [Accept-Encoding]
Date: [Wed, 29 May 2013 22:11:07 GMT]
Content-Length: [69878]
Expires: [Wed, 05 Jun 2013 21:28:13 GMT]
X-SPARQL-default-graph: [http://dbpedia.org]
Accept-Ranges: [bytes]
Connection: [keep-alive]
Content-Type: [application/rdf+xml; charset=UTF-8]
Server: [Virtuoso/06.04.3135 (Linux) x86_64-generic-linux-glibc212-64 VDB]

http://www.r-stepps.fr/

dbpedia:James_Brown

http://dbpedia.org/data/James_Brown.xml make a parsing error in EulerGUI parser, probably related to UTF-8:

n3_project.exceptions.parser.ParsingException: Last character read : 0XF6 on
line 1170
Expecting one of these :

with this stack:

>>>> Threads0java.lang.Thread.getStackTrace(Thread.java:1567)
1eulergui.util.StackHelper.printStackTrace(StackHelper.java:20)
2eulergui.util.StackHelper.printStackTrace(StackHelper.java:12)
3eulergui.project.N3Source.manageParseN3(N3Source.java:493)
4eulergui.project.N3Source.update(N3Source.java:431)
5eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:123)
6eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
7eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:79)
8eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:59)
9deductions.runtime.RuleBasedApplicationStarter.processRulesAndFacts(RuleBasedApplicationStarter.java:106)
10deductions.runtime.RuleBasedApplicationStarter.addKnowledge(RuleBasedApplicationStarter.java:160)

Semweb explorer

<jmvanel> At lunch I was thinking of tool helping to navigate on dpPedia and the semweb in general : taking in account resembling predicates , downloading trials, etc

<jmvanel> it could also learn from users actions :)

<rszeno> yes, :)

<rszeno> but need to record history, the goal of the user

<jmvanel> I thought that I could try 2 hours to assemble my tools to do this explorer agent.

<jmvanel> what do we want ?

<jmvanel> 1) as starting point, a field to enter a prefixed URI or URI

<jmvanel> 2) then a form view à la dbpedia web ; clicking on URI's in form view opens another form, or replaces it

<jmvanel> 3) a history (clickable)

<jmvanel> 3 : I don't have :(

<jmvanel> instead of 1) I will have also a combobox similar to one in Wikipedia ( using same Web service )

<jmvanel> instead of 2) an N3 editor is possible of course

<jmvanel> Then serious things can begin, like recognizing similarities among URI's seen by user,

<jmvanel> that is where NARS would useful , but I loose hope ;

<jmvanel> still I'll sent one more mail today about my regression.

- N3Form: create new forms for Object properties (existing first triple or create new triple URI)

TODO: update and save user modifications: save all triples created in other forms created from this one

- refactorings in URL completion

- first commit of Semantic Web explorer

http://www.cs.umd.edu/~golbeck/LBSC690/SemanticWeb.html

http://www.scientificamerican.com/article.cfm?id=long-live-the-web

<rszeno> is about rewriting and proofs

<rszeno> you can 'generate' theorems by combining any possible steps, the true statements

<rszeno> when you have a theorem which is used only to prove another theorem you say is a lemma

<rszeno> bigest problem with generating theorems is that you need build a huge tree to get all the theorems and finaly maybe none of them are useful

<rszeno> so you need to prune the tree somehow

<rszeno> this is the part of improving, :)

<rszeno> easy to understand, isn't it?

<rszeno> devels is in details, :)

<jmvanel> not so easy

<rszeno> what is complicated?

<jmvanel> I neeed a concrete example

<rszeno> mm, you have a set of statements s_i p_i o_i . with i from 0 to n

<jmvanel> facts ?

<jmvanel> rules also ?

<rszeno> not only facts, else the system is already closed

<rszeno> rules and variables too

<jmvanel> ok

<rszeno> now to prove something you make all possible combination of what is there

<rszeno> that mean replacing variables with values, and check if ar true

<rszeno> in the end what you have is initial system + all the theorems of the system

<jmvanel> the work of a theorem prover but without a precise theorem to prove ?

<rszeno> obvious some of them are trivial, other are useles

<rszeno> yes, exactly

<jmvanel> :)

<rszeno> this way work a inference engine, forward chaning, which doesn't have salience

<rszeno> is blind, like cwm

<rszeno> but is a humble hard worker, :)

<jmvanel> :)

<jmvanel> Jos wrote us this about this lemma matter :

<jmvanel> That said, my current working weeks are 76 hours long. This is no joke

<jmvanel> and a lot of private work goes into the "N3 Socket" project. Another

<jmvanel> bunch of work goes into "lemma enhanced reasoning" especially for

<jmvanel> RESTdesc based service composition as explained in

<jmvanel> http://ruben.verborgh.org/publications/verborgh_ijcs_2014/

<jmvanel> I ordered the article to Ruben

<jmvanel> saying :

<jmvanel> Hi Ruben

<jmvanel> Jos told me about your paper.

<jmvanel> I'm interested in tools to automatically "understand" and RDFize JSON web API's .

Playing with SWI Prolog + semweb

 use_module( library(semweb/sparql_client) ).
?- sparql_query('select * where { ?x rdfs:label "Amsterdam" }', Row,
                [ host('dbpedia.org'), path('/sparql/')]).
Row = row('http://www.ontologyportal.org/WordNet#WN30-108949737').

http://eulergui.sourceforge.net/maven2/eulergui/eulergui/2.0-SNAPSHOT/

http://blog.athico.com/2012/05/drools-54-artificial-intelligence.html

//<http://usefulinc.com/ns/doap#>

http://eulersharp.sourceforge.net/2003/03swap/prolog.html

http://eulersharp.sourceforge.net/2006/02swap/eye-note.txt

<jmvanel> http://leafsnap.com/

<jmvanel> free mobile app uses visual recognition software to help identify tree species from photographs of their leaves.

2013-05-28

<qu1j0t3> This guy is the expert. http://www.hakank.org/constraint_programming_blog/

<qu1j0t3> also @ https://twitter.com/hakankj

http://attempto.ifi.uzh.ch/acewiki-gf/

<sirdancealot> programs from ace would be nice...:)

<jmvanel> yes , I want to explore that

<jmvanel> but there is an issue , that the ACE guys don't bother to fix :

<jmvanel> it's not possible to mix several namespaces in a single ACE sentence .

<jmvanel> http://www.semanlink.net/ look interesting

<jmvanel> wonder if it's hosted somewhere

Semanlink is a personal information management system based on RDF. It lets you add tags, as well as other RDF metadata, to files, bookmarks and short text notes that it allows to write. Providing a simple way to organize the tags in a graph, it allows you to incrementally define the vocabulary you use when a

EulerGUI

TODO

COMMIT

Within JBPM, is there by default one or more Drools engine with rules that provide inference under the hood for running BP, or is the BP implementation hard coded ?

2013-05-27

<jmvanel> Jos did it !!!!!!!!!!!! :) Now the translation of ACE into N3 works again :

java.lang.NullPointerException
at com.hp.gloze.www_w3_org_2001_XMLSchema.Include.gatherGlobals(Include.java:88)
at com.hp.gloze.www_w3_org_2001_XMLSchema.schema.gatherGlobals(schema.java:259)
at com.hp.gloze.Context.<init>(Context.java:179)
at com.hp.gloze.GlozeEulerGUI.xsd_to_owl(GlozeEulerGUI.java:584)
at com.hp.gloze.GlozeEulerGUI.runGloze(GlozeEulerGUI.java:822)
at eulergui.inputs.N3SourceFromXML_Gloze.convertToN3(N3SourceFromXML_Gloze.java:95)
at eulergui.project.N3Source.manageN3Cache(N3Source.java:645)

Attempto stuff

https://github.com/Attempto

cd ~/src/ACE-in-GF/ ; git pull --verbose

There are some DCG's in ACE project :

cd ~/src/owlverbalizer/ ; grep -- '-->' owlace_dcg.pl

I use a nice Prolog tool called ATTEMPTO APE , that is not using DCG , but something named FIT ;

<Anniepoo> ah, the ATTEMPTO constrained english parser?

<jmvanel> yes ; so they have to write *both* parsing and verbalization

I2-D3

A Parser for Attempto Controlled English

Project title: Reasoning on the Web with Rules and Semantics

Project acronym: REWERSE

http://rewerse.net/deliverables/m12/i2-d3.pdf

Misc.: JPA and SPARQL, SOA + semantics

You might check out Empire, which is integration between JPA and SPARQL letting you build an application around standard POJOs which are stored in an RDF triplestore. It handles round-tripping between RDF and Java for you and abstracts most of the details of RDF -- though some SPARQL knowledge is ideal.

may be interesting!

https://github.com/mhgrove/Empire#readme

https://groups.google.com/forum/?fromgroups#!forum/empire-rdf

http://semanticweb.com/empire-rdf-sparql-meet-jpa_b15617

http://fr.slideshare.net/candp/sem-tech-empirepresentation2

http://semanticweb.org/wiki/Tripresso

SUPER Semantics used for Business Process Management within and between entreprises

<jmvanel> Likely, one more project where EU spent money , and nothing left : http://www.ip-super.org/

<jmvanel> 16M€ !!!

<jmvanel> SUPER Ontologies : http://www.ip-super.org/content/view/129/136/

http://fr.slideshare.net/vanto/bpm-meets-semantic-web

http://www.ip-super.org/content/view/114/63/

http://www.ip-super.org/content/view/129/136/

SOA, Cloud & Semantic Web Technology: Understanding How They Can Work Together Part 1 of 2

http://www.youtube.com/watch?v=LsrvL6tWffk

http://semanticweb.com/semantic-service-oriented-architecture-an-overview_b10678

http://www.omg.org/spec/BPMN/2.0/

EulerGUI

Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

TODO :

COMMIT

- add examples directory examples/ace for ACE examples ( ATTEMPTO Controled English)

- update CHANGELOG, development.html, deploy_snapshot.sh

Would that be a good idea to generate test data , given a rule, or a whole rule base? This I often do by hand.

My OSS projects and personal skills and competence network : with this I can translate, check, transform and process in many ways any rule format ( SWRL, Drools, Prolog, RuleML, RIF, etc).

JBPM stuff

https://www.google.fr/search?q=jbpm+tutorial

http://semanticweb.com/tag/apache-mahout

http://www.meetup.com/RTPBigData/events/13335261/?action=detail&eventId=13335261

<jmvanel> within jbpm, is there by default one or more drools engine with rules that provide inference under the hood for BP running, or is the BP implementation hard coded ?

http://docs.jboss.org/jbpm/v5.4/userguide/ch.installer.html#d0e427

<jmvanel> using jbpm-installer full, ant install.demo FAILS

<jmvanel> it wants http://download.eclipse.org/technology/epp/downloads/release/helios/SR2/eclipse-java-helios-SR2-linux-gtk-x86_64.tar.gz

<jmvanel> but it's 404 Not Found

<conan> jmvanel on the mailing list, there is a link to some dlies that wil help

<conan> jmvanel alos I'd use 6.0.SNAPSHOT

<conan> lots of fixes since beta2

<conan> or wait for beta3 this week

<krisv> jmvanel, yes, eclipse moved the file

<krisv> jmvanel, in your build.xml file, update the following line:

<krisv> https://github.com/droolsjbpm/jbpm/blob/master/jbpm-installer/build.xml#L186

<krisv> to archive.eclipse.org/...

<krisv> that should work

Indeed !

gvim build.xml ; ant install.demo
ant start.demo

http://localhost:8080/jbpm-console/app.html

2013-05-26

http://www.sagemath.org/

http://cutebouncingbunnies.wordpress.com/page/2/

Question to ATTEMPTO list

Where should I modify the code to unconditionally generate rules , and not try OWL at all ?

Tools : Protégé, OWL verbalizer

Downloaded Protégé 4.3.

OWL verbalizer is a different project on a Mercury depot :

cd ~/src/owlverbalizer/
hg update --verbose
 ./make_exe.sh
 ./owl_to_ace.exe -xml ~/src/eulergui-code/eulergui/examples/interesting-contact.owl
Every Person that currentProject something and that homepage something is an interesting-contact.

I try to see how a plain triple is translated:

    <Declaration>
        <DataProperty IRI="#ps"/>
    </Declaration>
    <Declaration>
        <NamedIndividual IRI="#x"/>
    </Declaration>
    <DataPropertyAssertion>
        <DataProperty IRI="#ps"/>
        <NamedIndividual IRI="#x"/>
        <Literal datatypeIRI="&xsd;string">bla bla</Literal>
    </DataPropertyAssertion>

Alas, it does not work:

./owl_to_ace.exe -xml ~/src/eulergui-code/eulergui/examples/just_triples.owl
/* BUG: axiom too complex: SubClassOf(ObjectOneOf([NamedIndividual(#x)]),DataHasValue(DataProperty(#pb),^^(false,http://www.w3.org/2001/XMLSchema#boolean))) */

/* BUG: axiom too complex: SubClassOf(ObjectOneOf([NamedIndividual(#x)]),DataHasValue(DataProperty(#pn),^^(123,http://www.w3.org/2001/XMLSchema#decimal))) */

x ps "bla bla".

/* unsupported: SubDataPropertyOf(DataProperty(#pn),DataProperty(http://www.w3.org/2002/07/owl#topDataProperty)) */

Map server - Google and Leaflet

<Anniepoo> you seem to be struggling with the maps

<jmvanel> :)

<Anniepoo> I obviously don't run a map server - Google and Leaflet do that. Reasonably they want to control who'se using their services.

<jmvanel> Did you do this thing in google to activate them ?

<Anniepoo> Both offer free services for small users. In google's case 'small' is 'I have less than a datacenter'

<Anniepoo> yes, I did it.

<jmvanel> ok

<Anniepoo> it takes under 5 minutes

<Anniepoo> it's free

<Anniepoo> Leaflet's slightly more complicated - they let you choose your tile provider, but most people use Cloudmade

<Anniepoo> you can use leaflet without registering (there's no true leaflet server, you're getting the tiles from cloudmade)

<jmvanel> ok

<Anniepoo> a map is just a mass of javascript that loads small square images from a 'tile server'. Google hides all this distinction, while leaflet is just the javascript portion

EulerGUI upgrades: OWL API, Euler

fixed EG build after changes in svn for Euler ( Maven depot changed accordingly )

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

TODO in doc: example of using a simple Prolog plugin in Euler/EYE : list_plugin.n3 + list.pl

After upgrade OWL API to 3.4.4 :

Results :
Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 
Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait for "getText() Component Chooser "rdfs:label="Agent""(..)
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
Tests run: 211, Failures: 1, Errors: 4, Skipped: 0

On save in EG N3 editor :

10:11:34 [AWT-EventQueue-0] [error] AWT-EventQueue-0: java.lang.NullPointerException
10:11:34 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.controller.N3SourceWorker.done(N3SourceWorker.java:68)
10:11:34 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.infrastructure.URIModificationChecker$1.done(URIModificationChecker.java:122)
10:11:34 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.SwingWorker$5.run(SwingWorker.java:737)

Mail sent to Jos : "problem with mixing [] blocks and rdf:List"

Hi Jos

FYI I have currently empty results in my SWRL to N3 translator.

So I boiled my EYE problem to something simple that CWM "understands" and EYE not :

@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.

@keywords a, is, of.

@prefix : <http://ex.com#>.

s a Z1 ;

p [ a rdf:List ;

rdf:rest rdf:nil ;

rdf:first [ p1 v1 ]

# rdf:first f # works !

] .

The EYE result is (the list content is completely left out ) :

:s a :Z1.

:s :p (_:e2).

Note that at some point in the past it may have worked, but I'm not sure.

FYI this came from an RDF representation of a SWRL rule, as serialized by OWL API 3.4.3 (have to upgrade to 3.4.4 ).

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

% /tmp/eye/linux/bin/yap -q -f 2006/02swap/euler.yap -g main -- ~/src/eulergui-code/eulergui/examples/list_bug.n3 --nope --pass
Id: euler.yap 6294 2013-05-26 20:05:51Z josd
YAP 6.2.3 (i686-linux): Sat Jun 16 23:34:26 CEST 2012
 ......

:s a :Z1.
:s :p (_:e2).
_:e2 :p1 :v1.

<jmvanel> Jos did it !!!!!!!!!!!! :)

Now the translation of ACE into N3 works again :

{?t0 ns2:has-as-friend ?t3. ?t0 a ns2:person. ?t0 owl:differentFrom ?t1. ?t1 ns2:has-as-friend ?t3. ?t1 a ns2:person. ?t2 ns2:has-as-friend ?t0. ?t2 ns2:has-as-friend ?t1. ?t2 a ns2:user. ?t3 owl:differentFrom ?t2} => {?t3 ns2:is-a-proposed-friend-for ?t2}.

from:

If a user U has-as-friend a person X, and has-as-friend a person Y,

and X is not Y,

and X has-as-friend Z, and Y has-as-friend Z, and Z is not U

then Z is-a-proposed-friend-for U.

<sirdancealot> umm...what software does this translation?

<jmvanel> well, first ATTEMPTO outputs OWL+SWRL ;

<jmvanel> actually in this case OWL file contains almost only SWRL

<jmvanel> then an N3 rules base creates the N3 rules

<sirdancealot> what base?

<sirdancealot> i ask because nothing that attempto outputs is immediately usable for reasoning...theres the RACE thingy..but i never even found the sources of it..

<jmvanel> rule base contained in this EG project https://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3p

<jmvanel> Norbert waits nutil he is happy with it to disclose it :(

<sirdancealot> :D

<sirdancealot> this stuff should be really written down somewhere..

<jmvanel> which stuff should be really written down somewhere ?

<sirdancealot> about 10 years ago, i tried to start a project catalogizing software libraries. each library has functions and each function has inputs and outputs of various types...

<jmvanel> you mean this : http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L6096 ?

<jmvanel> sounds interesting

<jmvanel> I'm also interested in the semantics, features and dc:subject of a piece of software

Neo4J

Running Neo4J client

http://stackoverflow.com/questions/tagged/neo4j

http://docs.neo4j.org/chunked/milestone/re02.html#shell-manpage

du -h -s  ~/src/neo4j-jmv/target/neo4j-hello-db
4,0G /home/jmv/src/neo4j-jmv/target/neo4j-hello-db

cd ~/apps/neo4j-enterprise-1.9/
bin/neo4j-shell -path  ~/src/neo4j-jmv/target/neo4j-hello-db
NOTE: Local Neo4j graph database service at '/home/jmv/src/neo4j-jmv/target/neo4j-hello-db'
Welcome to the Neo4j Shell! Enter 'help' for a list of commands
neo4j-sh (0)$ 

Let's start with Aristotle:

<http://dbpedia.org/resource/Aristotle>

The index name created during loading is: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#>" . But this fails for syntactic reasons:

START n=node:"<http://www.w3.org/1999/02/22-rdf-syntax-ns#>"(key = "<http://dbpedia.org/resource/Aristotle>")
RETURN n

On #neo4j IRC: NO ANSWER :((((

<jmvanel> my index name is : <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

<jmvanel> I want to make a query like : START n=node:index_name(key="XXXX")

<jmvanel> how to deal with a complex index name like this ?

<jmvanel> ( it took > 3h to load the data )

I don't know how to put all the query on a single line:

START n=node(1); RETURN n;

This works !

neo4j-sh (0)$ START n=node(10000)
> RETURN n;          
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| n                                                                                                                                                                                                                                                        |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Node[10000]{<http://xmlns.com/foaf/0.1/name>:""Bertram",<http://dbpedia.org/ontology/birthDate>:""1870-07-27"^^<http://www.w3.org/2001/XMLSchema#date>",<http://dbpedia.org/ontology/deathDate>:""1927-08-15"^^<http://www.w3.org/2001/XMLSchema#date>"} |

How to time a query ?

TO BE CONTINUED!

Mail to Neo4J list : wrote a program to load dbPedia data into Neo4J

http://docs.neo4j.org/chunked/milestone/re02.html#shell-manpage

Subscribed : https://groups.google.com/forum/?fromgroups#!forum/neo4j

Hi

I'm new to Neo4J.

My goal was to load as quickly as possible some dbPedia data files into Neo4J .

I found no CSV dump of dpPedia. There may be CSV dumps out of the Wikipedia dump but I didn't look for them ...

I took the option of using the Neo4J API to load triple by triple the content of the dbPedia data files into Neo4J. I know that there are tools to bridge Neo4J and semantic web, but I didn't want add yet another dependency. There is no need of any special parser or semantic web tool, as the N-triples format is very easy to parse.

So I wrote a loader for a Turtle / N-Triples file format of the semantic web :

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui_neo4j/eulergui/src/main/java/eulergui/neo4j/TurtleLoader.java

It has only a dependency to latest Neo4J.

With this I loaded a 2 Gb semantic web file from dbpedia.org 3.8 :

mappingbased_properties_en.ttl

I has 20 millions triples.

The loading time is > 3 hours !

The loader does one transaction every 10,000 triples. Maybe this is not the optimal figure.

I think I do some sub-optimal things related to searching if a triple or URI (node) is already there in Neo4J before adding it.

Any comment welcome.

2013-05-25

http://www.missioncriticalit.com/demo.html

https://bitbucket.org/ttmrichter/turing/

Michael Richter , Wuhan, Hubei, China

TODO : upgrade OWL API to 3.4.4

<jmvanel> Is there is way to force current Turtle Jena writer to write ( ) for lists ?

DCG tutorial

http://www.pathwayslms.com/swipltuts/dcg/index.html#anchintro

some_terminals --> [this, is, a, teminal],

We shall use the nonterminal as//0

Notation : A DCG head with functor f and arity N is referred to as f//N to distinguish it from a regular Prolog predicate, which we refer to as f/N. : should be said early !!!!!!!!!!

1_4 Variables in Body : more details welcome !!!!!!!!

Polya, Knuth, Minsky

<rszeno> you know this http://en.wikipedia.org/wiki/Sam_Loyd

<rszeno> ?

<jmvanel> no

<rszeno> his work and and polya, http://en.wikipedia.org/wiki/Polya

<rszeno> was my first steps to math

<rszeno> loyd was very interested in analysing blackbox based on input and output expreiments

<rszeno> what is today transfer characteristic if i'm not wrong

<rszeno> studing polya work i found that guessing or waiting for inspiration is not a way to solve problems, :)

<rszeno> and math is only a set of arbitrary rules

<rszeno> well, i didn't know that Donald Knuth was Polya student, :)

<rszeno> Marvin Minsky said in his influential paper Steps Toward Artificial Intelligence that "everyone should know the work of George Pólya on how to solve problems."

<rszeno> i had a translation of this book, http://en.wikipedia.org/wiki/How_to_Solve_It

<rszeno> btw, a scanned version is at the bottom of the page

https://notendur.hi.is/hei2/teaching/Polya_HowToSolveIt.pdf

Regression with ACE in EulerGUI (continued)

<jmvanel> chasing a bug in translating ACE to N3 through SWRL :(

eye --nope \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3 \
facebook-rules-from-ace.n3 \
--query http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3

0 results :((((((((

d=~/src/deductions/n3_new
eye --nope \
$d/owl-subclass-assertions-to-rules.n3 \
$d/variableSubstitution.n3 \
$d/swrl-n3-rules.n3 \
facebook-rules-from-ace.n3 \
--query $d/swrl-n3-rulesQ.n3

0 results :((((((((

EULER=2012-06
d=~/src/deductions/n3_new/
java -classpath /home/jmv/.m2/repository/euler/euler/${EULER}/euler-${EULER}.jar  euler.ProofEngine --nope $d/owl-subclass-assertions-to-rules.n3 $d/variableSubstitution.n3 $d/swrl-n3-rules.n3 facebook-rules-from-ace.n3 --query $d/swrl-n3-rulesQ.n3

0 results :((((((((

EULER=2013-04
d=~/src/deductions/n3_new/
java -classpath /home/jmv/.m2/repository/euler/euler/${EULER}/euler-${EULER}.jar euler.ProofEngine --nope
$d/variableSubstitution.n3 $d/swrl-n3-rules.n3 facebook-rules-from-ace.n3 --query $d/swrl-n3-rulesQ.n3

From EulerGUI 1.8 : rectangle.owl : empty answer ;((((((((((

#################################################################
#    Rules
#################################################################

<urn:swrl#x2> rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
<urn:swrl#x4> rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
<urn:swrl#x1> rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
<urn:swrl#x6> rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
<urn:swrl#xg1> rdf:type <http://www.w3.org/2003/11/swrl#Variable> .
[ rdf:type <http://www.w3.org/2003/11/swrl#Imp> ;
  <http://www.w3.org/2003/11/swrl#body> [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                          rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                                     rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                                                rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                                                           rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#IndividualPropertyAtom> ;
                                                                                       <http://www.w3.org/2003/11/swrl#propertyPredicate> :have ;
                                                                                       <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x1> ;
                                                                                       <http://www.w3.org/2003/11/swrl#argument2> <urn:swrl#x2>
                                                                                     ] ;
                                                                           rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                                                                      rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                                                                                 rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#BuiltinAtom> ;
                                                                                                             <http://www.w3.org/2003/11/swrl#builtin> <http://www.w3.org/2003/11/swrlb#equal> ;
                                                                                                             <http://www.w3.org/2003/11/swrl#arguments> ( <urn:swrl#x6>
                                                                                                                                                          <urn:swrl#xg1>
                                                                                                                                                        )
                                                                                                           ] ;
                                                                                                 rdf:rest [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                                                                                            rdf:rest rdf:nil ;
                                                                                                            rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#BuiltinAtom> ;
                                                                                                                        <http://www.w3.org/2003/11/swrl#builtin> <http://www.w3.org/2003/11/swrlb#multiply> ;
                                                                                                                        <http://www.w3.org/2003/11/swrl#arguments> ( <urn:swrl#xg1>
                                                                                                                                                                     <urn:swrl#x2>
                                                                                                                                                                     <urn:swrl#x4>
                                                                                                                                                                   )
                                                                                                                      ]
                                                                                                          ]
                                                                                               ] ;
                                                                                      rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#IndividualPropertyAtom> ;
                                                                                                  <http://www.w3.org/2003/11/swrl#propertyPredicate> :have ;
                                                                                                  <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x1> ;
                                                                                                  <http://www.w3.org/2003/11/swrl#argument2> <urn:swrl#x4>
                                                                                                ]
                                                                                    ]
                                                                         ] ;
                                                                rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#ClassAtom> ;
                                                                            <http://www.w3.org/2003/11/swrl#classPredicate> :rectangle ;
                                                                            <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x1>
                                                                          ]
                                                              ] ;
                                                     rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#ClassAtom> ;
                                                                 <http://www.w3.org/2003/11/swrl#classPredicate> :length ;
                                                                 <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x4>
                                                               ]
                                                   ] ;
                                          rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#ClassAtom> ;
                                                      <http://www.w3.org/2003/11/swrl#classPredicate> :length ;
                                                      <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x2>
                                                    ]
                                        ] ;
  <http://www.w3.org/2003/11/swrl#head> [ rdf:type <http://www.w3.org/2003/11/swrl#AtomList> ;
                                          rdf:rest rdf:nil ;
                                          rdf:first [ rdf:type <http://www.w3.org/2003/11/swrl#IndividualPropertyAtom> ;
                                                      <http://www.w3.org/2003/11/swrl#propertyPredicate> :has-surface ;
                                                      <http://www.w3.org/2003/11/swrl#argument1> <urn:swrl#x1> ;
                                                      <http://www.w3.org/2003/11/swrl#argument2> <urn:swrl#x6>
                                                    ]
                                        ]
] .

###  Generated by the OWL API (version [Not Released]) http://owlapi.sourceforge.net

This old case works : deductions/n3_new/eg test_swrl_to_n3.n3p

@prefix :        <http://www.w3.org/2003/11/swrl#> .
@prefix swrl:    <http://www.w3.org/2003/11/swrl#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<http://owldl.com/ontologies/dl-safe.owl#BadChildRule>
      a       swrl:Imp ;
      swrl:body ([ a       swrl:ClassAtom ;
                  swrl:argument1 <http://owldl.com/ontologies/dl-safe.owl#x> ;
                  swrl:classPredicate <http://owldl.com/ontologies/dl-safe.owl#Grandchild>
                ] [ a       swrl:IndividualPropertyAtom ;
                  swrl:argument1 <http://owldl.com/ontologies/dl-safe.owl#x> ;
                  swrl:argument2 <http://owldl.com/ontologies/dl-safe.owl#y> ;
                  swrl:propertyPredicate
                          <http://owldl.com/ontologies/dl-safe.owl#sibling>
                ] [ a       swrl:IndividualPropertyAtom ;
                  swrl:argument1 <http://owldl.com/ontologies/dl-safe.owl#x> ;
                  swrl:argument2 <http://owldl.com/ontologies/dl-safe.owl#y> ;
                  swrl:propertyPredicate
                          <http://owldl.com/ontologies/dl-safe.owl#hates>
                ]) ;
      swrl:head ([ a       swrl:ClassAtom ;
                  swrl:argument1 <http://owldl.com/ontologies/dl-safe.owl#x> ;
                  swrl:classPredicate <http://owldl.com/ontologies/dl-safe.owl#BadChild>
                ]) .

<http://owldl.com/ontologies/dl-safe.owl>
      a       owl:Ontology .

Continue Neo4J loading dbPedia

% wc ~/data/dbpedia.org_3.8/mappingbased_properties_en.ttl
20_516_861 87606235 2747310373 /home/jmv/data/dbpedia.org_3.8/mappingbased_properties_en.ttl

Load time evaluated to 70mn.

TurtleLoader.load( /home/jmv/data/dbpedia.org_3.8/mappingbased_properties_en.ttl ): time elapsed: 11_855_025

3h20 !!!!

Retried without filltering duplicate relationships:

TurtleLoader.load( /home/jmv/data/dbpedia.org_3.8/mappingbased_properties_en.ttl ): time elapsed: 14691 s

opencyc

http://www.cyc.com/platform/opencyc

<jmvanel> wget http://www.cyc.com/sites/default/files/downloads/opencyc-latest.owl.gz

<jmvanel> They also have SPARQL : http://www.cyc.com/platform/opencyc/sw

<jmvanel> no SPARQL aparently

<jmvanel> maybe URL's returning RDF , but broken links

<rszeno> is normal is sw, :)

http://protege-ontology-editor-knowledge-acquisition-system.136.n4.nabble.com/Opencyc-OWL-file-load-in-protege-td4529575.html

http://www.cyc.com/enterprise-solutions/solutions

Searched Prolog projects from Google Code

In general most projects are infrastructure projects. I couldn't find any project that do useful things in real world. Searched also is sf.net and github.

I guess most existing such projects are embeded in commercial software or interprises.

<ttmrichter> Keep in mind that F/OSS tends to be a collection of fashionable cargo cults.

<ttmrichter> Prolog (and logic programming in general) is not currently the fashionable thing so you won't find much in the way of Prolog in F/OSS.

<jmvanel> makes sense

* ttmrichter may have a wee bit of a jaundiced view of F/OSS, but…

<jmvanel> :) wordnet : 1. jaundice -- (distort adversely; "Jealousy had jaundiced his judgment")

<jmvanel> I know a guy who works full time in a bank in a Prolog dialect :) .

<jmvanel> Also, Ive met the CO of http://www.missioncriticalit.com/ ; they have an infrastructure for business applications based on Semantic Web and the Mercury laguage .

http://code.google.com/p/prolog-cafe/

http://code.google.com/p/scalalogic/

http://code.google.com/p/grasp/

2013-05-24

http://en.wikipedia.org/wiki/Kim_Dotcom

Rule base hub

Such a site would be widely useful if well done, and the ecosystem takes: "rule base hub", "collaborative Knowledge site"; "collective intelligence" .

<jmvanel> it's frustrating that the vision IS not enough supported by tools

<jmvanel> my vision == defining and retrieving semantics , and making use of it for sotfware

<rszeno> you have a plan? :)

<jmvanel> latest gotten in the metro :

<jmvanel> latest ideas gotten in the metro :

Looking for cool Prolog stuff

http://cutebouncingbunnies.wordpress.com/

https://github.com/Anniepoo

http://stackoverflow.com/users/986642/anniepoo

https://twitter.com/anniepoo

<jmvanel> I'm looking for nice Prolog apps to show to my students.

<Anniepoo> ooh!

<Anniepoo> A teacher 8cD

<jmvanel> atm I'm looking chatbots

<Anniepoo> well, do us all a HUUUGE favor - don't teach Prolog by 'toy problems'

<jmvanel> I don't :)

<Anniepoo> hmm... there's probably several implementations of chatbots in Prolog running around

<Anniepoo> sweet!

<jmvanel> any domain is good

<Anniepoo> I've got a library of web 'widgets'

<jmvanel> it's just to demonstrate that useful things in real world can be done

<Anniepoo> that might be a really suprising thing for them to see

<Anniepoo> here's some stuff of mine

<jmvanel> and a simple apps based on those widgets ?

<jmvanel> or just a "gallery""

<Anniepoo> yes, it comes with a 'demo' that's just that

<jmvanel> :)

<Anniepoo> it brings up a simple web page that has links to demos for various parts

git clone https://github.com/Anniepoo/weblog.git

Google has disabled use of the Maps API for this application. The provided key is not a valid Google API Key, or it is not authorized for the Google Maps Javascript API v2 on this site. If you are the owner of this application, you can learn about obtaining a valid key here: http://code.google.com/apis/maps/documentation/javascript/v2/introduction.html#Obtaining_Key

<Anniepoo> https://github.com/Anniepoo/spiderman

<Anniepoo> that's a site spidering tool

<ttmrichter> So, you're saying no Fibonacci numbers or *shudder* family trees in your class, jmvanel?

<Anniepoo> https://github.com/Anniepoo/prolog-examples

<Anniepoo> bunch of short examples (many are 'toy problem' style - might look at cannibals2nocomments, which solves the cannibals and missionaries proble, but is a 'real program'

<Anniepoo> https://github.com/Anniepoo/weblog

<Anniepoo> here's the web library

<jmvanel> Merci beaucoup !!!!!!

<Anniepoo> here's an RDF store and SPARQL server

<Anniepoo> cliopatria.swi-prolog.org

<jmvanel> I like that :) but I never got time to look at cliopatria

<Anniepoo> here's the New Zealand stock market -

<Anniepoo> well, they apparently supply the software used to clear trades

<Anniepoo> http://www.securitease.co.nz/

<Anniepoo> anyway, they're a HUGE volume application

<Anniepoo> http://www.pathwayslms.com/swipltuts/html/index.html#intro Creating Web Applications in SWI-Prolog , by Anne Ogborn

<Anniepoo> image in this tutorial shows a mass of prolog web apps

<Anniepoo> this quiz site is from my work. We use it to deliver quizzes in a virtual world

<Anniepoo> http://hhpvirtual.net:5000/q?qnum=0&quiz=RT

<Anniepoo> the prof's make the questions up and mark them up in a simple markup langauge

<Anniepoo> I read that with a DCG

<jmvanel> ok

<Anniepoo> https://github.com/rla/blog

<Anniepoo> raivo's blog software

<Anniepoo> http://rlaanemets.com/post/show/projects

<Anniepoo> his list of projects

<Anniepoo> oh, one more large thing - the first Euler implementation

<jmvanel> I use Jos de Roo's Euler a lot :)

* ohcibi_ est parti (Ping timeout: 256 seconds)

<Anniepoo> http://prolog-commons.org/PrologCommons.html/PrologCommonsfulltoc.html

<Anniepoo> big set of prolog libs

<Anniepoo> http://www.j-paine.org/prolog/library.html

<jmvanel> I'll put your links on my blog : http://jmvanel.free.fr/computer-notes.html

<jmvanel> ( that 's a real log like a captain does, not a blog to look smart

Misc program trials

Trying AnniePoo's spiderman program:

git clone https://github.com/Anniepoo/spiderman.git

?- spider('http://www.deductions-software.com/', Uris,  Links).
 ...
external http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#????
Uris = [external-'http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#????', misformed-'irc:irc.freenode.net#eulergui', external-'http://twitter.com/jmvanel', misformed-'mailto:jeanmarc.vanel@gmail.com', internal-'http://www.deductions-software.com/contacts.html', internal-'http://www.deductions-software.com/technology.html', internal-'http://www.deductions-software.com/support-and-services.html', internal-'http://www.deductions-software.com/products.html', ... - ...|...],
Links = ['http://www.deductions-software.com/'-'http://www.deductions-software.com/style/deductions.css', 'http://www.deductions-software.com/'-'http://jmvanel.free.fr/jmv.rdf', 'http://www.deductions-software.com/'-'http://www.deductions-software.com/index.html', 'http://www.deductions-software.com/'-'http://www.deductions-software.com/index.fr.html', 'http://www.deductions-software.com/'-'http://www.deductions-software.com/products.html', 'http://www.deductions-software.com/'-'http://www.deductions-software.com/support-and-services.html', 'http://www.deductions-software.com/'-'http://www.deductions-software.com/technology.html', 'http://www.deductions-software.com/'-'http://www.deductions-software.com/contacts.html', ... - ...|...] .

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

Source code to "birds" expert system:

http://www.amzi.com/AdventureInProlog/appendix.php#Birds

eliza etc in Prolog

<jmvanel> So far I started a eliza clone , but it's bad :

wget http://cs.nyu.edu/courses/fall11/CSCI-GA.2110-003/documents/eliza.pl

<jmvanel>

?- [eliza].
Hello. I am ELIZA. How can I help you?
> I'm suffering.
What makes you think I am suffering?

Compare with a good Eliza: http://nlp-addiction.com/eliza/

https://www.google.fr/searchq=prolog+chatbot

http://moxie.oswego.edu/~odendahl/coursework/csc350/eg-programs/keyword-systems/chatbot/

wget http://moxie.oswego.edu/~odendahl/coursework/csc350/eg-programs/keyword-systems/chatbot/chatbot.txt

sample execution script : http://moxie.oswego.edu/~odendahl/coursework/csc350/eg-programs/keyword-systems/chatbot/script-a.txt

http://www.chatbots.org/

<rszeno> btw, about bots, http://rubberducky.org/cgi-bin/chomsky.pl

<rszeno> imo the ideas behind alice and chomsky are more interesting then what was implemented, :)

Rebuiling SWI Prolog from scratch from git

<Anniepoo> http://www.swi-prolog.org/git.html

<Anniepoo> instructions for building

<Anniepoo> (high on my list for cleanup)

<jmvanel> but, see, these instructions are different from the INSTALL on git .

<Anniepoo> I'd use the site instructions

<jmvanel> ok

<Anniepoo> (I believe the build script just does this under the covers anyway)

<jmvanel> but will that install all packages that have dependencies satisfied ?

<Anniepoo> if you installed from package before, the dependencies should be good

<jmvanel> ./prepare said : The following submodules are not up-to-date .... packages/http etc

<jmvanel> good

<Anniepoo> cool

<Anniepoo> did it update them>?

<jmvanel> yes it downloaded stuff

<Anniepoo> sounds good

<jmvanel> Submodule path 'packages/http': checked out '65e8e27056b67aa08865eabd163c707290f05356'

<jmvanel> etc

<jmvanel> it said :

<jmvanel> Please consult INSTALL for further instructions.

<jmvanel> but I'll do ./buid

Starting :

/home/jmv/lib/swipl-6.3.15/bin/x86_64-linux/swipl

<jmvanel> but http_get/3 is not there :(

<jmvanel> it's maybe a library path problem

<jmvanel> so I did exactly what's on http://www.swi-prolog.org/git.html , but http_get/3 is not there :(

<jmvanel> I know that once in the past I had it , but can't remember how

<jmvanel> is there a command to list packages actually avalaible ?

<jmvanel> available

<jmvanel> But starting doc_browser. i see that it's there : http://localhost:49534/doc/swi/library/http/http_client.pl

<jmvanel> I got it !!!!!!

<jmvanel> must prefix with package :

 http_client:http_get( 'jmvanel.free.fr/ingesup/coursTRS2013/travel.pl' , D, [] ).

<jmvanel> works !!!

also with http: prefix

http_client:http_get( 'http://jmvanel.free.fr/ingesup/coursTRS2013/travel.pl' , D, [] ).

<jmvanel> now I think that it's not possible to have this package through Ubuntu packages ...

<jmvanel> In fact my students have the whole range of machines :(

Machine learning links

I saw the end of this talk , and I want to learn more:

https://speakerdeck.com/ogrisel/trends-in-machine-learning

http://conference.scipy.org/scipy2013/keynotes.php

Improving neural networks by preventing co-adaptation of feature detectors

G. E. Hinton , N. Srivastava, A. Krizhevsky, I. Sutskever and R. R. Salakhutdinov

http://arxiv.org/pdf/1207.0580.pdf

http://deeplearning.net/software/theano/

http://deeplearning.net/software/pylearn2/

http://scikit-learn.org/

https://github.com/pymc-devs/pymc

http://openreview.net/iclr2013

http://en.wikipedia.org/wiki/Deep_learning

http://en.wikipedia.org/wiki/Overfitting

https://sites.google.com/site/carlosbecker/resources/gradient-boosting-boosted-trees

<jmvanel> https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers#readme

<jmvanel> a free book

http://library.bayesia.com/download/attachments/4882740/wbcd_v11.pdf?version=1&modificationDate=1369057878000

2013-05-22

Hi Is there a convenience to get an editor from a primitive class ?

16:16:23 [LaunchOWLReasoner: doap.n3] [error] n3: N3Source.manageN3Cache() 1: n3Source.location(): file:/home/jmv/ontologies/doap.n3
16:16:24 [LaunchOWLReasoner: doap.n3] [error] n3: Exception in thread "LaunchOWLReasoner: doap.n3" 
16:16:24 [LaunchOWLReasoner: doap.n3] [error] n3: java.lang.IllegalAccessError: tried to access field com.hp.hpl.jena.reasoner.BaseInfGraph.isPrepared from class org.mindswap.pellet.jena.PelletInfGraph
16:16:24 [LaunchOWLReasoner: doap.n3] [error] n3:  at org.mindswap.pellet.jena.PelletInfGraph.performAdd(PelletInfGraph.java:541)
16:16:24 [LaunchOWLReasoner: doap.n3] [error] n3:  at com.hp.hpl.jena.graph.impl.GraphBase.add(GraphBase.java:202)
16:16:24 [LaunchOWLReasoner: doap.n3] [error] n3:  at org.apache.jena.riot.system.StreamRDFLib$ParserOutputGraph.triple(StreamRDFLib.java:150)

<jmvanel> did the questionnaire :) , now doing a stand alone app that takes the mini-ontology as argument .

<jmvanel> COMMIT : - add samples/N3FormApp.java

<jmvanel> tested with new examples/questionnaire.n3

<jmvanel> TODO : for Booleans, user must type "true" or false : need a check box

<jmvanel> - enhance unwrapQuotes for """

<jmvanel> - add TripleStoreHelper.searchByObjectAndPredicate()

http:///jmvanel.free.fr/offre_services/questionnaire.html

Loading 2G of one dbpedia in neo4j

First trial :

<jmvanel> Neo4J takes 100% of 2 CPU's and 1G of memory.

ls -l ~/data/dbpedia.org_3.8/mappingbased_properties_en.ttl 
-rw-rw-r-- 1 jmv jmv 2747310373 juil. 25  2012 /home/jmv/data/dbpedia.org_3.8/mappingbased_properties_en.ttl

With a bad result :

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.lang.Long.valueOf(Long.java:577)
at org.neo4j.kernel.impl.nioneo.store.IdGeneratorImpl.freeId(IdGeneratorImpl.java:296)
at org.neo4j.kernel.impl.nioneo.store.CommonAbstractStore.freeId(CommonAbstractStore.java:361)
at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.doRollback(WriteTransaction.java:295)
at org.neo4j.kernel.impl.transaction.xaframework.XaTransaction.rollback(XaTransaction.java:281)
at org.neo4j.kernel.impl.transaction.xaframework.XaResourceManager.rollback(XaResourceManager.java:535)
at org.neo4j.kernel.impl.transaction.xaframework.XaResourceHelpImpl.rollback(XaResourceHelpImpl.java:111)
at org.neo4j.kernel.impl.transaction.TransactionImpl.doRollback(TransactionImpl.java:594)
at org.neo4j.kernel.impl.transaction.TxManager.rollback(TxManager.java:583)
at org.neo4j.kernel.impl.transaction.TransactionImpl.rollback(TransactionImpl.java:147)
at org.neo4j.kernel.TopLevelTransaction.finish(TopLevelTransaction.java:131)
at jmv.TurtleLoader.load(TurtleLoader.java:105)
at jmv.TurtleLoader.load(TurtleLoader.java:45)
at jmv.TurtleLoader.main(TurtleLoader.java:34)

<jmvanel> I did only one transaction to load a 2G semantic web file; it crashes with OutOfMemoryError on tx.finish ();

<jmvanel> I should probably cut into multiple transactions;

<jmvanel> may be once every 10,000 triples?

<jmvanel> I try this ;

<jmvanel> I wonder if there is an optimal chunk size for loading, given the available memory ?

TurtleLoader.load( /home/jmv/data/dbpedia.org_3.8/mappingbased_properties_en.ttl ): time elapsed: 16816579

That is , 4h 40 ! :(((((((( The load time is too long !

I think I do some sub-optimal things related to searching if a triple or URI (node) is already there before adding it.

Anyway I have something loaded, and I can try some queries now !

I commited the source here :

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui_neo4j/eulergui/src/main/java/eulergui/neo4j/TurtleLoader.java

This happened when I tried by mistake to start the program again when another instance was running:

Exception in thread "main" java.lang.RuntimeException: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.StoreLockerLifecycleAdapter@58b942f7' was successfully initialized, but failed to start. Please see attached cause exception.
at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:281)
at org.neo4j.kernel.EmbeddedGraphDatabase.<init>(EmbeddedGraphDatabase.java:106)
at org.neo4j.graphdb.factory.GraphDatabaseFactory$1.newDatabase(GraphDatabaseFactory.java:88)
at org.neo4j.graphdb.factory.GraphDatabaseBuilder.newGraphDatabase(GraphDatabaseBuilder.java:207)
at org.neo4j.graphdb.factory.GraphDatabaseFactory.newEmbeddedDatabase(GraphDatabaseFactory.java:69)
at eulergui.neo4j.TurtleLoader.<init>(TurtleLoader.java:38)
at eulergui.neo4j.TurtleLoader.main(TurtleLoader.java:34)
Caused by: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.StoreLockerLifecycleAdapter@58b942f7' was successfully initialized, but failed to start. Please see attached cause exception.
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:497)
at org.neo4j.kernel.lifecycle.LifeSupport.start(LifeSupport.java:104)
at org.neo4j.kernel.InternalAbstractGraphDatabase.run(InternalAbstractGraphDatabase.java:259)
 ... 6 more
Caused by: org.neo4j.kernel.StoreLockException: Could not create lock file
at org.neo4j.kernel.StoreLocker.checkLock(StoreLocker.java:85)
at org.neo4j.kernel.StoreLockerLifecycleAdapter.start(StoreLockerLifecycleAdapter.java:40)
at org.neo4j.kernel.lifecycle.LifeSupport$LifecycleInstance.start(LifeSupport.java:491)
 ... 8 more

Possible demos for EulerGUI

kings_of_France-genealogy_smart.rq

family_kings.n3p

Regression with ACE in EulerGUI

The rules generating N3 from SWRL do not work anymore.

If a user U has-as-friend a person X, and has-as-friend a person Y, and X is not Y, and X has-as-friend Z, and Y has-as-friend Z, and Z is not U then Z is-a-proposed-friend-for U.

eye --nope \
--wcache http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3 /home/jmv/.eulergui/n3_cache/owl-subclass-assertions-to-rules.n3_769880242659540600.n3 \
--wcache http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3 /home/jmv/.eulergui/n3_cache/variableSubstitution.n3_3142305255704289430.n3 \
--wcache http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3 /home/jmv/.eulergui/n3_cache/swrl-n3-rules.n3_436768133905103082.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3 \
/tmp/eg-7985997962059199797.n3 \
--wcache http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3 /home/jmv/.eulergui/n3_cache/swrl-n3-rulesQ.n3_7349943467262081407.n3 \
--query http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3

eye --nope \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3 \
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3 \
/tmp/eg-7985997962059199797.n3 \
--query http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3

2013-05-21

http://couchdb.apache.org/

Leafsnap is an electronic field guide (leaf recognition) for tree and plant species in NE USA.

http://leafsnap.com/about/

Building Neo4J

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 23:57.869s
[INFO] Finished at: Tue May 21 19:35:01 CEST 2013
[INFO] Final Memory: 54M/367M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.neo4j.build.plugins:licensing-maven-plugin:1.7.5:check (enforce-licensing-oss) on project server-api: This project has 2 artifacts missing licensing information. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :server-api
oem-laptop: ~/src/neo4j-community/neo4j/

Neo4j + Semantic Web

Link on Neo4J + Semantic Web :

http://www.pearltrees.com/#/N-p=60400557&N-f=1_6483387&N-fa=5493979&N-s=1_6483387&N-u=1_581542

The goal is to load as quickly as possible some dbPedia data files into Neo4J .

I found no CSV dump of dpPedia. There may be CSV dumps out of the Wikipedia dump ...

I see 2 options:

  1. use the Neo4J API to load triple by triple the content of the dbPedia data files into Neo4J

    ( no need of any special parser or semantic web tool, as the N-triples fomat is very easy to parse )

    using the Neo4J API :

    http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-hello-world.html

  2. use neo4j-sparql-plugin https://github.com/neo4j/sparql-plugin

    I could mvn install it ; contists of a class SPARQLPlugin extends ServerPlugin

I think I'll use the solution 1 as the quickest way to load the RDF . Then I can use the solution 2 that seams to provide a SPARQL server on top of Neo4J .

Reference : Setting up a DBPedia SPARQL mirror with Jena , by me :) :

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/server-sparql-dbpedia.html

bunzip2 --stdout article_categories_en.ttl.bz2 | less
<http://dbpedia.org/resource/Autism> <http://purl.org/dc/terms/subject> <http://dbpedia.org/resource/Category:Communication_disorders> .

bunzip2 --stdout mappingbased_properties_en.ttl.bz2 | less
<http://dbpedia.org/resource/Animal_Farm> <http://dbpedia.org/ontology/author> <http://dbpedia.org/resource/George_Orwell> .

2013-05-20

machine learning , Andrew Ng , coursera

Gremlin langage pour les graphes

https://github.com/tinkerpop/gremlin/wiki

cypher langage versus N3 : nothing !!!!!!!!!!

http://docs.neo4j.org/chunked/stable/cypher-query-lang.html

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

http://code.google.com/p/ldspider/

http://www.u936.univ-rennes1.fr/dameron/publis/2012swat4ls-dameron.pdf

jmvanel> updated offre_services/questionnaire.html

<jmvanel> so that it applies both to OSS and non OSS projects

<jmvanel> :( no

<rszeno> why don't you put it?

<jmvanel> ( should be an expert system that crawls and answers to those questions ))

<rszeno> later you can write rules to process the answers

<jmvanel> you mean a questionnaire in N3 ?

<rszeno> sure, that is the presentation of data, a form or whatever, which collect answers and map to questions

<rszeno> yes

<rszeno> eg can display it and wait for answers, radiobuttons for y/n (o/n) or integers

<rszeno> it load the questionnaire in n3 and save results in n3

<rszeno> you have something parctical and usefull to show when somebody ask

<jmvanel> True that the new N3 form in Java is usable for that

<jmvanel> it does datatype validation

<jmvanel> enumerations ( oneOf ) , and language are not implemeted

<rszeno> you don't need oneOf

<jmvanel> But that's a very good idea.

<rszeno> nor the langtag

<jmvanel> sure , for a start I don't need this

<rszeno> for the begining you can do quest-fr.n3, quest-en.n3, ....

<jmvanel> the form displays rdfs:label ,

<rszeno> then merge them when you have langtags

<jmvanel> and rdfs:comment and range as a tooltip

<rszeno> yes and rdfs:label will be in fr, en, ...

<rszeno> don't overengeering this, :)

<jmvanel> sure ; atm only the first rdfs:label is displayed :(

<jmvanel> :)

<jmvanel> one more task on my plate :)

<rszeno> after the mail you forward me yesterday i think is a good oportunity to do this and show it later

<rszeno> is easy to do, so doesn't take to much time and have a good impact on who see it

<jmvanel> the mail I forward about the thesis ?

<rszeno> yes

<rszeno> is impossible to go there and to not talk with peoples about what you are doing, :)

2013-05-18

http://en.wikipedia.org/wiki/Web_testing#Open_Source_web_testing_tools

http://www.itea2-predykot.org/

<jmvanel> Working again on eulergui backward_chaining_sparql.html ,

<jmvanel> after a too long interruption for N3/OWL project file

In EYE, how can I use this takeout/3 definition inside a rule ?

% takeout( ELEM, FROM_LIST, RESULT ).
takeout(X,[X|R],R).
takeout(X,[F|R],[F|S]) :- takeout(X,R,S).

This is taken from this nice Prolog course : http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/2_7.html .

The N3 part using the Prolog would be something like this:

{ ?LIST process ?OUT
} <= {
  [] applyProlog( takeout ?LIST elem ?OUT ). # ???
}.
# test:
a b ( 1 2 3 ).
{ a b ?LIST . ?LIST process ?OUT} => { ?OUT a result }.

Answer here : list.pl ; list_plugin.n3

<rszeno> i hope you changed your mind about writing difficult stuff in N3 when you can use prolog, :)

<jmvanel> Yes. This is very fine , and now I'm equiped for my SPARQL stuff

<jmvanel> thanks for your help

<rszeno> welcome, :)

<rszeno> one note, you can call n3 builtins from prolog plugins and use retract and assert to add/remove global variables

<jmvanel> ok

<rszeno> is a big avantage because in n3 you can't retract anything and adding is monotonic

<jmvanel> right

Links

http://www.pathwayslms.com/swipltuts/dcg/

http://old-lipn.univ-paris13.fr/~essaidi/pages/index.html

http://odbis-project.sourceforge.net/pages/index.html

http://sourceforge.net/projects/odbis-project/?source=navbar

http://odbis-project.sourceforge.net/documentation/these-hillah-v1.5.pdf

http://dblp.uni-trier.de/db/conf/ijcci/ijcci2010-2.html#EssaidiO10

http://research.microsoft.com/apps/catalog/default.aspx

http://research.microsoft.com/apps/pubs/default.aspx?id=183717

http://research.microsoft.com/apps/pubs/default.aspx?id=192721

http://research.microsoft.com/en-us/projects/probase/

2013-05-18

<rszeno> you can compute factorial of 400000?

<rszeno> is boring to wait untill display the result

<jmvanel> compute factorial of 400000 , easy with Prolog and tail recursive rule .

<rszeno> i want to see this, :)

<rszeno> can you write it?

<jmvanel> I picked it in one site for my course :)

<jmvanel> must use an accumulator

<jmvanel> end of page : http://www.csupomona.edu/~jrfisher/www/prolog_tutorial/2_2.html

<jmvanel> already running for about 2 mn

<jmvanel> ?- factorial( 400000,1,F).

<jmvanel> got the result, but it took time to display

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

The EG fw should play well with all triple stores : SPARQL of course; Sesame, 4Store, Jena, Virtuoso, ...

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

Tests run: 211, Failures: 1, Errors: 2, Skipped: 0

Bad:

<> <http://eulergui.sf.net/ontology/project.owl.n3#subproject> <file:/home/jmv/src/deductions/clips/n3rulestoclips.n3p> .

http://datahub.io/group/lodcloud

Natural Language Processing with Python

Analyzing Text with the Natural Language Toolkit

By Steven Bird, Ewan Klein, Edward Loper

Publisher: O'Reilly Media

Released: June 2009

Pages: 504

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 365 in ApplicationKB))
ApplicationKB.projectLoaded(Project) line: 365
ProjectChangeSupport$$anonfun$fireProjectLoaded$1.apply(ProjectListener) line: 83
ProjectChangeSupport$$anonfun$fireProjectLoaded$1.apply(Object) line: 83
LinkedHashSet<A>.foreach(Function1<A,U>) line: 87
ProjectChangeSupport.fireProjectLoaded(Project) line: 83
Project.prepare() line: 1140
ProjectFactory.prepareProject(Project, boolean) line: 337
ProjectFactory.prepareProject(Project, URL, boolean) line: 329
ProjectGUI$2.run() line: 364
Thread.run() line: 722

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 365 in ApplicationKB))
ApplicationKB.projectLoaded(Project) line: 365
ProjectChangeSupport$$anonfun$fireProjectLoaded$1.apply(ProjectListener) line: 83
ProjectChangeSupport$$anonfun$fireProjectLoaded$1.apply(Object) line: 83
LinkedHashSet<A>.foreach(Function1<A,U>) line: 87
ProjectChangeSupport.fireProjectLoaded(Project) line: 83
Project.prepare() line: 1140
ProjectFactory.prepareProject(Project, boolean) line: 337
ProjectFactory.prepareProject(Project, URL, boolean) line: 329
ProjectGUI$2.run() line: 364
Thread.run() line: 722

2013-05-16

[ANN] Jena 2.10.1 released ! http://s.apache.org/jira-jena-2.10.1

Looking for examples of business applications (eg CRM, etc) backed by semantic Web techniques

<jmvanel> Hi looking for examples of business applications (eg CRM, etc) TDB or SDB backed

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

EulerGUI fixes

COMMITS

FEATURE: try RDFa on an HTTP URL : implementation use web service "http://www.w3.org/2012/pyRdfa/extract?uri="+url

Opening an old XML project, saving it new N3/OWL project format and opening the new N3/OWL project failed,

because this was not inserted in KB:

<> a owl:Ontology .

- upgrade Jena to latest ( TDB 0.10.1 => Jena )

- raise time to wait button displayed

tests on rev. 3543

Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "getText() Component Chooser "# search result of facebook-search.n3"(..)
  testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded

Tests run: 211, Failures: 1, Errors: 5, Skipped: 0

tests on rev. 3541

Results :

Failed tests:   testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)
  testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

Tests run: 211, Failures: 2, Errors: 2, Skipped: 0

TODO

See TODO EulerGUI

2013-05-14

eg org: &

does the same thing as

eg 'http://www.w3.org/ns/org#' &

Trying NG4J

cd ~/apps/ng4j-0.9.3/
gvim tabulator-devs.sparql
bin/semwebquery -sparqlfile tabulator-devs.sparql -retrieveduris

Trying Neo4J

3. in a browser, open [webadmin](http://localhost:7474/webadmin/)

4. from any REST client or browser, open (http://localhost:7474/db/data)

in order to get a REST starting point, e.g.

`curl -v http://localhost:7474/db/data`

bin/neo4j start
bin/neo4j stop

GUI components to explore a triple store !

TODO : integrate into EulerGUI roadmap

TODO for triple store GUI components

2013-05-11

Subversion settings : no password asked

Added this in ~/.subversion/servers

[global]
store-plaintext-passwords = yes 

TODO : how to avoid entering SVN password everytime: works on my laptop (Ubuntu), but not on my desktop (Mageia)

2013-05-10

mvn versions:display-dependency-updates
 ...
[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.ibm.icu:icu4j ..................................... 50.1.1 -> 51.1
[INFO]   com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.4
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   org.drools:drools-compiler ............. 5.5.1-SNAPSHOT -> 6.0.0.Beta2
[INFO]   org.scala-lang:scala-library ..................... 2.10.1 -> 2.11.0-M2
[INFO]   org.scala-lang:scala-swing ....................... 2.10.1 -> 2.11.0-M2

survey on Controlled Natural Languages (CNL) by Tobias Kuhn

Tobias Kuhn of [Attempto] project wrote a survey on Controlled Natural Languages that is accepted for publication in the Computational Linguistics journal. You can download the final version here:

http://attempto.ifi.uzh.ch/site/pubs/papers/kuhn2013cl.pdf

2013-05-08

COMMIT

FIX reading an N3 source in a sub-project in N3 format:

expand relative URI's in object position in facts when populating the KB (change in ParserLink)

tested with examples/newproject.n3p.n3

TEST Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 
  testSelectSPARQL(eulergui.gui.TestSPARQLInGUI): rowCount > 0
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains birthDate

Tests in error: 
  testN3SourcePrepare(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-4782382730160131680.n3 ; http://dbpedia.org/sparql
  testSquall(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-7460945779809328392.n3 ; http://dbpedia.org/sparql
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException

TODO

begin to clean Augean stables for URI's of Project class

% grep subproject.n3p.n3 /tmp/eg-6621487696417333640.n3
<file:/home/jmv/src/eulergui-code/eulergui/examples/newproject0.n3p.n3> <http://eulergui.sf.net/ontology/project.owl.n3#subproject> <subproject.n3p.n3> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <acceleration.n3> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> <http://www.w3.org/2000/01/rdf-schema#comment> "example: Proposal for a new N3 format for RDF + OWL + rules projects; this is an imported project." .
<subproject.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> .

The root cause: in main project there is this :

<> :subproject <subproject.n3p.n3> . # f1

where object is NOT expanded with base URI.

And in sub-project there is this :

<> owl:imports <acceleration.n3> .

which gets expanded as:

<file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <acceleration.n3> .

The rule for adding N3 source to projects ( here sub-project ) actually fires :

{ # r2
  ?ONTO owl:imports ?IMPORT.
  ?IMPORT log:uri ?IMPORT_URI .
} => {
  ?N3S a java:eulergui-project-N3Source .
  ?N3S java:URI ?IMPORT_URI .
  ?ONTO javam:addN3Source ( ?N3S ) .
  _:d eg:trace ( "addN3Source" ?ONTO ?N3S "?IMPORT_URI" ?IMPORT_URI ) .
}.

with trace:

#TRACE ( "addN3Source" <file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> _:sk_N3S_0 "?IMPORT_URI" "acceleration.n3" )

but the addN3Source Java method cannot fire because the sub-project is assigned as <subproject.n3p.n3> because of fact f1 and rule r4 :

{ # r4 TODO: like r5 but for subproject, not for postProcessing
  ?PROJ :subproject ?SUBPROJ .
  ?SUBPROJ log:uri ?SUBPROJ_URI .
  ?PROJ log:uri ?PROJ_URI .
  # ?PROJ java:uri ?URI.
  # ?PROJ log:notEqualTo <> .
  # ?PROJ log:notEqualTo "" .
} => {
  _:d eg:trace ( "?PROJ :subproject ?SUBPROJ" ?PROJ ?SUBPROJ ?SUBPROJ_URI ).
  ?SUBPROJ a owl:Ontology ;
    # javam:setUri ( ?SUBPROJ_URI ).
    # javam:setUri ( ?SUBPROJ_URI ?PROJ ) .
    javam:setBaseLocation( ?PROJ_URI ) .
  ?PROJ javam:addSubProject ( ?SUBPROJ ) .
  ?SUBPROJ javam:ensureSelfIsLoaded (?PROJ) .
}.

final IN3Model model = n3ParseResult.getModel();
private static final N3ModelToStringUtil n3ModelToStringUtil = /**/N3ModelToStringUtil.getInstance();
final String output = n3ModelToStringUtil.toString(model);

2013-05-06

Build succeeded for jsonld-java

cd ~/src/jsonld-java/
mvn clean install -DskipTests

Project 155 public void ensureSelfIsLoaded(Project baseProject ) {

[<file:/home/jmv/src/eulergui-code/eulergui/examples/newproject.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
, 
<subproject.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
, 
<file:/home/jmv/src/eulergui-code/eulergui/examples/subproject.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
, 
<project-post.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
]

2013-05-05

Blog by Ben Goertzel

http://multiverseaccordingtoben.blogspot.hk/2013/05/the-dynamics-of-attachment-and-non.html

NARS

The GUI still has bugs. For example, the menu item "View/Input Window" in MainWindow doesn't work, and so does some of the "close" buttons and "on/off" buttons (e.g., the window opened by "View/Concept Content"). I hope Jean-Marc can find the time to go through all the GUI components (specially buttons and menu items), to make sure they all work as before.

EulerGUI KB for sub-projects

orthograph : DeferredMethodCall ==> DeferedMethodCall

COMMIT

Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException

Tests run: 210, Failures: 1, Errors: 1, Skipped: 0

2013-04-29

http://www.impots.gouv.fr/portal/dgi/public/popup?espId=1&typePage=cpr02&docOid=documentstandard_2805&temNvlPopUp=true

2013-04-28

<jmvanel> did a side kick to fix new N3/OWL project for subproject and postprocessing ;

<jmvanel> this evening going back on SPARQL generation

<jmvanel> when i'm building my app with 5.5.1-SNAPSHOT , Maven checks every depot for Drools updates,; is there a way to say in pom that they are only in 1 place ?

2013-04-27

<rszeno> this is history, http://james-iry.blogspot.ro/2009/05/brief-incomplete-and-mostly-wrong.html

I like the mention of Joseph Marie Jacquard

<jmv> a Lyon guy too ;

<jmv> my primary shool was called Jacquard, on Jacquard street

<jmv> and when I walked to school I heard his weaving machines

<jmv> ;) "key algorithmic techniques such as recursion and condescension"[2].

<jmv> ;) Lambdas are relegated to relative obscurity until Java makes them popular by not having them.

<jmv> ;) a programming language that God wants His prophet, Larry Wall, to design.

<jmv> ;) Wadler tries to appease critics by explaining that "a monad is a monoid in the category of endofunctors, what's the problem?"

<jmv> there must be goodies in Iry's blog ...

EulerGUI new N3/OWL format

Save as new N3/OWL format does not save sub-project and post-processing project.

ProjectFactory line 419 !!!!!

Recover eclipse Scala+Java project after running mvn eclipse:eclipse

This .project for eclipse works for Scala + Java project:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>eulergui</name>
        <comment>Provides a GUI for the eulersharp.sourceforge.net Euler/SEM reasoning engine. The sources can be N3 (Notation 3), OWL, RDF(S), UML or eCore, files or URL&apos;s. It is becoming a lightweight IDE for Artificial Intelligence. NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.scala-ide.sdt.core.scalabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
                <buildCommand>
                        <name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
                        <triggers>full,incremental,</triggers>
                        <arguments>
                                <dictionary>
                                        <key>LaunchConfigHandle</key>
                                        <value>&lt;project&gt;/.externalToolBuilders/org.eclipse.jdt.core.javabuilder.launch</value>
                                </dictionary>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>
                <nature>org.scala-ide.sdt.core.scalanature</nature>
                <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>
</projectDescription>

I replaced the .project made by running mvn eclipse:eclipse with this one .

To recover the project after running mvn eclipse:eclipse , I also had to type in shell:

eclipse -clean

NARS

<jmv> I don't know why, but the tendency on downloads goes up again : http://code.google.com/p/open-nars/downloads/list

<jmv> It's modest, but let's hope for a bright future !

Working on SPARQL generation from a rule base

commited https://deductions.svn.sourceforge.net/svnroot/deductions/sparql/n3_chaining_sparql.n3

and updated http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/backward_chaining_sparql.html

2013-04-26

<dajobe> http://www.guardian.co.uk/news/datablog/2013/apr/26/wikidata-launch

-dc_swig/#swig- B: http://www.guardian.co.uk/news/datablog/2013/apr/26/wikidata-launch from dajobe

<dajobe> B:|wikidata launch

-dc_swig/#swig- Titled item B.

<dajobe> B:and work underway to [https://meta.wikimedia.org/wiki/Wikidata/Development/RDF|export to RDF]

-dc_swig/#swig- Added comment B1.

http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum

http://en.wikipedia.org/wiki/Comparison_of_server-side_JavaScript_solutions

http://en.wikipedia.org/wiki/V8_(JavaScript_engine)

<jmvanel> there are afaik js engines for server side

<rszeno> are few

<jmvanel> but I guess for js engine for server you need a Perl one

<rszeno> thua, :)

<rszeno> is still a toy but is working

<rszeno> is far to be efficient, this is the biggest problem now

<jmvanel> and v8 ?

<rszeno> nope, never ever

<rszeno> is a mess like webkit

<jmvanel> a mess about the code , or the bugs ? or the project mgmt ?

<rszeno> all three

http://www.mathstat.dal.ca/~selinger/papers/lambdanotes.pdf

<rszeno> compiling with continuation have the best presentation of lambda calculus

<rszeno> maybe peter selinger lambdanotes are as good

<rszeno> in fact are a compilation after cwc

<rszeno> i don't find the book but i guess i could find peter s. notes

<rszeno> yessss, http://www.mathstat.dal.ca/~selinger/papers.html#lambdanotes

http://www.mathstat.dal.ca/~selinger/papers/lambdanotes.pdf

<rszeno> short and good

<rszeno> the book is big but cover a lot of other things

<rszeno> it help to understand why exceptions are a particular case of continuation

<rszeno> in some condition

<rszeno> linus was wrong, Tanenbaum http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum was right, microkernel is the only way

<rszeno> but probably is too late

<jmv> tanenbaum

<rszeno> prepare yourself for new languages

mvn -Dtest=TestDroolsNPE test

2013-04-24

I'd like to unwrap a string, like :

"=bla=" . unwrap("=") ---> "bla"

avril 24 21:26:50 <jmvanel>wikipedia API question : how to retrieve the page URL from the pageid or the page title ?

avril 24 21:28:14 <Vulpix>jmvanel: prop=info&inprop=url

https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein

<page pageid="736" ns="0" title="Albert Einstein" />

https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&inprop=url

<page pageid="736" ns="0" title="Albert Einstein" touched="2013-04-23T15:50:22Z" lastrevid="551024514" counter="" length="102052" fullurl="https://en.wikipedia.org/wiki/Albert_Einstein" editurl="https://en.wikipedia.org/w/index.php?title=Albert_Einstein&amp;action=edit" />

https://en.wikipedia.org/w/api.php?action=query&titles=Albert%20Einstein&prop=info&inprop=url&format=json

https://www.mediawiki.org/wiki/API:Properties

http://www.mediawiki.org/wiki/MediaWiki

<jmvanel> Hi which call to API is used in upper right corner of Wikipedia to get the most likely pages begining with given string ?

http://en.wikipedia.org/w/api.php?action=opensearch&search=api&limit=10&namespace=0&format=jsonfm

http://www.mediawiki.org/wiki/Help:Namespaces

COMMIT

WikipediaCompletion.scala : using Wikipedia JSON API with action=opensearch

A closer look at dbpedia (Butterfly)

http://dbpedia.org/resource/Butterfly

dcterms:subject :

category:Butterflies

category:Pollinators

category:Lepidoptera

rdf:type :

owl:Thing

dbpedia-owl:Eukaryote

dbpedia-owl:Animal

dbpedia-owl:Species

dbpedia-owl:Insect

http://umbel.org/umbel/rc/EukaryoticCell

http://umbel.org/umbel/rc/BiologicalLivingObject

http://umbel.org/umbel/rc/Animal

http://umbel.org/umbel/rc/Insect

no rdfs:subclassOf

2013-04-23

Trying Apache Stanbol

http://stanbol.apache.org/docs/trunk/tutorial.html

Working on accelating GUI start

Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 
  test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<0>

Tests in error: 
  testRunRulesBefore(eulergui.project.TestDroolsNPE): Exception executing consequence for rule "project-java-rules2.n3 0" in project_java_rules2_n3_1: java.lang.NullPointerException
  testimportN3(eulergui.project.TestProjectWithSubProjects): Exception loading N3 URI test/import.n3p.n3

Tests run: 208, Failures: 2, Errors: 2, Skipped: 0

Thread [ApplicationKB initialization] (Suspended (breakpoint at line 500 in N3SourcetoDrools))
N3SourcetoDrools.addInfrastructureRules() line: 500
N3DroolsEngineFacade.addInfrastructureRules() line: 277
Project.doTranslateN32Drools(boolean, boolean) line: 897
Project.translateN32Drools(boolean) line: 847
Project.prepareDrools(boolean) line: 794
Project.prepareDrools() line: 772
RuleBasedApplicationStarter.prepareProject(Project) line: 89
RuleBasedApplicationStarter.startFromProject(Project) line: 66
ApplicationKB$Initializer.run() line: 79
Thread.run() line: 722

Drools bug report (NPE)

https://issues.jboss.org/browse/DROOLS-107

unit test for Drools NPE : finally got something with depends only on 3 non Drools classes : Assignment, Triple, TripleUser

2 rules , 5 inserts, 3 fireAllRules : the last one makes the NPE

package project_java_rules2_n3_1
import n3_project.helpers.Triple;
import n3_project.helpers.TripleList;
import n3_project.helpers.TripleResult;
import unif.TripleUser;
import eulergui.inference.drools.impl.Assignment;
import eulergui.inference.drools.impl.DeferredPropertyAssignment;
import eulergui.inference.drools.impl.DeferredMethodCall;
import eulergui.inference.drools.impl.DroolsN3EngineRuntime;
import java.util.ArrayList;
import java.util.Map;
global Map /*<Triple, Integer>*/ object2rule;
declare Assignment @typesafe( false ) end

rule "project-java-rules2.n3 0"
when
  $Triple_1 : Triple( $ONTO : subject, predicate == "<http://www.w3.org/2002/07/owl#imports>", $X : object )
then
  Triple newTriple;
  TripleResult newTripleResult;
  newTriple = new Triple(  );
  newTriple.setSubject( $ONTO );
  newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
  newTriple.setObject( "<http://www.w3.org/2002/07/owl#Ontology>" );  insertLogical( newTriple );
end

rule "application-rules4.n3 0"
when
  $GUI_reference : javax.swing.JFrame()
  Assignment( $GUI : name, reference == $GUI_reference )
  $Triple_1 : Triple( subject == "<http://java.sun.com/class#javax-swing-JFrame>", predicate == "<http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature>", $FEATURE : object )
then
  Triple newTriple;
  TripleResult newTripleResult;
  String $Action = Triple.resource("Action") ;
  newTriple = new Triple(  );
  newTriple.setSubject( $Action );
  newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
  newTriple.setObject( $FEATURE );  insertLogical( newTriple );
  System.out.println( "#TRACE ( " + "\"indirect instantiation\"" + " " + $GUI + " " + $Action + " " +  ")" );
end

2013-04-22

https://vaadin.com/comparison

KO:

#TRACE ( "indirect instantiation" ProjectGUI1 _:sk_Action_0 )
# Assign>> <http://eulergui.sourceforge.net/engine.owl#tripleStore> ==> class TripleStoreDrools : ruleBase: 45423624 - [[Package name=project_java_rules2_n3_1], [Package name=application_rules4_n3_0]]
# Assign>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> ==> class GUIKBAdapter : deductions.runtime.GUIKBAdapter@73fccd85
deductions.runtime.GUIKBAdapter@73fccd85
deductions.runtime.RuleBasedApplicationStarter@7578f73
javax.swing.JFrame[frame0,554,1080,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
# Assign>> ProjectGUI1 ==> class JFrame : javax.swing.JFrame[frame0,554,1080,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

_:sk_Action_0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
<http://java.sun.com/class#javax-swing-JFrame> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U
# Assign>> <http://eulergui.sourceforge.net/engine.owl#STORAGE> ==> class TripleStoreDrools : 
ruleBase: 45423624 - [[Package name=project_java_rules2_n3_1], [Package name=application_rules4_n3_0]]
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> . #U
# Assign>> <http://eulergui.sourceforge.net/engine.owl#applicationStarter> ==> class RuleBasedApplicationStarter : deductions.runtime.RuleBasedApplicationStarter@7578f73
avr. 22, 2013 9:08:34 PM eulergui.inference.drools.impl.DroolsHelper printWorkingMemory
WARNING: 14 objets sont actuellement dans la WorkingMemory.

OK:

org.drools.reteoo.ReteooStatefulSession@7e159698 2 objets sont actuellement dans la WorkingMemory.
ruleBase: 580156109 - [[Package name=project_java_rules2_n3_1], [Package name=application_rules4_n3_0]]
# Assign>> <http://eulergui.sourceforge.net/engine.owl#tripleStore> ==> class TripleStoreDrools : ruleBase: 580156109 - [[Package name=project_java_rules2_n3_1], [Package name=application_rules4_n3_0]]
deductions.runtime.GUIKBAdapter@6cd9625d
# Assign>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> ==> class GUIKBAdapter : deductions.runtime.GUIKBAdapter@6cd9625d
javax.swing.JFrame[frame0,554,1080,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
# Assign>> ProjectGUI1 ==> class JFrame : javax.swing.JFrame[frame0,554,1080,0x0,invalid,hidden,layout=java.awt.BorderLayout,title=,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]

<http://java.sun.com/class#javax-swing-JFrame> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U
# Assign>> <http://eulergui.sourceforge.net/engine.owl#STORAGE> ==> class TripleStoreDrools : 
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> . #U
deductions.runtime.RuleBasedApplicationStarter@5bf3f591
# Assign>> <http://eulergui.sourceforge.net/engine.owl#applicationStarter> ==> class RuleBasedApplicationStarter : deductions.runtime.RuleBasedApplicationStarter@5bf3f591
avr. 22, 2013 9:22:35 PM eulergui.inference.drools.impl.DroolsHelper printWorkingMemory
WARNING: 13 objets sont actuellement dans la WorkingMemory.

Neon bug : empty namespace prefix in Turtle => syntax error

<jmvanel> Tried Neon, and found a bug very quickly

<jmvanel> Anyway it's a Java thing ;)

@prefix :        <vocab/> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
:LOGGING_MESSAGE rdfs:isDefinedBy : .

http://www.neon-toolkit.org/bugzilla/show_bug.cgi?id=573

Questions to Jos

Alan Kay & Cie

http://en.wikipedia.org/wiki/Alan_Kay

http://www.vpri.org/

http://en.wikipedia.org/wiki/Viewpoints_Research_Institute

http://en.wikipedia.org/wiki/Tweak_programming_environment

http://en.wikipedia.org/wiki/Viewpoints_Research_Institute

Recommended by Cyril (Alan Kay) :

http://www.tele-task.de/archive/video/flash/14029/

2013-04-21

_:sk_Action_0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .
# Assign>> _:sk_Action_0 ==> class ResultTableAction : eulergui.gui.actions.ResultTableAction@2052c9cf
eulergui.gui.actions.ResultTableAction@2052c9cf
# DeferredMethodCall>> _:sk_Action_0 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# Assign>> _:sk_R_1 ==> class ResultManagement : eulergui.gui.main.ResultManagement@464ecd5c
# DeferredMethodCall>> _:sk_R_1 <http://java.sun.com/method#addAction> [_:sk_Action_0]
_:sk_Action_2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
# Assign>> _:sk_Action_2 ==> class ResultGraphvizAction : eulergui.gui.actions.ResultGraphvizAction@588ac488
eulergui.gui.actions.ResultGraphvizAction@588ac488
# DeferredMethodCall>> _:sk_Action_2 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# Assign>> _:sk_R_3 ==> class ResultManagement : eulergui.gui.main.ResultManagement@464ecd5c
eulergui.gui.main.ResultManagement@464ecd5c
# DeferredMethodCall>> _:sk_R_3 <http://java.sun.com/method#addAction> [_:sk_Action_2]
_:sk_Action_4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
# Assign>> _:sk_Action_4 ==> class ResultEditorN3Action : eulergui.gui.actions.ResultEditorN3Action@2cff8421
eulergui.gui.actions.ResultEditorN3Action@2cff8421
# DeferredMethodCall>> _:sk_Action_4 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# Assign>> _:sk_R_5 ==> class ResultManagement : eulergui.gui.main.ResultManagement@464ecd5c
eulergui.gui.main.ResultManagement@464ecd5c
# DeferredMethodCall>> _:sk_R_5 <http://java.sun.com/method#addAction> [_:sk_Action_4]
 ...

testOpenN3Project52

_:list18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list17 .
<http://eulergui.sf.net/ontology/project.owl.n3#hasRelativeURL> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasURL> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
_:list17 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list16 .
<http://eulergui.sf.net/ontology/project.owl.n3#hasN3Query> <http://www.w3.org/2000/01/rdf-schema#range> <http://eulergui.sf.net/ontology/project.owl.n3#URLSource> .
_:list13 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasFormat> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .

ruleBase: 1652916260 - [[Package name=application_rules_n3_1], [Package name=project_java_rules_n3_0], [Package name=generalRules_n3_2], [Package name=infrastructure_rules]]
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.irisa.fr/LIS/softwares/squall> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U
<http://eulergui.sf.net/ontology/project.owl.n3#hasRelativeURL> <http://www.w3.org/2000/01/rdf-schema#label> "has a relative URI" .
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#javaN3Factory> <http://java.sun.com/class#eulergui-project-N3SourceFromSquall> .
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#N3SourceType> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasFormat> <http://www.w3.org/2000/01/rdf-schema#comment> """In most cases, by looking at the HTTP Content-type,
                      and/or the extension, or even the beginning of document,
                      the application is able to guess the file format,
                      so this property is facultative.""" .
# Assign>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> ==> class GUIKBAdapter : deductions.runtime.GUIKBAdapter@7c8adf94
<http://eulergui.sf.net/ontology/project.owl.n3#hasRDFImport> <http://www.w3.org/2000/01/rdf-schema#label> "has RDF Import" .
eulergui.gui.main.ProjectGUI[EulerGUI project: frame0,554,1080,877x433,invalid,hidden,layout=java.awt.BorderLayout,title=Projet N3:,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,5,25,867x403,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
<http://eulergui.sf.net/ontology/project.owl.n3#hasRelativeURL> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> .
_:list13 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://schema.omg.org/spec/XMI> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasRDFImport> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2002/07/owl#Ontology> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasRDFImport> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
_:list18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
<http://eulergui.sf.net/ontology/project.owl.n3#isActivated> <http://www.w3.org/2000/01/rdf-schema#comment> """It is convenient to have data sources belonging to
                       the project just as reference or trial.""" .
<http://eulergui.sf.net/ontology/project.owl.n3#hasN3Query> <http://www.w3.org/2000/01/rdf-schema#label> "has an (absolute) URI" .
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#extension> ".squall" .
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#comment> "From Controlled english to SPARQL 1.1. - runs squall2sparql and launches SPARQL query" .
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#label> "Squall" .
_:list15 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/TR/owl2-xml-serialization/> .
<http://eulergui.sf.net/ontology/project.owl.n3#RDFImport> <http://www.w3.org/2000/01/rdf-schema#subClassOf> <http://eulergui.sf.net/ontology/project.owl.n3#URLSource> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasRelativeURL> <http://www.w3.org/2000/01/rdf-schema#comment> """a relative URI for the RDF import, relative to the base URI of
                       the importing Ontology.
                       An RDFImport has either a relative URI, or an (absolute) URI,
                       but not both.""" .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> . #U
<http://eulergui.sf.net/ontology/project.owl.n3#hasN3Query> <http://www.w3.org/2000/01/rdf-schema#comment> "a dereferenciable URI for the RDF import" .
<http://eulergui.sf.net/ontology/project.owl.n3#isActivated> <http://www.w3.org/2000/01/rdf-schema#domain> <http://eulergui.sf.net/ontology/project.owl.n3#RDFImport> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasRDFImport> <http://www.w3.org/2000/01/rdf-schema#range> <http://eulergui.sf.net/ontology/project.owl.n3#RDFImport> .
<http://eulergui.sf.net/ontology/project.owl.n3#URLSource> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasRelativeURL> <http://www.w3.org/2000/01/rdf-schema#domain> <http://eulergui.sf.net/ontology/project.owl.n3#URLSource> .
_:list16 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list15 .
deductions.runtime.RuleBasedApplicationStarter@107781c1
<http://eulergui.sf.net/ontology/project.owl.n3#isActivated> <http://www.w3.org/2000/01/rdf-schema#label> "is this RDF source activated during inferencing?" .
<http://eulergui.sf.net/ontology/project.owl.n3#hasN3Query> <http://www.w3.org/2000/01/rdf-schema#domain> <http://www.w3.org/2002/07/owl#Ontology> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .
<http://eulergui.sf.net/ontology/project.owl.n3#hasURL> <http://www.w3.org/2000/01/rdf-schema#label> "has an (absolute) URI" .
# Assign>> <http://eulergui.sourceforge.net/engine.owl#STORAGE> ==> class TripleStoreDrools : 
<http://eulergui.sf.net/ontology/project.owl.n3#hasRDFImport> <http://www.w3.org/2000/01/rdf-schema#comment> """In addition to its regular content, an owl:Ontology
                       has RDF Imports that aware applications add to the regular
                       content.""" .
_:oneOf19 <http://www.w3.org/2002/07/owl#oneOf> ( <http://www.w3.org/1999/02/22-rdf-syntax-ns#> <http://www.w3.org/TeamSubmission/turtle/> <http://www.w3.org/TeamSubmission/n3/> <http://www.w3.org/TR/owl2-xml-serialization/> <http://www.w3.org/XML/1998/namespace> <http://schema.omg.org/spec/XMI> ) .
<http://eulergui.sf.net/ontology/project.owl.n3#hasFormat> <http://www.w3.org/2000/01/rdf-schema#range> _:oneOf19 .
<http://eulergui.sf.net/ontology/project.owl.n3#hasFormat> <http://www.w3.org/2000/01/rdf-schema#domain> <http://eulergui.sf.net/ontology/project.owl.n3#URLSource> .
deductions.runtime.GUIKBAdapter@7c8adf94
<http://eulergui.sf.net/ontology/project.owl.n3#hasN3Query> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> .
_:list14 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list13 .
<http://eulergui.sf.net/ontology/project.owl.n3#hasURL> <http://www.w3.org/2000/01/rdf-schema#domain> <http://eulergui.sf.net/ontology/project.owl.n3#URLSource> .
# Assign>> <http://eulergui.sourceforge.net/engine.owl#tripleStore> ==> class TripleStoreDrools : ruleBase: 1652916260 - [[Package name=application_rules_n3_1], [Package name=project_java_rules_n3_0], [Package name=generalRules_n3_2], [Package name=infrastructure_rules]]
_:list17 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/TeamSubmission/turtle/> .
_:list16 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/TeamSubmission/n3/> .
<http://eulergui.sf.net/ontology/project.owl.n3#RDFImport> <http://www.w3.org/2000/01/rdf-schema#comment> """RDF import means that a non RDF source like plain XML, XMI, etc
                       is converted in a well defined way into an RDF/N3 document.""" .
<http://eulergui.sf.net/ontology/project.owl.n3#URLSource> <http://www.w3.org/2000/01/rdf-schema#comment> """just an auxiliary class for a data source that has
                      either a dereferenciable URL or a relative URL.""" .
<http://eulergui.sf.net/ontology/project.owl.n3#isActivated> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> .
_:list15 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list14 .
<http://eulergui.sf.net/ontology/project.owl.n3#hasURL> <http://www.w3.org/2000/01/rdf-schema#comment> "a dereferenciable URI for the RDF import" .
# Assign>> ProjectGUI1 ==> class ProjectGUI : eulergui.gui.main.ProjectGUI[EulerGUI project: frame0,554,1080,877x433,invalid,hidden,layout=java.awt.BorderLayout,title=Projet N3:,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,5,25,867x403,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
<http://eulergui.sf.net/ontology/project.owl.n3#hasURL> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#anyURI> .
<file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#squall> <file:/home/jmv/src/eulergui-code/eulergui/src/main/resources/eulergui/gui/controller/application-rules.n3#javaN3Widgets> <http://java.sun.com/class#eulergui-gui-view-ButtonsForN3SourceFromSquall> .
<http://eulergui.sf.net/ontology/project.owl.n3#RDFImport> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Class> .
<http://eulergui.sf.net/ontology/project.owl.n3#isActivated> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#boolean> .
<http://eulergui.sf.net/ontology/project.owl.n3#RDFImport> <http://www.w3.org/2000/01/rdf-schema#label> "RDF Import" .
_:list14 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.w3.org/XML/1998/namespace> .
# Assign>> <http://eulergui.sourceforge.net/engine.owl#applicationStarter> ==> class RuleBasedApplicationStarter : deductions.runtime.RuleBasedApplicationStarter@107781c1
#TRACE ( "addN3Source" <file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> _:sk_N3S_0 "?IMPORT_URI" "BloodPressure.n3" )
#TRACE ( "?ONTO a owl:Ontology : create project" <file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> )

testOpenN3Project51

<application-rules.n3#squall> <application-rules.n3#javaN3Widgets> <http://java.sun.com/class#eulergui-gui-view-ButtonsForN3SourceFromSquall> .
<application-rules.n3#squall> <application-rules.n3#extension> ".squall" .
eulergui.gui.actions.ResultEditorAction@7e8b64bf
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#label> "Squall" .
deductions.runtime.RuleBasedApplicationStarter@16d1ba70
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .
# Assign>> _:sk_Action_4 ==> class ResultEditorN3Action : eulergui.gui.actions.ResultEditorN3Action@539c741b
# Assign>> _:sk_Action_2 ==> class ResultGraphvizAction : eulergui.gui.actions.ResultGraphvizAction@72390d8f
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#comment> "From Controlled english to SPARQL 1.1. - runs squall2sparql and launches SPARQL query" .
<application-rules.n3#squall> <application-rules.n3#javaN3Factory> <http://java.sun.com/class#eulergui-project-N3SourceFromSquall> .
# Assign>> _:sk_Action_0 ==> class ResultTableAction : eulergui.gui.actions.ResultTableAction@57794c10
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U
_:sk_Action_2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
# Assign>> <http://eulergui.sourceforge.net/engine.owl#STORAGE> ==> class TripleStoreDrools : 
# DeferredMethodCall>> _:sk_Action_6 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# DeferredMethodCall>> _:sk_Action_4 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# Assign>> _:sk_Action_6 ==> class ResultEditorAction : eulergui.gui.actions.ResultEditorAction@7e8b64bf
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.irisa.fr/LIS/softwares/squall> .
_:sk_Action_0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .
eulergui.gui.actions.ResultTableAction@57794c10
# Assign>> <http://eulergui.sourceforge.net/engine.owl#tripleStore> ==> class TripleStoreDrools : ruleBase: 1040618384 - [[Package name=project_java_rules_n3_0], [Package name=searchFromString_1_1], [Package name=generalRules_n3_2], [Package name=infrastructure_rules], [Package name=searchFromString_0_0], [Package name=application_rules_n3_1]]
# DeferredMethodCall>> _:sk_R_3 <http://java.sun.com/method#addAction> [_:sk_Action_2]
# DeferredMethodCall>> _:sk_Action_0 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# Assign>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> ==> class GUIKBAdapter : deductions.runtime.GUIKBAdapter@17ba2255
# DeferredMethodCall>> _:sk_Action_2 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]

_:sk_Action_6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
# DeferredMethodCall>> _:sk_R_5 <http://java.sun.com/method#addAction> [_:sk_Action_4]
ruleBase: 1040618384 - [[Package name=project_java_rules_n3_0], [Package name=searchFromString_1_1], [Package name=generalRules_n3_2], [Package name=infrastructure_rules], [Package name=searchFromString_0_0], [Package name=application_rules_n3_1]]
# DeferredMethodCall>> _:sk_R_1 <http://java.sun.com/method#addAction> [_:sk_Action_0]
# Assign>> ProjectGUI1 ==> class ProjectGUI : eulergui.gui.main.ProjectGUI[EulerGUI project: frame0,554,1080,877x433,invalid,hidden,layout=java.awt.BorderLayout,title=Projet N3:,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,5,25,867x403,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
# DeferredMethodCall>> _:sk_R_7 <http://java.sun.com/method#addAction> [_:sk_Action_6]
<application-rules.n3#squall> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <application-rules.n3#N3SourceType> .
_:sk_Action_4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
deductions.runtime.GUIKBAdapter@17ba2255
eulergui.gui.main.ProjectGUI[EulerGUI project: frame0,554,1080,877x433,invalid,hidden,layout=java.awt.BorderLayout,title=Projet N3:,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,5,25,867x403,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
# Assign>> _:sk_R_5 ==> class ResultManagement : eulergui.gui.main.ResultManagement@748eb6c6
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
eulergui.gui.actions.ResultEditorN3Action@539c741b
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
# Assign>> _:sk_R_7 ==> class ResultManagement : eulergui.gui.main.ResultManagement@748eb6c6
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> . #U
avr. 21, 2013 12:53:13 PM eulergui.inference.drools.impl.DroolsHelper printWorkingMemory
WARNING: 48 objets sont actuellement dans la WorkingMemory.

eulergui.gui.actions.ResultGraphvizAction@72390d8f
# Assign>> _:sk_R_1 ==> class ResultManagement : eulergui.gui.main.ResultManagement@748eb6c6
# Assign>> _:sk_R_3 ==> class ResultManagement : eulergui.gui.main.ResultManagement@748eb6c6
# Assign>> <http://eulergui.sourceforge.net/engine.owl#applicationStarter> ==> class RuleBasedApplicationStarter : deductions.runtime.RuleBasedApplicationStarter@16d1ba70

<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/2002/07/owl#Ontology>

<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/2002/07/owl#Ontology>

<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3>

<http://www.w3.org/2002/07/owl#imports>

<BloodPressure.n3>

<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3>

<http://www.w3.org/2002/07/owl#imports>

<BloodPressure.n3>

2013-04-20

Upgrades : Java 7 21 ; Drools 6.0.0.Beta1

http://search.maven.org/#artifactdetails%7Corg.drools%7Cdrools-compiler%7C6.0.0.Beta1%7Cbundle

DANN

http://wiki.syncleus.com/index.php/DANN

<jmvanel> Hi

<jmvanel> git clone git://git.syncleus.com/dANN.git

<jmvanel> Cloning into 'dANN'...

<jmvanel> fatal: unable to connect to git.syncleus.com:

<jmvanel> git.syncleus.com[0: 74.208.205.75]: errno=Connexion termin?e par expiration du d?lai d'attente

<jmvanel> also down : svn export svn://svn.syncleus.com/dANN/trunk/projects/java_dann_examples/

<jmvanel> http://files.syncleus.com is also down :(

<jmvanel> Suggestion : why not push all code to github or googlecode ; these sites are always up , no need to work for hosting !

Prolog bot

http_get( 'jmvanel.free.fr/ingesup/coursTRS2013/travel.pl' , D, [] ).

https://www.google.fr/search?q=prolog+bot

http://www.ai-forum.org/topic.asp?forum_id=1&topic_id=39838

http://ejrh.wordpress.com/2012/11/14/irc-bot-as-a-fun-project/

EulerGUI

Results :

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait event queue staying empty for 500
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait event queue staying empty for 500
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait event queue staying empty for 500
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Employee" loaded
  testTooltip(eulergui.gui.TestEulerGUITooltip): Wait event queue staying empty for 500
  test_null_to_satisfy_junit_via_maven(eulergui.gui.TestEulerGUITooltip): Wait event queue staying empty for 500
  testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Wait event queue staying empty for 500
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded
  testURLProject(eulergui.gui.TestJavaEditor): Wait event queue staying empty for 500
  testSimpleURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "book.n3" loaded
  testAddNewN3Source(eulergui.gui.TestN3SourceInGUI): Wait event queue staying empty for 500
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 210, Failures: 1, Errors: 12, Skipped: 0

Drools NPE in EulerGUI

- add test TestProject.testOpenN3Project() , that simulates what happens when opening from File menu (NPE in Drools)

cf an NPE in Drools

No NPE :

eg src/main/resources/eulergui/gui/controller/project-java-rules.n3 examples/BloodPressure-small.n3p.n3 &

Current conclusions: either:

fireAllRules is called 4 times :

  1. Thread [ApplicationKB initialization] (Suspended (breakpoint at line 674 in AbstractWorkingMemory))
    ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
    TripleStoreDrools.fireAllRules() line: 375
    RuleBasedApplicationStarter.startFromProject(Project) line: 69
    ApplicationKB$Initializer.run() line: 79
  2. Thread [main] (Suspended (breakpoint at line 674 in AbstractWorkingMemory))
    owns: Class<T> (eulergui.gui.controller.ApplicationKB) (id=17)
    ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
    TripleStoreDrools.fireAllRules() line: 375
    ApplicationKB.fireAllRules() line: 280
    ApplicationKB.waitInitializationThread() line: 836
    ApplicationKB.instance() line: 171
    TestProject.testOpenN3Project2() line: 196
  3. removing this fireAllRules removes the NPE:
    Thread [main] (Suspended (breakpoint at line 674 in AbstractWorkingMemory))
    ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
    TripleStoreDrools.fireAllRules() line: 375
    ApplicationKB.fireAllRules() line: 280
    TestProject.testOpenN3Project2() line: 197
  4. Thread [main] (Suspended (breakpoint at line 674 in AbstractWorkingMemory))
    ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
    TripleStoreDrools.fireAllRules() line: 375
    ApplicationKB.fireAllRules() line: 280
    ApplicationKB.loadN3Project(URI) line: 620
    ProjectFactory.restoreN3ProjectInN3(URI) line: 293
    ProjectFactory.restoreAnyFromURI(URI, boolean) line: 411
    ProjectFactory.restoreAny(URI, boolean) line: 395
    ProjectFactory.restoreAny(String, boolean) line: 388
    TestProject.testOpenN3Project2() line: 199

OK

ApplicationKB.loadN3Project(): examples/BloodPressure-small.n3p.n3
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.irisa.fr/LIS/softwares/squall> .
# Assign>> <http://eulergui.sourceforge.net/engine.owl#tripleStore> ==> class TripleStoreDrools : ruleBase: 2079436801 - [[Package name=project_java_rules_n3_0], [Package name=generalRules_n3_2], [Package name=infrastructure_rules], [Package name=application_rules_n3_1]]
<application-rules.n3#squall> <application-rules.n3#javaN3Widgets> <http://java.sun.com/class#eulergui-gui-view-ButtonsForN3SourceFromSquall> .
<application-rules.n3#squall> <application-rules.n3#extension> ".squall" .
# Assign>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> ==> class GUIKBAdapter : deductions.runtime.GUIKBAdapter@4b13237e
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <examples/BloodPressure-small.n3p.n3> .
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#label> "Squall" .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .

<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#comment> "From Controlled english to SPARQL 1.1. - runs squall2sparql and launches SPARQL query" .
deductions.runtime.RuleBasedApplicationStarter@611fe9e0
<application-rules.n3#squall> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <application-rules.n3#N3SourceType> .
<application-rules.n3#squall> <application-rules.n3#javaN3Factory> <http://java.sun.com/class#eulergui-project-N3SourceFromSquall> .
ruleBase: 2079436801 - [[Package name=project_java_rules_n3_0], [Package name=generalRules_n3_2], [Package name=infrastructure_rules], [Package name=application_rules_n3_1]]<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
# Assign>> <http://eulergui.sourceforge.net/engine.owl#STORAGE> ==> class TripleStoreDrools : 
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
<file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> . #U
# Assign>> <http://eulergui.sourceforge.net/engine.owl#applicationStarter> ==> class RuleBasedApplicationStarter : deductions.runtime.RuleBasedApplicationStarter@611fe9e0
deductions.runtime.GUIKBAdapter@4b13237e

#TRACE ( " ?ONTO rdfs:seeAlso ?SA ." <file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> "rdfs:seeAlso" <examples/BloodPressure-small.n3p.n3> "examples/BloodPressure-small.n3p.n3" )
#TRACE ( "addN3Source" <file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> _:sk_N3S_0 "?IMPORT_URI" "BloodPressure.n3" )
#TRACE ( "?ONTO a owl:Ontology : create project" <file:/home/jmv/src/eulergui-code/eulergui/examples/BloodPressure-small.n3p.n3> )

KO

ApplicationKB.loadN3Project(): file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3
<application-rules.n3#squall> <application-rules.n3#javaN3Widgets> <http://java.sun.com/class#eulergui-gui-view-ButtonsForN3SourceFromSquall> .
<application-rules.n3#squall> <application-rules.n3#extension> ".squall" .
eulergui.gui.main.ResultManagement@3793258b
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#label> "Squall" .
<file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> . #U
# Assign>> _:sk_Action_4 ==> class ResultEditorN3Action : eulergui.gui.actions.ResultEditorN3Action@62f5ae30
# DeferredMethodCall>> _:sk_R_5 <http://java.sun.com/method#addAction> [_:sk_Action_4]
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#comment> "From Controlled english to SPARQL 1.1. - runs squall2sparql and launches SPARQL query" .
# Assign>> _:sk_Action_2 ==> class ResultGraphvizAction : eulergui.gui.actions.ResultGraphvizAction@371cdde4
# DeferredMethodCall>> _:sk_Action_6 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
# Assign>> _:sk_Action_0 ==> class ResultTableAction : eulergui.gui.actions.ResultTableAction@72f3b982
# DeferredMethodCall>> _:sk_R_7 <http://java.sun.com/method#addAction> [_:sk_Action_6]
# Assign>> _:sk_Action_6 ==> class ResultEditorAction : eulergui.gui.actions.ResultEditorAction@4892ad1b
_:sk_Action_0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .
<application-rules.n3#squall> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <http://www.irisa.fr/LIS/softwares/squall> .
# DeferredMethodCall>> _:sk_Action_4 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]

# Assign>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> ==> class GUIKBAdapter : deductions.runtime.GUIKBAdapter@2fd121e4
_:sk_Action_6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
eulergui.gui.actions.ResultTableAction@72f3b982
# DeferredMethodCall>> _:sk_Action_2 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
<application-rules.n3#squall> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <application-rules.n3#N3SourceType> .
# DeferredMethodCall>> _:sk_Action_0 <http://java.sun.com/method#setProjectGUI> [ProjectGUI1]
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorAction> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
eulergui.gui.main.ProjectGUI[EulerGUI project: frame0,554,1080,975x432,invalid,layout=java.awt.BorderLayout,title=Projet N3:,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,28,973x403,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
ruleBase: 735242318 - [[Package name=project_java_rules_n3_0], [Package name=searchFromString_1_1], [Package name=generalRules_n3_2], [Package name=infrastructure_rules], [Package name=searchFromString_0_0], [Package name=application_rules_n3_1]]
eulergui.gui.actions.ResultEditorN3Action@62f5ae30
# DeferredMethodCall>> _:sk_R_1 <http://java.sun.com/method#addAction> [_:sk_Action_0]
# DeferredMethodCall>> _:sk_R_3 <http://java.sun.com/method#addAction> [_:sk_Action_2]<file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U
<file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3> <http://www.w3.org/2000/01/rdf-schema#seeAlso> <file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3> .
<http://java.sun.com/class#eulergui-gui-main-ProjectGUI> <http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature> <http://java.sun.com/class#eulergui-gui-actions-ResultTableAction> .
<application-rules.n3#squall> <application-rules.n3#javaN3Factory> <http://java.sun.com/class#eulergui-project-N3SourceFromSquall> .
deductions.runtime.GUIKBAdapter@2fd121e4
# Assign>> <http://eulergui.sourceforge.net/engine.owl#STORAGE> ==> class TripleStoreDrools : 
_:sk_Action_2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultGraphvizAction> .
deductions.runtime.RuleBasedApplicationStarter@4cdc161f
# Assign>> <http://eulergui.sourceforge.net/engine.owl#tripleStore> ==> class TripleStoreDrools : ruleBase: 735242318 - [[Package name=project_java_rules_n3_0], [Package name=searchFromString_1_1], [Package name=generalRules_n3_2], [Package name=infrastructure_rules], [Package name=searchFromString_0_0], [Package name=application_rules_n3_1]]
# Assign>> ProjectGUI1 ==> class ProjectGUI : eulergui.gui.main.ProjectGUI[EulerGUI project: frame0,554,1080,975x432,invalid,layout=java.awt.BorderLayout,title=Projet N3:,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,1,28,973x403,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
eulergui.gui.actions.ResultEditorAction@4892ad1b
eulergui.gui.actions.ResultGraphvizAction@371cdde4
_:sk_Action_4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#eulergui-gui-actions-ResultEditorN3Action> .
# Assign>> _:sk_R_5 ==> class ResultManagement : eulergui.gui.main.ResultManagement@3793258b
# Assign>> _:sk_R_7 ==> class ResultManagement : eulergui.gui.main.ResultManagement@3793258b
# Assign>> _:sk_R_1 ==> class ResultManagement : eulergui.gui.main.ResultManagement@3793258b
# Assign>> <http://eulergui.sourceforge.net/engine.owl#applicationStarter> ==> class RuleBasedApplicationStarter : deductions.runtime.RuleBasedApplicationStarter@4cdc161f
# Assign>> _:sk_R_3 ==> class ResultManagement : eulergui.gui.main.ResultManagement@3793258b

#TRACE ( " ?ONTO rdfs:seeAlso ?SA ." <file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3> "rdfs:seeAlso" <file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3> "file:/home/jmv/src/eulergui-code/eulergui/examples/bb_BloodPressure.n3p.n3" )
Exception executing consequence for rule "project-java-rules.n3 9" in project_java_rules_n3_0: java.lang.NullPointerException

2013-04-19

NOTE: forward-chaining-in-yap-prolog

Exercise 7.3 Let a n b 2 n be the formal language which contains all strings of the following form: an unbroken block of a s of length n followed by an unbroken block of b s of length 2n , and nothing else. For example, abb , aabbbb , and aaabbbbbb belong to a n b 2 n

TODO EulerGUI

see TODO EulerGUI 2.0

2013-04-18

# recursive unification and substitution described in "Generating SPARQL queries using rules"
# cf http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/backward_chaining_sparql.html#L185

# TEST:  _:q ru:query ( :John :hasUncle ?U ).
{ _:q ru:query ( ?S ?P ?O ).
} <= {
  _:d eg:trace( ).
}.

{ ?RULE asSPARQL ?SPARQL
} <= {
  _:d eg:trace( ).
  ?RULE antecedentAsSPARQL ?ANT .
  ?RULE consequentAsSPARQL ?ANT .
  ( "CONSTRUCT { " ?ANT "\n} WHERE {\n" ?CONS "}\n" ) string:concatenation ?SPARQL.
}.

{ ?RULE antecedentAsSPARQL ?ANT 
} <= {
  ?RULE hasAntecedentTriple (?S ?P ?O).
   (?S ?P ?O)  string:concatenation ?ANT.
}.

jmvanel> Updated backward_chaining_sparql http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/backward_chaining_sparql.html#L185

<jmvanel> I know you were not satisfoed with this document; hope it's better now.

<rszeno> imo the problem is deeper then you think

<rszeno> read this, lambda calculus

<rszeno> sorry, this http://en.wikipedia.org/wiki/Lambda_calculus

<rszeno> is better to read all the page but if not at least the capture avoiding substitution, http://en.wikipedia.org/wiki/Lambda_calculus#Capture-avoiding_substitutions

<rszeno> this was the problem before and imo stay right now too

Progol

Mahout

Weka

2013-04-16

Added in prefix.cc

@prefix prolog: <http://eulersharp.sourceforge.net/2003/03swap/prolog#>.

Drools queries & backward chaining

http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html_single/index.html#d0e7632

Drools can also do backward chaining, which we refer to as derivation queries.

I'm not sure if Drools queries & backward chaining can do all what Euler backward chaining can do.

2013-04-15

Installing F# on Ubuntu Linux

http://www.cs.princeton.edu/courses/archive/fall10/cos597C/FsharpUbuntuInstall.htm

2013-04-12

unit tests for EYE plugins:

trunk/2007/07test/biP.n3

2013-04-11

schema.org

http://schema.org/Restaurant

http://schema.rdfs.org/

EulerGUI

<jmvanel> nice example with backward chaining in EYE : https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2007/07test/fib.n3

<jmvanel> I wonder if Jos has applied backward chaining in EYE for querying a SPARQL db while appplying rules ; cf

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/backward_chaining_sparql.html

TODO FIX:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at eulergui.gui.controller.N3SourceWorker.done(N3SourceWorker.java:68)
at eulergui.infrastructure.URIModificationChecker$1.done(URIModificationChecker.java:122)
at javax.swing.SwingWorker$5.run(SwingWorker.java:737)

Command line arguments being an N3 prefix with a semi-colon now work; understood as the prefix expansion given by API prefix.cc

for example:

eulergui foaf:

json + semantic web

jsonld-java

jsonld-java does not build, and I already added my word to the issue :

https://github.com/tristan/jsonld-java/issues/39

git clone git://github.com/tristan/jsonld-java.git

mvn install
 ...
Results :

Failed tests:   runTest[61](de.dfki.km.json.jsonld.JSONLDProcessorTest): 
  runTest[62](de.dfki.km.json.jsonld.JSONLDProcessorTest): 
  runTest[109](de.dfki.km.json.jsonld.JSONLDProcessorTest): Expected object was null

Tests run: 120, Failures: 3, Errors: 0, Skipped: 0

mvn install  -Dmaven.test.skip=true 
 ...
[INFO] Reactor Summary:
[INFO] 
[INFO] JSONLD Java :: Parent ............................. SUCCESS [1.572s]
[INFO] JSONLD Java :: Core ............................... SUCCESS [2.080s]
[INFO] JSONLD Java :: Integration Modules Parent ......... SUCCESS [0.034s]
[INFO] JSONLD Java :: Sesame Integration ................. FAILURE [4.600s]
[INFO] JSONLD Java :: Jena Integration ................... SKIPPED
[INFO] JSONLD Java :: Clerezza Integration ............... SKIPPED
[INFO] JSONLD Java :: Tools .............................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 8.739s
[INFO] Finished at: Thu Apr 11 11:16:36 CEST 2013
[INFO] Final Memory: 15M/166M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project jsonld-java-sesame: Could not resolve dependencies for project dfki.km.json:jsonld-java-sesame:jar:1.0.0-SNAPSHOT: Could not find artifact dfki.km.json:jsonld-java:jar:tests:1.0.0-SNAPSHOT in sonatype-nexus-snapshots (https://oss.sonatype.org/content/repositories/snapshots) -> [Help 1]

json-ld

<jmvanel> nevali, , a @context document is an established notion ?

<nevali> read the JSON-LD spec

<jmvanel> OK

<nevali> the point is to express JSON which to JSON people looks more or less 'normal' but can be losslessly parsed as an RDF graph

<rszeno> this one, http://json-ld.org/

* Le sujet de #json-ld est : JSON for Linking Data: http://json-ld.org/

* Sujet de #json-ld défini par taaz!~dlehn@pool-96-240-179-104.ronkva.east.verizon.net le Wed May 2 04:17:16 2012

<jmvanel> Hi

<jmvanel> I tried to find a short definition of what is the @context , and found nothing in http://json-ld.org/requirements/latest/

<jmvanel> There 4 Specifications ...

<jmvanel> need an introduction for people already knowing semweb ...

http://json-ld.org/spec/latest/json-ld/#the-context

EXAMPLE 17: Using a common vocabulary prefix
{
  "@context": {
    "@vocab": "http://schema.org/"
  }
  "@id": "http://example.org/places#BrewEats",
  "@type": "Restaurant",
  "name": "Brew Eats"
  ...
}

EXAMPLE 37: IRI expansion within a context
{
  "@context":
  {
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "name": "http://xmlns.com/foaf/0.1/name",
    "age":
    {
      "@id": "http://xmlns.com/foaf/0.1/age",
      "@type": "xsd:integer"
    },
    "homepage":
    {
      "@id": "http://xmlns.com/foaf/0.1/homepage",
      "@type": "@id"
    }
  },
  ...
}

Playing with the wikipedia mediawiki API

<jmvanel> hi

<jmvanel> I'm playing with the wikipedia mediawiki API

<jmvanel> it's quicker than SPARQL on dbpedia, and perfectly up-to-date .

<jmvanel> But the downside is that it's not ttl .

<jmvanel> This works:

http://en.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=Van&aplimit=9&apnamespace=14&format=json

<jmvanel> but with format=turtle it fails ;

<jmvanel> however there are a number of formats:

<jmvanel> json, jsonfm, php, phpfm, wddx, wddxfm, xml, xmlfm, yaml, yamlfm, rawfm, txt, txtfm, dbg, dbgfm, dump, dumpfm, none

<jmvanel> Too bad that semweb is not implemented here !

<jmvanel> I can try to post a feature request on mediawiki ...

http://en.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=Van&aplimit=9&apnamespace=14

http://en.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=Van&aplimit=9&apnamespace=14&format=json

http://en.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=Van&aplimit=9&apnamespace=14&format=turtle

  <error code="unknown_format" info="Unrecognized value for parameter &#039;format&#039;: turtle" xml:space="preserve">
 ...
Parameters:
  format              - The format of the output
                        One value: json, jsonfm, php, phpfm, wddx, wddxfm, xml, xmlfm, yaml, yamlfm, rawfm, txt, txtfm, dbg, dbgfm,
                            dump, dumpfm, none

http://en.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=Van&aplimit=9&format=json

difficult to know what is apnamespace=14 !

With HTML formatting :

http://en.wikipedia.org/w/api.php?action=query&list=allpages&apfrom=Van&aplimit=9&format=jsonfm

<jmvanel> <jmvanel> discovered this new Java project : http://stanbol.apache.org/

<jmvanel> <jmvanel> Apache Stanbol's intended use is to extend traditional content management systems with semantic services. Other feasible use cases include: direct usage from web applications (e.g. for tag extraction/suggestion; or text completion in search fields), 'smart' content workflows or email routing based on extracted entities, topics, etc.

2013-04-10

https://github.com/jline/jline2

http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/development.html

<jmvanel> Hi I've migrated to new sf , and working on code is fine, but there a feature I dont know how get with the new sf.net :

<jmvanel> My HTML doc is on Subversion, and I'd like to see it as HTML ,

<jmvanel> which is not the case like this :

<jmvanel> http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/development.html

<ctsai-sf> Hmm, I don't think there's a way to do that currently, I'll check to see if we have an existing ticket for that.

<ctsai-sf> Another "close but not quite" by the way: https://sourceforge.net/p/eulergui/code/HEAD/tree/trunk/eulergui/html/development.html?format=raw

<ctsai-sf> Not quite since it prompts to download instead of viewing in browser.

<jmvanel> ctsai-sf, thanks , I tried that one too .

<ctsai-sf> I can't find a ticket, though I may just be using the wrong search terms. I'm going to ask the devs in #allura

<ctsai-sf> You can join us there if you like.

<ctsai-sf> http://sourceforge.net/p/allura/tickets/5772/ <-- is the ticket for that

<jmvanel> FYI , I wrote two N3 rule bases that translate N3 to CLIPS, one for the facts, and one for the rules.

<jmvanel> But maybe the Drools + CLIPS works in the reverse way : parsing CLIPS, and putting the rules into Drools

<jmvanel> My idea is to reuse rules bases, that can be exported as CLIPS to develop CLIPS centered applications (e.g. for embedded applications).

* cedrichurst est parti (Quit: Leaving.)

<conan> jmvanel it was a clips parser to drl

<conan> jmvanel but it also added the shell

<conan> jmvanel in hindsight

<conan> I should have not bothered iwth the shell

<conan> it added a lot of complexity

<conan> and as result never got finished

<conan> if I'd left it at as simple a clp to drl translator

<conan> people might have got more use out of it

<conan> if you resurrect it

<conan> my suggestion is to do that

<jmvanel> makes sense

<jmvanel> BTW there is JLine for developping shells in Java

<jmvanel> I use it .

<jmvanel> it's a Maven thing

<jmvanel> https://github.com/jline/jline2

<jmvanel> And BTW also, the Scala CLI ( aka REPL ) could be nice to make interactive shell like demos for Drools .

EulerGUI

NPE when opening http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/examples/BloodPressure.n3p , and doing "Save as N3/OWL" .

18:50:40 [AWT-EventQueue-0] [error] AWT-EventQueue-0: java.lang.NullPointerException
18:50:40 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.io.File.<init>(File.java:251)
18:50:40 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.main.ProjectGUI.popupFileChooser(ProjectGUI.java:694)
18:50:40 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.main.ProjectGUI.popupFileChooser(ProjectGUI.java:670)
18:50:40 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.actions.SaveProjectAsN3LocalAction.actionPerformed(SaveProjectAsN3LocalAction.java:30)

(same stack when doing "Save as XML" ! )

EulerGUI architexture thought again

Sequence of operations (could be events):

  1. initialize internal KB
  2. read N3 project into internal KB

    => rules instanciate Project and N3Source objects

  3. insert facts into user KB [may be done by rules in internal KB]
  4. compile or reload rules into user KB
  5. fire All rules in user KB

Dependencies on events

2013-04-09

PROBLEM when managing N3 Cache for N3 source ../../../jmvanel.free.fr/jmv.rdf
Error when converting RDF from a file file:/../jmvanel.free.fr/jmv.rdf : java.io.FileNotFoundException: /../jmvanel.free.fr/jmv.rdf (Aucun fichier ou dossier de ce type)
Cause:
java.io.FileNotFoundException: /../jmvanel.free.fr/jmv.rdf (Aucun fichier ou dossier de ce type)
 , caused by /../jmvanel.free.fr/jmv.rdf (Aucun fichier ou dossier de ce type)

PROBLEM when preparing N3 source find_properties.sparql
Encountered "<EOF>" at line 6, column 125.
Was expecting one of:
    "base" ...
    "prefix" ...
    "select" ...
    "describe" ...
    "construct" ...
    "ask" ...

cp -r ~/src/eulergui/examples /tmp/examples
java -Xmx2500M \
-jar $HOME/.m2/repository/eulergui/eulergui/2.0-SNAPSHOT/eulergui-2.0-SNAPSHOT-jar-with-dependencies.jar  \
eulergui.project.ProjectFormatMigration /tmp/examples

http://www.jboss.org/drools/sightings

10:51:28 [AWT-EventQueue-0] [error] AWT-EventQueue-0: java.lang.NullPointerException
10:51:28 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.project.ProjectFactory.save(ProjectFactory.java:448)
10:51:28 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.main.ProjectFileManagement$SaveProjectLocalAction.actionPerformed(ProjectFileManagement.java:333)

[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.ibm.icu:icu4j ..................................... 50.1.1 -> 51.1
[INFO]   com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.4
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   org.drools:drools-compiler ............... 5.5.0.Final -> 6.0.0.Alpha9
[INFO]   org.scala-lang:scala-library ..................... 2.10.1 -> 2.11.0-M2
[INFO]   org.scala-lang:scala-swing ....................... 2.10.1 -> 2.11.0-M2

an NPE in Drools

5.5.0.Final in class NamedEntryPoint : http://pastebin.com/1wnnTQrc

Failed test: testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)

test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded has the same root cause

inserting :

<file:/home/jmv/src/eulergui-code/eulergui/test/import.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .

that is already present as:

<file:/home/jmv/src/eulergui-code/eulergui/test/import.n3p.n3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . #U

And the rule is :

// ---------- N3 rule 9 ----------
/* {
?ONTO <http://www.w3.org/2002/07/owl#imports> ?X.
}
 => {
?ONTO <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology>.
}. */

rule "project-java-rules.n3 9"
when
  $Triple_1 : Triple( $ONTO : subject, predicate == "<http://www.w3.org/2002/07/owl#imports>", $X : object )
then
  Triple newTriple;
  TripleResult newTripleResult;
  newTriple = new Triple(  );
  newTriple.setSubject( $ONTO );
  newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
  newTriple.setObject( "<http://www.w3.org/2002/07/owl#Ontology>" );  insertLogical( newTriple );
end

The stack :

Thread [main] (Suspended (exception NullPointerException))
owns: DefaultAgenda  (id=51)
NamedEntryPoint.insert(Object, Object, boolean, boolean, Rule, Activation) line: 196
ReteooStatefulSession(AbstractWorkingMemory).insert(Object, Object, boolean, boolean, Rule, Activation) line: 903
DefaultKnowledgeHelper.insertLogical(Object, Object, boolean) line: 245
DefaultKnowledgeHelper.insertLogical(Object, boolean) line: 210DefaultKnowledgeHelper.insertLogical(Object) line: 205
Rule_project_java_rules_n3_9_f9be9bb8e5a543db8d2126ff4d2c7e54.defaultConsequence(KnowledgeHelper, Object, FactHandle) line: 12
Rule_project_java_rules_n3_9_f9be9bb8e5a543db8d2126ff4d2c7e54DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_project_java_rules_n3_9_f9be9bb8e5a543db8d2126ff4d2c7e54DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1287
DefaultAgenda.fireNextItem(AgendaFilter) line: 1221
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1456
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 375
ApplicationKB.fireAllRules() line: 278
ApplicationKB.loadN3Project(URI) line: 617
ProjectFactory.restoreN3ProjectInN3(URI) line: 293
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 411
ProjectFactory.restoreAny(URI, boolean) line: 395
ProjectFactory.restoreAny(String, boolean) line: 388
TestProjectWithSubProjects.runAndTest(String) line: 48
TestProjectWithSubProjects.testimportN3() line: 41
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
TestProjectWithSubProjects(TestCase).runTest() line: 176
TestProjectWithSubProjects(TestCase).runBare() line: 141
TestResult$1.protect() line: 122
TestResult.runProtected(Test, Protectable) line: 142
TestResult.run(TestCase) line: 125
TestProjectWithSubProjects(TestCase).run(TestResult) line: 129
TestSuite.runTest(Test, TestResult) line: 255
TestSuite.run(TestResult) line: 250
JUnit38ClassRunner.run(RunNotifier) line: 84
JUnit4TestClassReference(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

2013-04-08

EulerGUI : FIX saving as N3/OWL a project opened from File menu

- specify UTF-8 in ApplicationKB.saveAsN3()

- build was broken because FileHelper was in test/

- add ProjectFormatMigration.scala (WIP)

Failed tests:   testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
  testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
  testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project")
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

COMMIT

- FIX saving as N3/OWL a project opened from File menu : in ProjectFileManagement

- when saving as N3/OWL, set project URI : in ApplicationKB

TODO : scenario : Save as N3/OWL ; add one N3 ; Save ( implicitly in N3/OWL now )

In thread started in ProjectGUI.populateWindow()

project.rethrowEventsExceptListener( ApplicationKB.instance() );

is called , but still with this call

ProjectFactory.prepareProject(project, null, false);

ApplicationKB is fired :

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended)
ApplicationKB.add_project_owl_imports(Project, String) line: 344
ApplicationKB.n3SourceAdded(Project, N3Source) line: 312
ApplicationKB.projectLoaded(Project) line: 402
ProjectChangeSupport$$anonfun$fireProjectLoaded$1.apply(ProjectListener) line: 83
ProjectChangeSupport$$anonfun$fireProjectLoaded$1.apply(Object) line: 83
LinkedHashSet<A>.foreach(Function1<A,U>) line: 87
ProjectChangeSupport.fireProjectLoaded(Project) line: 83
Project.prepare() line: 1133
ProjectFactory.prepareProject(Project, boolean) line: 334
ProjectFactory.prepareProject(Project, URL, boolean) line: 326
ProjectGUI$2.run() line: 371
Thread.run() line: 722

Bad N3 to CLIPS translation

(defrule t0_1
(defrule t1_1
(defrule t2_1
    ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure ?sk0_1 )
    (test ( > ?sk0_1 70 ))
    =>
    (assert( http://eulergui.sourceforge.net/examples#alert http://eulergui.sourceforge.net/examples#Service112 true ))
    ( http://eulergui.sourceforge.net/examples#alert ?sk0_1 true )
    ( http://www.w3.org/2000/10/swap/log#uri ?sk0_1 ?sk1_1 )
    =>
    (assert( http://eulergui.sourceforge.net/examples#displayAlert http://eulergui.sourceforge.net/examples#application ?sk0_1 ))
    ( http://eulergui.sourceforge.net/examples#displayAlert http://eulergui.sourceforge.net/examples#application ?sk0_1 )
    =>
    (assert( http://java.sun.com/predicate#localizedMessage ?sk0_1 ?sk1_1 ))
)

NARS COMMIT

- FIX NPE when hitting the close button on the 'buffered tasks' window ( reported by sseehh )

- add scroll for BagWindow & ConceptWindow

- add community in README_USER.txt

- FIX make_release.sh

- snapshot for 1.5.3 : nars-dist/NARS.jar

EulerGUI COMMITs

PROBLEM when managing N3 Cache for N3 source BloodPressure.n3
downloadURLToLocalCache: http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/BloodPressure.n3 ==> /home/jmv/.eulergui/n3_cache/BloodPressure.n3_6432466046176372030.n3
Cause:
java.io.FileNotFoundException: http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/BloodPressure.n3
 , caused by http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/BloodPressure.n3



PROBLEM when managing Cache for source http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p
downloadURLToLocalCache: http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p ==> /tmp/eg-1335853517812132900.tmp
Cause:
java.io.FileNotFoundException: http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p
 , caused by http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p

PROBLEM when managing Cache for source http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p
downloadURLToLocalCache: http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p ==> /tmp/eg-6164963873975674680.tmp
Cause:
java.io.FileNotFoundException: http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p
 , caused by http://deductions.svn.sourceforge.net/svnroot/deductions/n3rulestoclips.n3p

Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 1545 in Project))
Project.ensureIsLoaded() line: 1545
Project.prepareDrools(boolean) line: 782
Project.doRunDrools(boolean) line: 737
Project.runDroolsTriples(boolean) line: 672
DroolsInferenceEngine.launch() line: 30
InferenceSwingWorker.launchAndDisplayErrors() line: 52
InferenceSwingWorker.doInBackground() line: 47
InferenceSwingWorker.doInBackground() line: 21
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: 1145
ThreadPoolExecutor$Worker.run() line: 615
Thread.run() line: 722

- FIX test import_postproc.n3p for Drools

- Project.ensureIsLoaded() was ruunning too often, because setLoaded( true ) was not called at the end

TODO Failed tests:

testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): initial fact

testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): inferred fact

testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,

testPostproc(deductions.runtime.RuleBasedApplicationStarterTest): expected:<3> but was:<1>

Tests in error:

testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

2013-04-07

OpenNARS Web Interface by automenta ( sseehh )

https://docs.google.com/document/d/1u97UBlLoyXoXu7x940_yahPlbZhMWh4tVEWKS6Wj3AQ/edit#heading=h.8lnyjkkhwgyd

EulerGUI COMMITs

COMMIT

- Drools/N3 engine : use Euler Argument --pass to output the deductive closure, like Euler does

COMMIT

- refactor TestProjectSequence : use interface InferenceEngine

- various comments added

Example of use of the EulerGUI API :

N3ParseResult st = n3Source.parseResult();
st.getModel().getStatementSet().iterator().next().getObject();

2013-04-06

PROBLEM when managing N3 Cache for N3 source popup-java2.n3
downloadURLToLocalCache: http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/popup-java2.n3 ==> /home/jmv/.eulergui/n3_cache/popup-java2.n3_7359948354794421371.n3
Cause:
java.io.FileNotFoundException: http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/popup-java2.n3
 , caused by http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/popup-java2.n3

PROBLEM when managing N3 Cache for N3 source catch_allQ.n3
downloadURLToLocalCache: http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/catch_allQ.n3 ==> /home/jmv/.eulergui/n3_cache/catch_allQ.n3_8884576654881028254.n3
Cause:
java.io.FileNotFoundException: http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/catch_allQ.n3
 , caused by http://deductions.svn.sourceforge.net/svnroot/deductions/clips/examples/catch_allQ.n3

http://www.agi-conference.org/2013/

http://www.iana.org/domains/example

Idea for semantic web : it would be nice if cameras could provide the meta data: data & time, camera owner as URI, possibly location from GPS or wifi or bluetooth, plus possible image recognition.

NARS

1.5.2 release message

https://groups.google.com/forum/?fromgroups=#!topic/open-nars/XELT1bU2cd4

- a few bugs are fixed in inference ; see Revisions http://code.google.com/p/open-nars/source/detail?r=169 ; 180 ; 187 ; 240

- Example-MultiStep.txt added

- GUI migrated from AWT to Swing and as consequences:

* occasional freeze on Linux disappeared

* control a and control c are possible in text panels

- other GUI enhancements:

* application is no more frozen after a syntax error in input window (and a temporary popup message is displayed)

* the "Play" and "Stop" button labels are renamed "on" and "off"

* output text panel is now editable

- Separe GUI from reasoning in Java code; batch and API in class NARSBatch

- command line arguments : experience file + optionally --silence <1..100>

- new file README_USER.txt in disctribution

COMMIT:

- FIX build.bat and build.sh after adding one more package level

- update : "About" message: Open-NARS Version 1.5.2 April 2013

- prevent a NullpointerException in StructuralRules.java

EulerGUI 2.0 COMMIT

COMMIT:

- FIX post-Processing with EYE; tested in TestProjectSequence.testpostprocEYE()

( pave the way for removal of n3p project files : replace calls to ProjectFactory.restore() with ProjectFactory.restoreAny() )

- upgrade EYE Euler to 2013-04

- more comments

2013-04-05

Prova 3.2.1 is released

27 January 2013: Prova 3.2.1 is released. The version is a significant update with new features, enhancements and quality improvements. It includes the new SPARQL operators contributed by the Berlin University team (Malte Rohde) and now updated for OSGi-compatible OpenRDF, faster messaging layer, corrected join operator in the event processing stack, improved packaging of the binary distribution.

https://prova.ws/jira/secure/ReleaseNote.jspa?projectId=10000&version=10361

There are Maven artefacts:

https://prova.ws/index.html?page=downloads.php

https://prova.ws/jira/browse/PROVA-97

Indeed it works:

cd ~/src/prova.compact-3.2.1/rules/
 ../bin/prova3  sparql.prova

GitHub Prova repository is available at https://github.com/prova/prova (use git@github.com:prova/prova.git if you are a Prova collaborator).

NARS

Comparing NARS 1.5.0 and 1.3.3 code

In nars/inference, a lot of differences come from Memory object being transmitted as an argument with non static fields in 1.5.0 ( this denotes an intention to do multi-agent multi-thread application ?).

But there are also other differences...

There are few differences in nars/language/ and nars/storage/ .

nars/operation/ has been removed in 1.5.1 .

Again on issue 24 NARS

Running again the direct (failing) inference :

<b1 --> blue>.
<(*,r1,b1) --> pattern1>.
<<$1 --> blue> ==> <(*,r1,$1) --> pattern1>>?

In log window, I see that this is infered at step 35 :

 from task: $0.80;0.80;0.95$ <b1 --> blue>. %1.00;0.90%  
 from belief: <b1 --> (/,pattern1,r1,_)>. %1.00;0.90% {8 : 2} 
!!! Derived: $0.1718;0.1270;0.2230$ <<$1 --> blue> ==> <$1 --> (/,pattern1,r1,_)>>. %1.00;0.45%  {35 : 2;1}   

It is re-infered several times later, but never translated to the desired pattern.

Regular expression;

==> *<(\*,r1,$1) --> pattern1\| Derived: 

Regular expression;

==> *<(\*,r1,#1) --> pattern1\| Derived: 

==> *<(\*,r1,#1) --> pattern1\|==> *<#1 --> (\/,pattern1,r1,_)

Currently I'm deciphering the NARS 1.3.3 log that succeeds in 263 steps ...

Quite early a form very near the answer is obtained:

--- 19 ---
 * Selected Concept: b1
 * Selected TaskLink: $0.9426;0.8000;0.9487$  _@(T4-1) <b1 --> blue>. %1.0000;0.9000% {0 : 2} 
 * Selected TermLink: $0.1421;0.3394;0.4243$  _@(T4-1) <b1 --> (/,pattern1,r1,_)>
 * Selected Belief: <b1 --> (/,pattern1,r1,_)>. %1.0000;0.9000% {10 : 3} 
!!! Derived: $0.3628;0.3811;0.6690$ <(/,pattern1,r1,_) --> blue>. %1.0000;0.4475% {19 : 3;2} 
!!! Derived: $0.5548;0.3811;0.6690$ <blue --> (/,pattern1,r1,_)>. %1.0000;0.4475% {19 : 3;2} 
!!! Derived: $0.6183;0.3811;0.6690$ <(/,pattern1,r1,_) <-> blue>. %1.0000;0.4475% {19 : 3;2} 
!!! Derived: $0.3628;0.3811;0.6690$ <<#1 --> (/,pattern1,r1,_)>==><#1 --> blue>>. %1.0000;0.4475% {19 : 3;2} 
!!! Derived: $0.5548;0.3811;0.6690$ <<#1 --> blue>==><#1 --> (/,pattern1,r1,_)>>. %1.0000;0.4475% {19 : 3;2}

It is re-infered several times later.

But only much later is it translated to the desired pattern :

--- 262 ---
 * Selected Concept: pattern1
 * Selected TaskLink: $0.3147;0.3811;0.6690$  _@(T8-2-2-2) <<#1 --> blue> ==> <#1 --> (/,pattern1,r1,_)>>. %1.0000;0.4475% {114 : 3;2} 
!!! Derived: $0.0702;0.0850;0.2230$ <<#1 --> blue>==><(*,r1,#1) --> pattern1>>. %1.0000;0.4475% {262 : 3;2} 

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

From the NARS 1.5.2 log that fails, quite early a form very near the answer is also obtained, by the same inference:

--- 35 ---
 * Selected Concept: b1
 * Selected TaskLink: $0.5547;0.8000;0.9487$  _@(T4-1) <b1 --> blue>. %1.00;0.90%  {0 : 1} 
 * Selected TermLink: $0.1533;0.3394;0.4243$  _@(T4-1) <b1 --> (/,pattern1,r1,_)>
 * Selected Belief: <b1 --> (/,pattern1,r1,_)>. %1.0000;0.9000% {8 : 2} 
!!! Derived: $0.2368;0.3811;0.6690$ <(/,pattern1,r1,_) --> blue>. %1.00;0.45%  {35 : 2;1}   
 from task: $0.80;0.80;0.95$ <b1 --> blue>. %1.00;0.90%  
 from belief: <b1 --> (/,pattern1,r1,_)>. %1.00;0.90% {8 : 2} 
!!! Derived: $0.4263;0.3811;0.6690$ <blue --> (/,pattern1,r1,_)>. %1.00;0.45%  {35 : 2;1}   
 from task: $0.80;0.80;0.95$ <b1 --> blue>. %1.00;0.90%  
 from belief: <b1 --> (/,pattern1,r1,_)>. %1.00;0.90% {8 : 2} 
!!! Derived: $0.4890;0.3811;0.6690$ <(/,pattern1,r1,_) <-> blue>. %1.00;0.45%  {35 : 2;1}   
 from task: $0.80;0.80;0.95$ <b1 --> blue>. %1.00;0.90%  
 from belief: <b1 --> (/,pattern1,r1,_)>. %1.00;0.90% {8 : 2} 
!!! Derived: $0.2592;0.1938;0.3402$ <b1 --> (|,(/,pattern1,r1,_),blue)>. %1.00;0.81%  {35 : 2;1}   
 from task: $0.80;0.80;0.95$ <b1 --> blue>. %1.00;0.90%  
 from belief: <b1 --> (/,pattern1,r1,_)>. %1.00;0.90% {8 : 2} 
!!! Derived: $0.2610;0.1938;0.3402$ <b1 --> (&,(/,pattern1,r1,_),blue)>. %1.00;0.81%  {35 : 2;1}   
 from task: $0.80;0.80;0.95$ <b1 --> blue>. %1.00;0.90%  
 from belief: <b1 --> (/,pattern1,r1,_)>. %1.00;0.90% {8 : 2} 
!!! Derived: $0.1718;0.1270;0.2230$ <<$1 --> blue> ==> <$1 --> (/,pattern1,r1,_)>>. %1.00;0.45%  {35 : 2;1}

but the budget value is much less.

2013-04-04

COMMIT NARS

- popup window in the case of faulty line in the input window.

- NARS.java : remove useless prints

- change titles in 2 Examples

- small change in nars-dist/tests/nal6/

Known bugs and bad usability

When a system has known bugs, it begins to be difficult to use, because user does not trust it anymore, and relies on deductions on what can be wrong and what not, deductions that can fail.

As an example, my Ubuntu laptop suffers from a bug "extra HDMI display on laptop HP 4310S : slow mouse" , which in fact happens also with VGA.

Then, it happened that my optic mouse was on a bad surface; then I suspected the Ubuntu bug instead of me not having a suitable mouse pad. And so I lost lot of time during a course I was giving.

Search for tools

TODO EulerGUI 2.0

See EulerGUI TODO , TODO ideas for EulerGUI , TODO in EulerGUI

Research : BI and AI

reusing semantic web for BI:

2013-04-03

Dropping the conjunction :

Fails with 1.5 :

<b1 --> blue>.
<(*,r1,b1) --> pattern1>.
<<$1 --> blue> ==> <(*,r1,$1) --> pattern1>>?

Works with 1.3.3 :

  IN: <b1 --> blue>. %1.00;0.90% {0 : 2} 
  IN: <(*,r1,b1) --> pattern1>. %1.00;0.90% {0 : 3} 
  IN: <<#1 --> blue>==><(*,r1,#1) --> pattern1>>?  {0 : 4} 
263
 OUT: <<#1 --> blue>==><(*,r1,#1) --> pattern1>>. %1.00;0.45% {262 : 3;2} 

Pei's suggestion:

it may be easier to start from NAL-6 example

********** multiple variables introduction
IN: <{key1} --> (/,open,_,{lock1})>.
IN: <{key1} --> key>.
2
OUT: <<$1 --> key> ==> <$1 --> (/,open,_,{lock1})>>. %1.00;0.45% {2 : 1;2}

It works in 1.5.2, and is basically the same problem.

JMV: first input is the same as :

< (*, {key1},{lock1}) --> open >.

And "my" regression's question can be rewritten:

<<#1 --> blue>==>< #1 --> (/,pattern1,r1,_)> ?

So I tried this:

<b1 --> blue>.
<(*,r1,b1) --> pattern1>.
<<$1 --> blue> ==> < $1 --> (/,pattern1,r1,_)> ?
100

This works ( with silence == 62 ) :

46
 OUT: <b1 --> blue>?  {46 : 2;4} 
26
 OUT: <<$1 --> blue> ==> <$1 --> (/,pattern1,r1,_)>>. %1.00;0.45% {71 : 1;2} 

Thern the last step to desired conclusion is :

<<$1 --> blue> ==> <$1 --> (/,pattern1,r1,_)>>.
<<$1 --> blue> ==> <(*,r1,$1) --> pattern1>>?
20

with result:

 OUT: <<$1 --> blue> ==> <(*,r1,$1) --> pattern1>>. %1.00;0.90% {19 : 1} 

So, I'm puzzled, because I have 2 inferences runs : A |- B , B |- C but the direct inference A |- C fails ! To be sure, I ran to 50 000 steps :

<b1 --> blue>.
<(*,r1,b1) --> pattern1>.
<<$1 --> blue> ==> <(*,r1,$1) --> pattern1>>?

My understanding was that to debug a NARS case, each step could separately checked, and the global direct inference should then work.

TODO:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at nars.gui.MainWindow.actionPerformed(MainWindow.java:292)

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

% Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at nars.inference.BudgetFunctions.compoundForward(BudgetFunctions.java:233)
at nars.inference.StructuralRules.transformPredicatePI(StructuralRules.java:519)
at nars.inference.StructuralRules.transformProductImage(StructuralRules.java:356)
at nars.inference.RuleTables.transformTask(RuleTables.java:572)
at nars.entity.Concept.fire(Concept.java:413)
at nars.storage.Memory.processConcept(Memory.java:392)
at nars.storage.Memory.workCycle(Memory.java:343)
at nars.main_nogui.ReasonerBatch.doTick(ReasonerBatch.java:145)
at nars.main.Reasoner$1.run(Reasoner.java:60)

Inspired by end of run in NARS 1.3.3 ( 1.5 syntax ): does not work !!!!

<r1 --> red>.
<b1 --> blue>.
<(*,r1,b1) --> pattern1>.
<(&&,<$1 --> blue>,<$2 --> red>) ==> <$2 --> (/,pattern1,_,$1)>>.

Inspired by end of run in NARS 1.3.3 : does not work !!!!

<r1 --> red>.
<b1 --> blue>.
<(*,r1,b1) --> pattern1>.
<(&&,<#1 --> blue>,<#2 --> red>) ==> <#2 --> (/,pattern1,_,#1)>>.

End of run in NARS 1.3.3

--- 1071 ---
 * Selected Concept: pattern1
 * Selected TaskLink: $0.2143;0.2371;0.5358$  _@(T8-2-2-1) <(&&,<#1 --> blue>,<#2 --> red>) ==> <#2 --> (/,pattern1,_,#1)>>. %1.0000;0.2871% {751 : 3;1;2} 

This does not give anything in NARS 1.3.3

<r1 --> red>.
<b1 --> blue>.
// The third statement is the derived result from Case #1
<(*,r1,b1) --> pattern1>.
// NARS is then asked if the remaining initial statement from Case 1 is true
<(&&, <r1 --> red>,<#b --> blue>) ==> <(*,r1,#b) --> pattern1>>?
1000

This does not give anything in NARS 1.5

<r1 --> red>.
<b1 --> blue>.
// The third statement is the derived result from Case #1
<(*,r1,b1) --> pattern1>.
// NARS is then asked if the remaining initial statement from Case 1 is true
<(&&, <r1 --> red>,<$b --> blue>) ==> <(*,r1,$b) --> pattern1>>?
1000

**** Matt's case 2 for NARS 1.3.3
<r1 --> red>.
<b1 --> blue>.
// The third statement is the derived result from Case #1
<(*,r1,b1) --> pattern1>.
// NARS is then asked if the remaining initial statement from Case 1 is true
<(&&, <#r --> red>,<#b --> blue>) ==> <(*,#r,#b) --> pattern1>>?
1072

Does not work :

<r1 --> red>.
<b1 --> blue>.
// The third statement is the derived result from Case #1<(*,r1,b1) --> pattern1>.
<(&&,<b1 --> blue>,<r1 --> red>) ==> <(*,r1,b1) --> pattern1>>?

IN: <(&&,<b1 --> blue>,<r1 --> red>) ==>
<(*,$1,$2) --> pattern1>>? {0 : 4} 

IN: <(&&,<b1 --> blue>,<r1 --> red>) ==>
<(*,r1,b1) --> pattern1>>? {0 : 4} 

With NARS 1.3.3 :

  IN: <r1 --> red>. %1.00;0.90% {0 : 1} 
  IN: <b1 --> blue>. %1.00;0.90% {0 : 2} 
  IN: <(*,r1,b1) --> pattern1>. %1.00;0.90% {0 : 3} 
  IN: <(&&,<#1 --> blue>,<#2 --> red>)==><(*,#2,#1) --> pattern1>>?  {0 : 4} 
1072
 OUT: <(&&,<#1 --> blue>,<#2 --> red>)==><(*,#2,#1) --> pattern1>>. %1.00;0.29% {1071 : 3;1;2} 

**** Deduction , Exemplification : no result
< M --> P >.
< S --> M >.
<< S --> $x > ==> < P --> $x >> ?

2013-04-02

NARS

nars-dist/tests/nal6/variable-elimination-in.nars : no result

- add unit tests in nars-dist/tests/nal6:

variable-elimination-in.nars , independent_variable_introduction-in.nars

TODO : most tests do not bear result

- add unit tests in nars-dist/tests/nal5 :

syllogism-in.nars

- add longer titles in NAL4-in.txt

- remove debug print in ParameterWindow.java

<M --> P>.
<M --> S>.
<$x ==> $y >?

{(#x → P ) ⇒ (M → (⊥ R #x )), M → S}
|-
((#y → S) ∧ (#x → P )) ⇒ (#y → (⊥ R #x )) Find

mail to the list

I added in new directory nars-dist/tests , unit tests for NAL 5 and 6 .

http://code.google.com/p/open-nars/source/browse/#svn%2Ftrunk%2Fnars-dist%2Ftests%2Fnal5

http://code.google.com/p/open-nars/source/browse/#svn%2Ftrunk%2Fnars-dist%2Ftests%2Fnal6

The results looks OK for NAL 5 .

But for NAL 6, only the one from "Table 8.3: Sample Independent-Variable Introduction Rules" works :

**** Induction
<M --> P>.
<M --> S>.
<<$x --> S> ==> <$x --> P>>?
4

The ones I made by combining Table 8.3 (p. 52) and Table 3.3 ( Basic Syllogistic Rules p. 18 ) do not bear any result , like :

**** Exemplification , Deduction : no result !!!
< P --> M >.
< M --> S >.
<<$x --> S> ==> <$x --> P>>?
<<$x --> P> ==> <$x --> S>>?
600

The tests in variable-elimination-in.nars also do not bear any result , like :

le Independent-Variable Elimination Rules
// ded
<<#x --> S> ==> <#x --> P >>.
< M --> S >.
<M --> P >?
600

2013-04-01

s/→/-->/g
s/↔/<->/g
s/⇒/==>/g
s/⇔/<=>/g
s/()//
s/(/</g
s/)/>/g
s/{/</g
s/}/>/g
s/,/./
s/(⊥/(/,/

s/^/</
s/$/>./

J2 \ J1

S → M f2 , c 2

M → S f2 , c 2

M → P f1 , c 1

S → P < Fded >

P → S < Fexe >

S → P < Find >

P → S < Find >

P → M f1 , c1

S → P < Fabd >

P → S < Fabd >

S → P < Fexe >

P → S < Fded >

Table 3.3: The Basic Syllogistic Rules

?????

Theorem 5 (S E = P E ) ≡ (S I = P I ).

This means that in IL-1 the extension and intension of a term are mutually determined. Consequently, one of the two uniquely determines the meaning of a term.

2013-03-31

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

There is a way to assert a atomic fact like in Prolog:

a.

Like here :

  IN: <a ==> (&&,b,c)>. %1.00;0.90% {0 : 1} 
  IN: a. %1.00;0.90% {0 : 2} 
1
 OUT: (&&,b,c). %1.00;0.81% {1 : 1;2} 
2
 OUT: (&&,b,c). %1.00;0.81% {3 : 2;1} 
7
 OUT: b. %1.00;0.81% {10 : 1;2} 
1
 OUT: c. %1.00;0.81% {11 : 1;2} 

No result ??? :

< a ==> (&&,b,c)>.
< a0 --> a>.

  IN: <<robin --> bird> ==> (&&,<robin --> animal>,<robin --> flyer>)>. %1.00;0.90% {0 : 1} 
  IN: <<robin --> bird> ==> <robin --> flyer>>?  {0 : 2} 

wang.inheritance_nal.pdf : explains NAL1 ; nice swan+penguin+dove example.

Definition 40

For a relation R and a product (× T1 T2 ), the extensional image operator, ‘⊥’, and intensional image operator, ‘ T’, of the relation on the product are defined as the following, respectively:

((× T1 T2 ) → R) ≡ (T1 → (⊥ R <> T2 )) ≡ (T2 → (⊥ R T1 <> ))

(R → (× T1 T2 )) ≡ (( T R <> T2 ) → T1 ) ≡ (( T R T1 <> ) → T2 )

2013-03-30

NARS

Mail to the list: code complete with respect to the NAL 1 to 6 specification?

Is the current 1.5.1 (1.5.2) implementation code complete with respect to the NAL 1 to 6 specification? Or are there some know unimplemeted things with respect to NAL specification?

Can last public document "Non-Axiomatic Logic (NAL) Specification" of September 15, 2010 be considered THE NAL specification? Or does latest 2003 book brings novel things for levels 1 to 6 ?

There does not seem to be a complete and systematic coverage of unit tests in line with the NAL specification (the Examples directory has been used as non-regression test, but it is not a test suite corresponding one to one to NAL Specification) .

I think that, in order to make NARS more reliable and robust ( and as a side effect fix Matt pattern matching case 2 ) it would be nice to write such a complete set of unit tests in line with the NAL 6 specification ( and levels 1 to 5 also later, but I'm more confident there ).

Or do think of a more useful task I could achieve with my current level of knowledge? Maybe selected code reading ?

Admitting that the coverage is complete with respect to the specification, are there theoretical or pragmatic arguments about the system reaching an answer to a query that is known to be a suite of legimitate steps ? And if yes, are there some rigourous or heuristic upper bound of the number of steps necessary ?

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

For a complete redesign, the NAL specification should be directly leveraged, either by reusing the formal sepc. directly in some formal language and engine, like Prolog, or by generating code ( e.g. Java or Scala ) from it.

Digging more Case 2

  IN: <(*,red,blue) --> pattern1>. %1.00;0.90% {0 : 1} 
  IN: << blue --> $b >==><(*,red,$b) --> pattern1>>?  {0 : 2}
3000

2013-03-29

Yesterday heard Martin Odersky at Devoxx.

NARS

Digging more Case 2

  IN: <r1 --> red>. %1.00;0.90% {0 : 1} 
  IN: <b1 --> blue>. %1.00;0.90% {0 : 2} 
  IN: <(*,r1,b1) --> pattern1>. %1.00;0.90% {0 : 3} 
  IN: <(*,red,blue) --> pattern1>?  {0 : 4} 
627
 OUT: <(*,red,blue) --> pattern1>. %1.00;0.42% {626 : 1;3;2} 

I never had such a long reasoning in NARS !

<(*,red,blue) --> pattern1>.
<<$b --> blue> ==> <(*,red,$b) --> pattern1>>?
5000

Pattern 2 in Matt Zaikowski

Pattern 2 in Matt Zaikowski's pattern matching works in NARS 1.5.2 :

  IN: <(&&,<$1 --> [blue]>,<$2 --> [green]>,<$3 --> [red]>) ==> <(*,$3,$1,$2) --> pattern2>>. %1.00;0.90% {0 : 1} 
  IN: <{r1} --> [red]>. %1.00;0.90% {0 : 2} 
  IN: <{b1} --> [blue]>. %1.00;0.90% {0 : 3} 
  IN: <{g1} --> [green]>. %1.00;0.90% {0 : 4} 
  IN: <(*,{r1},{b1},{g1}) --> pattern2>?  {0 : 5} 
128
 OUT: <(*,{r1},{b1},{g1}) --> pattern2>. %1.00;0.66% {127 : 1;3;4;2} 

This is similar to Pattern 1 case 1 .

Matt's pattern matching case again

http://code.google.com/p/open-nars/issues/detail?id=24

Case 1 does work either with 1.3.3 or with 1.5.2 .



Case 2 does not work neither with 1.3.3 nor with 1.5.2 .

Even when simplified thus :

<r1 --> red>.
<b1 --> blue>.
// The third statement is the derived result from Case #1
<(*,r1,b1) --> pattern1>.
// NARS is then asked if the remaining initial statement from Case 1 is true
<(&&, <$r --> red>,<$b --> blue>) ==> <(*,$r,$b) --> pattern1>>?
1000

Case 3 does work with 1.3.3.

  IN: <(&&,<#1 --> [blue]>,<#2 --> [red]>)==><(*,#2,#1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <(*,{r1},{b1}) --> pattern1>. %1.00;0.90% {0 : 2} 
  IN: <{r1} --> ?1>?  {0 : 3} 
91

 OUT: <{r1} --> [red]>. %1.00;0.40% {87 : 2;1} 

but with 1.5.2 the result is not the one expected, even with 2000 steps:

  IN: <(&&,<$1 --> [blue]>,<$2 --> [red]>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <(*,{r1},{b1}) --> pattern1>. %1.00;0.90% {0 : 2} 
  IN: <{r1} --> ?1>?  {0 : 3} 
50
 OUT: <{r1} --> (/,pattern1,_,{b1})>. %1.00;0.90% {23 : 2} 

COMMIT: slider for silence level , etc

I consider using PropertyChangeSupport for the silence level.

COMMIT NARS:

- update the slider to the correct value when app. has been started with

       --silence 100

- slider for silence level has max. value 100 (was 101)

- add script make_release.sh

- add nars-dist/README_USER.txt

- remove from version control : nars-dist/javadoc

2013-03-27

Jigsaw ?

String interpolation

Javascript

null checking?

NARS pattern_matching1 regression: found a simpler case OK

  IN: <(&&,<$1 --> [blue]>,<$2 --> [red]>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <r1 --> [red]>. %1.00;0.90% {0 : 2} 
  IN: <{b1} --> [blue]>. %1.00;0.90% {0 : 3} 
  IN: <(*,r1,{b1}) --> pattern1>?  {0 : 4} 
60
 OUT: <(*,r1,{b1}) --> pattern1>. %1.00;0.73% {59 : 3;2;1} 

  IN: <(&&,<$1 --> [blue]>,<$2 --> red>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <{r1} --> red>. %1.00;0.90% {0 : 2} 
  IN: <{b1} --> [blue]>. %1.00;0.90% {0 : 3} 
  IN: <(*,{r1},{b1}) --> pattern1>?  {0 : 4} 
38
 OUT: <(*,{r1},{b1}) --> pattern1>. %1.00;0.73% {37 : 3;2;1} 

Keeping all [] and all {} but putting a variable-less term in rhs of ==> : also makes it work :

 IN: <(&&,<$1 --> [blue]>,<{r1} --> [red]>) ==> <(*,{r1},$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <{r1} --> [red]>. %1.00;0.90% {0 : 2} 
  IN: <{b1} --> [blue]>. %1.00;0.90% {0 : 3} 
  IN: <(*,{r1},{b1}) --> pattern1>?  {0 : 4} 
6
 OUT: <(*,{r1},{b1}) --> pattern1>. %1.00;0.73% {5 : 1;3;2} 

Removing all {} makes it work :

  IN: <(&&,<$1 --> [blue]>,<$2 --> [red]>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <r1 --> [red]>. %1.00;0.90% {0 : 2} 
  IN: <b1 --> [blue]>. %1.00;0.90% {0 : 3} 
  IN: <(*,r1,b1) --> pattern1>?  {0 : 4} 
29
 OUT: <(*,r1,b1) --> pattern1>. %1.00;0.73% {28 : 3;2;1} 

Removing all [] makes it work :

  IN: <(&&,<$1 --> blue>,<$2 --> red>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <{r1} --> red>. %1.00;0.90% {0 : 2} 
  IN: <{b1} --> blue>. %1.00;0.90% {0 : 3} 
  IN: <(*,{r1},{b1}) --> pattern1>?  {0 : 4} 
4
 OUT: <(*,{r1},{b1}) --> pattern1>. %1.00;0.73% {3 : 3;2;1} 

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

pattern_matching1 regression: found a simpler case running with NARS 1.5.2

( eliminated all [] and {} )

With 1.3.3 : pattern_matching_1.3.3_case1_simpler.nars

  IN: <(&&,<#1 --> blue>,<#2 --> red>)==><(*,#2,#1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <r1 --> red>. %1.00;0.90% {0 : 2} 
  IN: <b1 --> blue>. %1.00;0.90% {0 : 3} 
  IN: <(*,r1,b1) --> pattern1>?  {0 : 4} 
46
 OUT: <(*,r1,b1) --> pattern1>. %1.00;0.73% {45 : 1;3;2} 

With 1.5.2 :

 IN: <(&&,<$1 --> blue>,<$2 --> red>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <r1 --> red>. %1.00;0.90% {0 : 2} 
  IN: <b1 --> blue>. %1.00;0.90% {0 : 3} 
  IN: <(*,r1,b1) --> pattern1>?  {0 : 4} 
75
 OUT: <(*,r1,b1) --> pattern1>. %1.00;0.73% {74 : 3;2;1} 

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

Game use case:

//e001 is an enemy.
<{e001} --> enemy>.
//If anything is struck with something that is a weapon, then it will gain the struck property. 
<(&&,<#1 --> (/,^strike,#2(),_)>,<#2() --> weapon>) ==> <#1 --> [struck]>>. 
//w002 is a weapon.
<{w002} --> weapon>.

(&&,<#1() --> [struck]>,<#1() --> enemy>)! 

NARS

http://code.google.com/p/open-nars/issues/list?can=1&q=&sort=-id&colspec=ID%20Type%20Status%20Priority%20Milestone%20Owner%20Summary

AGI thoughts

In AI, and even more in AGI, there is room for two kinds of research: theory and experiment.

This is much like theoretical physics and experimental physics.

In physics the division of work is well recognized, although there are physicists that do both.

Experiments suggest new theories, and theories inspire new experiments. So is the virtuous circle.

But in AGI, often the same people do both theory and experiment.

And the circle is not so virtuous.

The analogy goes further: just as physicists have measurement aparatarus that they don't build, some AI researchers use Prolog, Haskell, LISP dialects, or even conventional procedural programming languages like C++, Java, Python.

barely able to reproduce the nominal cases in an article

don't have the reusability to sustain open ended experiments

biology

experimental mathematics

workbench

exchange formats

CLIPS + semantic web

https://www.google.fr/search?q=clips+semantic+web

http://protege.stanford.edu/doc/design/clips.html

http://iswc2011.semanticweb.org/fileadmin/iswc/Papers/In-Use/70320241.pdf

EulerGUI TODO

2013-03-26

InferenceSwingWorker.doInBackground (): class eulergui.inference.yap.YapInferenceEngine
N3Source.manageN3Cache() 1: n3Source.location(): file:/home/jmv/src/eulergui-code/eulergui/test/long_lasting_rule.n3
EyeHelper.reasonExternalProlog(): argumentsArray: [--nope, --pass, /home/jmv/src/eulergui-code/eulergui/test/long_lasting_rule.n3]
Id: euler.yap 6041 2013-02-26 16:02:58Z josd
YAP 6.2.3 (i686-linux): Sat Jun 16 23:34:26 CEST 2012
starting 64 [msec cputime] 98 [msec walltime]
GET file:///home/jmv/src/eulergui-code/eulergui/test/long_lasting_rule.n3 SC=3
networking 4 [msec cputime] 11 [msec walltime]
java.lang.RuntimeException: java.lang.InterruptedException: sleep interrupted
at euler.Process.execute(Process.java:49)
at euler.ProofEngine.runProofEngine(ProofEngine.java:199)
at euler.ProofEngine.runProofEngine(ProofEngine.java:218)
at n3_project.helpers.EyeHelper.reasonExternalProlog(EyeHelper.java:54)
at eulergui.project.Project.reasonExternalProlog(Project.java:554)
at eulergui.inference.yap.YapInferenceEngine.launch(YapInferenceEngine.java:20)
at eulergui.gui.inference.InferenceSwingWorker.launchAndDisplayErrors(InferenceSwingWorker.scala:49)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:44)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:21)
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:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at euler.Process.execute(Process.java:44)

<(&&, ({#x} -> key), ({#y} -> lock)) => ({#x × #y} -> open)>.
<(&&, ({#x} -> key), ({#y} -> lock)) => ((*,#x, #y) -> open)>.
// [“Every key opens every lock.”]

Proof reading NAL NARS Wang book

page line text comment or correction
71 8 The concept-level space competition causes some low-priority concepts to lose space, while their correspondent terms may still exist in the tasks and beliefs stored in other concepts. Consequently, while each concept is still named by a term, some terms may no longer name any existing concept. not clear
73 23 its parent has been forgot.
113 17 and (/dissolvewater ) and (/dissolve water )

http://lite.framapad.org/p/eulergui

Try to build SWI Prolog

./configure --with-world
cd src ; make clean && make && make install ;
sudo chown -R jmv:jmv /home/jmv/lib/swipl-6.3.12
cd ../packages
 ./configure
make clean && make -k ; make install

gcc -c -O2 -Wall -fno-strict-aliasing -pthread -fPIC -I/home/jmv/src/pl-devel/src/../include -I. -I/home/jmv/src/pl-devel/packages/xpce/src -DHAVE_CONFIG_H -D__SWI_PROLOG__ -I/usr/include -I/usr/include/freetype2   img/imgutil.c -o img/imgutil.o
In file included from img/imgutil.c:25:0:
 ./h/kernel.h:1422:57: erreur fatale: names.ih : Aucun fichier ou dossier de ce type

NARS

Design a null Task

NARS question : save and reload the current state of NARS ?

How to save and reload the current state of NARS ?

What I aim is a serialization of the memory to a snapshot file ( like frozen memory ).

There are at least 3 uses cases:

  1. for a real NARS based application, it is necessary to save current experience before stopping and restarting the system;
  2. be able to import an experience into an existing system, thus allowing to merge experiences;
  3. make it easier to design tests having one run phase only, by saving a state in a larger run.

Is it possible to save and reload the current state only in NARSese ?

There is the global static field Stamp.currentSerial .

Is there some other kind of extra memory?

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

Zeno's remarks:

<jmvanel> NARS is an iterative program ; it reads inputs at some steps, or just "thinks" ;

but currently, I don't know if there is a way to stop NARS and restart it where it was.

"Save experience" is a toggle ; when activated, subsequent steps are recorded in the given file , but as OUT: lines .

<jmvanel> rszeno, can you tell me what is unclear ?

<rszeno> where is the border between processing data and controling the machine who is doing this?

<rszeno> narsese have a tasks facility, probably in upper levels of narsese, upper then nal6

<rszeno> architecture is unclear, so both questions will stay open untill somebody will explain how to controll the machine, imo

<rszeno> the state of the machine is given by its experience which is a set of statements

<rszeno> is starting with a empty set, so for 1. restarting means removing all experiences? only a subset of them?

<rszeno> saving the state is trivial, save all experieces that exists

<rszeno> for 2. importing is just a union of two sets of experiences, will be never a problem

<rszeno> about 3. hard to say something, what a test mean?

<rszeno> i not to chatty today, 'global warming' hit again here and we have snow again

<jmvanel> :)

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

Updated My NARS TODO list .

2013-03-25

Fixing NARS test suite

Almost similar:

nars-dist/Examples/Example-MultiStep.txt nars-dist/Examples/MultiStepExamples-out.txt

update nars-dist/Examples/MultiStepExamples-in.txt

Revision 222:

Finished comparison for file:nars-dist/Examples/Example-NAL2-in.txt line 108
Test file nars-dist/Examples/bugfix_inherit_negation-in.txt
  IN: <a --> b>. %1.00;0.90% {0 : 3} 
DIFFERS from reference (l 1):
  IN: <a --> b>. %1.00;0.90% {0 : 1} 
  IN: <a --> (--,b)>. %1.00;0.90% {0 : 4} 
DIFFERS from reference (l 2):
  IN: <a --> (--,b)>. %1.00;0.90% {0 : 2} 
Finished comparison for file:nars-dist/Examples/bugfix_inherit_negation-in.txt line 2

HEAD (Revision 226):

Test file nars-dist/Examples/MultiStepExamples-in.txt
Finished comparison for file:nars-dist/Examples/MultiStepExamples-in.txt line 140
Test file nars-dist/Examples/bugfix_inherit_negation-in.txt
  IN: <a --> b>. %1.00;0.90% {0 : 8} 
DIFFERS from reference (l 1):
  IN: <a --> b>. %1.00;0.90% {0 : 1} 
  IN: <a --> (--,b)>. %1.00;0.90% {0 : 9} 
DIFFERS from reference (l 2):
  IN: <a --> (--,b)>. %1.00;0.90% {0 : 2} 

In isolation: HEAD (Revision 226):

  IN: <a --> b>. %1.00;0.90% {0 : 1} 
  IN: <a --> (--,b)>. %1.00;0.90% {0 : 2} 

2013-03-24

https://maven.java.net/content/repositories/snapshots/net/jthink/jaudiotagger/

http://blog.opencog.org/2013/03/24/why-hypergraphs/

2013-03-23

http://en.wikipedia.org/wiki/Abductive_logic_programming

2013-03-22

Creating Web Applications in SWI-Prolog

http://www.pathwayslms.com/swipltuts/html/index.html#5

A Prolog Compendium, Marc Bezem http://www.ii.uib.no/~bezem/Prolog_Tutorial.pdf

<jmvanel> Hi in swi , how can I load from an URL ?

jmvanel> is there some central site for reusable prolog algorithms ?

http://clipsinterface.sourceforge.net/WebCLIPS/IDECLIPS.htm

NARS : MultiStepExamples in test suite

COMMIT NARS

- add MultiStepExamples-in.txt to test suite

- add command line argument --silence <integer>

- in NARSBatch, run with a BufferedReader and a BufferedWriter

TODO : a CLI app http://en.wikipedia.org/wiki/Command-line_interface

there is a middle ground between

We should design some way to accelarate the experimental work and developments :

Simple enhancements are already done that help:

EulerGUI testXMLOutputFromRDF trouble

Currently just one Failed test.

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

2013-03-20

http://www.scalastyle.org/rules-0.2.0.html

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  testReasonOnce(eulergui.project.TestProject): ERROR in reasoning with External Prolog: [--nope, /home/jmv/src/eulergui/examples/transitiveProp.n3, --query, /home/jmv/src/eulergui/examples/transitiveProp-query.n3]
  testReasonTwice(eulergui.project.TestProject): ERROR in reasoning with External Prolog: [--nope, /home/jmv/src/eulergui/examples/transitiveProp.n3, --query, /home/jmv/src/eulergui/examples/transitiveProp-query.n3]
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)

Tests run: 203, Failures: 1, Errors: 6, Skipped: 0

Scala compiler bug : no-symbol does not have an owner

https://issues.scala-lang.org/browse/SI-7274

<jmvanel> Hi I have a compiler bug report , but I can't report it : the button in eclipse does nothing ; after Jira login there is no new bug button !

import java.beans.PropertyChangeEvent
import java.beans.PropertyChangeListener
import javax.swing.JFrame
import javax.swing.SwingWorker

class InferenceProgressFrame [Result, Intermediate] extends JFrame {
    def setProgress(progress: Int): Unit = {}
}

class C1 extends SwingWorker[Int, String ] {
  var frame = new InferenceProgressFrame [Int, String ]
  def pc = (new PropertyChangeListener {
    def propertyChange(evt: PropertyChangeEvent): Unit = {
      frame.setProgress(11)
    }
  });
  override def doInBackground : Int = { 22 }
}

DescriptionResourcePathLocationType
Error in Scala compiler:       while compiling: /home/jmv/src/eulergui/src/main/scala/eulergui/gui/inference/InferenceSwingWorker.scala         during phase: global=explicitouter, atPhase=erasure      library version: version 2.10.1     compiler version: version 2.10.1   reconstructed args: -classpath /home/jmv/apps/jdk1.7.0_17/jre/lib/resources.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/rt.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jsse.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jce.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/charsets.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jfr.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/sunjce_provider.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/zipfs.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/sunec.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/localedata.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/sunpkcs11.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/dnsns.jar:/home/jmv/src/eulergui/classes-eclipse:/home/jmv/.m2/repository/javax/jms/jms/1.1/jms-1.1.jar:/home/jmv/.m2/repository/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar:/home/jmv/.m2/repository/java2rdf/all/current/all-current.jar:/home/jmv/.m2/repository/parser4j/all/trunk3/all-trunk3.jar:/home/jmv/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/home/jmv/.m2/repository/org/antlr/antlr/3.3/antlr-3.3.jar:/home/jmv/.m2/repository/org/antlr/antlr-runtime/3.3/antlr-runtime-3.3.jar:/home/jmv/.m2/repository/aterm/aterm-java/1.6/aterm-java-1.6.jar:/home/jmv/.m2/repository/org/eclipse/emf/common/2.4.0.v200902171115/common-2.4.0.v200902171115.jar:/home/jmv/.m2/repository/org/eclipse/uml2/common/1.4.0.v200805131030/common-1.4.0.v200805131030.jar:/home/jmv/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar:/home/jmv/.m2/repository/commons-codec/commons-codec/1.5/commons-codec-1.5.jar:/home/jmv/.m2/repository/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar:/home/jmv/.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar:/home/jmv/.m2/repository/org/drools/drools-compiler/5.5.0.Final/drools-compiler-5.5.0.Final.jar:/home/jmv/.m2/repository/org/drools/drools-core/5.5.0.Final/drools-core-5.5.0.Final.jar:/home/jmv/.m2/repository/org/eclipse/jdt/core/compiler/ecj/3.5.1/ecj-3.5.1.jar:/home/jmv/.m2/repository/org/eclipse/emf/ecore/2.4.2.v200902171115/ecore-2.4.2.v200902171115.jar:/home/jmv/.m2/repository/euler/euler/2013-01/euler-2013-01.jar:/home/jmv/.m2/repository/com/hp/hpl/jena/Gloze/1.01-beta2/Gloze-1.01-beta2.jar:/home/jmv/.m2/repository/att/grappa/1.2/grappa-1.2.jar:/home/jmv/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/home/jmv/.m2/repository/org/apache/httpcomponents/httpclient/4.1.2/httpclient-4.1.2.jar:/home/jmv/.m2/repository/org/apache/httpcomponents/httpcore/4.1.3/httpcore-4.1.3.jar:/home/jmv/.m2/repository/com/ibm/icu/icu4j/50.1/icu4j-50.1.jar:/home/jmv/.m2/repository/org/slf4j/jcl-over-slf4j/1.6.4/jcl-over-slf4j-1.6.4.jar:/home/jmv/.m2/repository/jdepend/jdepend/2.9.1/jdepend-2.9.1.jar:/home/jmv/.m2/repository/org/jedit/jedit/4.3.1/jedit-4.3.1.jar:/home/jmv/.m2/repository/org/netbeans/jemmy/2.2.7.5/jemmy-2.2.7.5.jar:/home/jmv/.m2/repository/org/apache/jena/jena-arq/2.9.4/jena-arq-2.9.4.jar:/home/jmv/.m2/repository/org/apache/jena/jena-core/2.7.4/jena-core-2.7.4.jar:/home/jmv/.m2/repository/org/apache/jena/jena-iri/0.9.4/jena-iri-0.9.4.jar:/home/jmv/.m2/repository/org/apache/jena/jena-tdb/0.9.4/jena-tdb-0.9.4.jar:/home/jmv/.m2/repository/org/jgrapht/jgrapht-jdk1.5/0.7.3/lib/jgraph.jar:/home/jmv/.m2/repository/org/jgrapht/jgrapht-jdk1.5/0.7.3/jgrapht-jdk1.5-0.7.3.jar:/home/jmv/.m2/repository/jline/jline/2.9/jline-2.9.jar:/home/jmv/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/jmv/.m2/repository/org/drools/knowledge-api/5.5.0.Final/knowledge-api-5.5.0.Final.jar:/home/jmv/.m2/repository/org/drools/knowledge-internal-api/5.5.0.Final/knowledge-internal-api-5.5.0.Final.jar:/home/jmv/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/jmv/.m2/repository/org/mvel/mvel2/2.1.3.Final/mvel2-2.1.3.Final.jar:/home/jmv/.m2/repository/org/semanticweb/yars/nx/parser/NxParser/1.2.1/NxParser-1.2.1.jar:/home/jmv/.m2/repository/opensymphony/oscache/2.4.1/oscache-2.4.1.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-api/3.4.2/owlapi-api-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-apibinding/3.4.2/owlapi-apibinding-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-impl/3.4.2/owlapi-impl-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-parsers/3.4.2/owlapi-parsers-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-tools/3.4.2/owlapi-tools-3.4.2.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/antlr/antlr-runtime-3.2.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/aterm-java-1.6.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jaxb/jaxb-api.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/arq-2.8.4.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/icu4j-3.4.4.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/iri-0.8-sources.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/iri-0.8.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/jena-2.6.3-tests.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/jena-2.6.3.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/junit-4.5.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/log4j-1.2.13.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/lucene-core-2.3.1.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/slf4j-api-1.5.8.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/slf4j-log4j12-1.5.8.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/stax-api-1.0.1.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/wstx-asl-3.2.9.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/xercesImpl-2.7.1.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jetty/commons-logging-api.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jetty/jetty.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jgrapht/jgrapht-jdk1.5.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/junit/junit.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapiv3/owlapi-bin.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapiv3/owlapi-src.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-core.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-datatypes.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-dig.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-el.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-explanation.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-jena.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-modularity.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-owlapi.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-owlapiv3.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-pellint.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-query.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-rules.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-test.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/servlet.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/xsdlib/relaxngDatatype.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/xsdlib/xsdlib.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapi/owlapi-bin.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapi/owlapi-src.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-2.2.2.jar:/home/jmv/.m2/repository/relaxngDatatype/relaxngDatatype/20020414/relaxngDatatype-20020414.jar:/home/jmv/.m2/repository/net/sf/saxon/saxon/8.7/saxon-8.7.jar:/home/jmv/.m2/repository/net/sf/saxon/saxon-dom/8.7/saxon-dom-8.7.jar:/home/jmv/.m2/repository/org/scala-lang/scala-swing/2.10.0/scala-swing-2.10.0.jar:/home/jmv/.m2/repository/org/slf4j/slf4j-api/1.6.4/slf4j-api-1.6.4.jar:/home/jmv/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar:/home/jmv/.m2/repository/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar:/home/jmv/.m2/repository/org/eclipse/uml2/uml/2.2.2.v200811051031/uml-2.2.2.v200811051031.jar:/home/jmv/.m2/repository/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar:/home/jmv/.m2/repository/org/eclipse/emf/ecore/xmi/2.4.1.v200902171115/xmi-2.4.1.v200902171115.jar:/home/jmv/.m2/repository/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar:/home/jmv/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar:/home/jmv/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar:/home/jmv/.m2/repository/xsdlib/xsdlib/20030225/xsdlib-20030225.jar:/home/jmv/.m2/repository/com/thoughtworks/xstream/xstream/1.4.3/xstream-1.4.3.jar -Xcheck-null -deprecation -Xcheckinit -explaintypes -g:notailcalls -Ywarn-dead-code -bootclasspath /home/jmv/apps/jdk1.7.0_17/jre/lib/resources.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/rt.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/sunrsasign.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jsse.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jce.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/charsets.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jfr.jar:/home/jmv/apps/jdk1.7.0_17/jre/classes:/home/jmv/apps/eclipse4/configuration/org.eclipse.osgi/bundles/738/1/.cp/lib/scala-library.jar -unchecked -Xpluginsdir /home/jmv/apps/eclipse/configuration/org.eclipse.osgi/bundles/630/1/.cp/lib    last tree to typer: Ident(mayInterruptIfRunning)               symbol: value mayInterruptIfRunning (flags: <param> <triedcooking>)    symbol definition: mayInterruptIfRunning: Boolean                  tpe: Boolean        symbol owners: value mayInterruptIfRunning -> method cancelInferenceRun -> class InferenceSwingWorker -> package inference       context owners: value evt -> method propertyChange -> anonymous class $anon -> constructor InferenceSwingWorker -> class InferenceSwingWorker -> package inference  == Enclosing template or block ==  DefDef( // def propertyChange(evt: java.beans.PropertyChangeEvent): Unit   <method>   "propertyChange"   []   // 1 parameter list   ValDef( // evt: java.beans.PropertyChangeEvent     <param>     "evt"     <tpt> // tree.tpe=java.beans.PropertyChangeEvent     <empty>   )   <tpt> // tree.tpe=Unit   Apply( // def setProgress(progress: Int): Unit in class InferenceProgressFrame, tree.tpe=Unit     InferenceSwingWorker.this.eulergui$gui$inference$InferenceSwingWorker$$frame()."setProgress" // def setProgress(progress: Int): Unit in class InferenceProgressFrame, tree.tpe=(progress: Int)Unit     11   ) )  == Expanded type of tree ==  TypeRef(TypeSymbol(final abstract class Boolean extends AnyVal))  no-symbol does not have an ownereulerguiUnknownScala Problem

2013-03-19

[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.4
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   org.drools:drools-compiler ............... 5.5.0.Final -> 6.0.0.Alpha9
[INFO]   org.scala-lang:scala-library ..................... 2.10.0 -> 2.11.0-M2
[INFO]   org.scala-lang:scala-swing ....................... 2.10.0 -> 2.11.0-M2

2013-03-18

add to NARS API : runInference( BufferedReader r, BufferedWriter w )

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

CLIPSInferenceEngineFactory

NARSInferenceEngineFactory

<jmvanel> Hi any users of eclipse Scala IDE here ?

<MisterD> yes, many

<jmvanel> I have old problems with mixed Java+Scala projects

<jmvanel> build fails

<jmvanel> sometimes it helped to go in Scala menu and just touch the pull down for sbt/refined , but now not anymore ;

I'm with eclipse Juno latest + Scala IDE 3 latest for Scala 2.10

<jmvanel> The symptom : MyClass cannot be resolved to a type Java Problem

<jmvanel> MyClass is in Scala

Companions 'class InferenceProgressFrame' and 'object InferenceProgressFrame' must be defined in same file: Found in 
/home/jmv/src
/eulergui/src/main/scala/eulergui/gui/inference/InferenceProgressFrame.scala
 and 
/eulergui/src/main/scala/eulergui/gui/inference/InferenceProgressFrame.scala

DescriptionResourcePathLocationType
Error in Scala compiler:       while compiling:
 /home/jmv/src/eulergui/src/main/scala/eulergui/gui/inference/InferenceSwingWorker.scala         during phase: global=explicitouter, atPhase=erasure      
library version: version 2.10.1     compiler version: version 2.10.1   reconstructed args: -Xcheck-null -javabootclasspath /home/jmv/apps/jdk1.7.0_17/jre/lib/resources.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/rt.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jsse.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jce.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/charsets.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/jfr.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/sunjce_provider.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/zipfs.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/sunec.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/localedata.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/sunpkcs11.jar:/home/jmv/apps/jdk1.7.0_17/jre/lib/ext/dnsns.jar -unchecked -Xpluginsdir /home/jmv/apps/eclipse/configuration/org.eclipse.osgi/bundles/630/1/.cp/lib -explaintypes -Xcheckinit -g:notailcalls -deprecation -classpath
 /home/jmv/src/eulergui/classes-eclipse:/home/jmv/.m2/repository/javax/jms/jms/1.1/jms-1.1.jar:/home/jmv/.m2/repository/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar:/home/jmv/.m2/repository/java2rdf/all/current/all-current.jar:/home/jmv/.m2/repository/parser4j/all/trunk3/all-trunk3.jar:/home/jmv/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/home/jmv/.m2/repository/org/antlr/antlr/3.3/antlr-3.3.jar:/home/jmv/.m2/repository/org/antlr/antlr-runtime/3.3/antlr-runtime-3.3.jar:/home/jmv/.m2/repository/aterm/aterm-java/1.6/aterm-java-1.6.jar:/home/jmv/.m2/repository/org/eclipse/emf/common/2.4.0.v200902171115/common-2.4.0.v200902171115.jar:/home/jmv/.m2/repository/org/eclipse/uml2/common/1.4.0.v200805131030/common-1.4.0.v200805131030.jar:/home/jmv/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar:/home/jmv/.m2/repository/commons-codec/commons-codec/1.5/commons-codec-1.5.jar:/home/jmv/.m2/repository/org/apache/commons/commons-io/1.3.2/commons-io-1.3.2.jar:/home/jmv/.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar:/home/jmv/.m2/repository/org/drools/drools-compiler/5.5.0.Final/drools-compiler-5.5.0.Final.jar:/home/jmv/.m2/repository/org/drools/drools-core/5.5.0.Final/drools-core-5.5.0.Final.jar:/home/jmv/.m2/repository/org/eclipse/jdt/core/compiler/ecj/3.5.1/ecj-3.5.1.jar:/home/jmv/.m2/repository/org/eclipse/emf/ecore/2.4.2.v200902171115/ecore-2.4.2.v200902171115.jar:/home/jmv/.m2/repository/euler/euler/2013-01/euler-2013-01.jar:/home/jmv/.m2/repository/com/hp/hpl/jena/Gloze/1.01-beta2/Gloze-1.01-beta2.jar:/home/jmv/.m2/repository/att/grappa/1.2/grappa-1.2.jar:/home/jmv/.m2/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar:/home/jmv/.m2/repository/org/apache/httpcomponents/httpclient/4.1.2/httpclient-4.1.2.jar:/home/jmv/.m2/repository/org/apache/httpcomponents/httpcore/4.1.3/httpcore-4.1.3.jar:/home/jmv/.m2/repository/com/ibm/icu/icu4j/50.1/icu4j-50.1.jar:/home/jmv/.m2/repository/org/slf4j/jcl-over-slf4j/1.6.4/jcl-over-slf4j-1.6.4.jar:/home/jmv/.m2/repository/jdepend/jdepend/2.9.1/jdepend-2.9.1.jar:/home/jmv/.m2/repository/org/jedit/jedit/4.3.1/jedit-4.3.1.jar:/home/jmv/.m2/repository/org/netbeans/jemmy/2.2.7.5/jemmy-2.2.7.5.jar:/home/jmv/.m2/repository/org/apache/jena/jena-arq/2.9.4/jena-arq-2.9.4.jar:/home/jmv/.m2/repository/org/apache/jena/jena-core/2.7.4/jena-core-2.7.4.jar:/home/jmv/.m2/repository/org/apache/jena/jena-iri/0.9.4/jena-iri-0.9.4.jar:/home/jmv/.m2/repository/org/apache/jena/jena-tdb/0.9.4/jena-tdb-0.9.4.jar:/home/jmv/.m2/repository/org/jgrapht/jgrapht-jdk1.5/0.7.3/lib/jgraph.jar:/home/jmv/.m2/repository/org/jgrapht/jgrapht-jdk1.5/0.7.3/jgrapht-jdk1.5-0.7.3.jar:/home/jmv/.m2/repository/jline/jline/2.9/jline-2.9.jar:/home/jmv/.m2/repository/junit/junit/4.11/junit-4.11.jar:/home/jmv/.m2/repository/org/drools/knowledge-api/5.5.0.Final/knowledge-api-5.5.0.Final.jar:/home/jmv/.m2/repository/org/drools/knowledge-internal-api/5.5.0.Final/knowledge-internal-api-5.5.0.Final.jar:/home/jmv/.m2/repository/log4j/log4j/1.2.16/log4j-1.2.16.jar:/home/jmv/.m2/repository/org/mvel/mvel2/2.1.3.Final/mvel2-2.1.3.Final.jar:/home/jmv/.m2/repository/org/semanticweb/yars/nx/parser/NxParser/1.2.1/NxParser-1.2.1.jar:/home/jmv/.m2/repository/opensymphony/oscache/2.4.1/oscache-2.4.1.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-api/3.4.2/owlapi-api-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-apibinding/3.4.2/owlapi-apibinding-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-impl/3.4.2/owlapi-impl-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-parsers/3.4.2/owlapi-parsers-3.4.2.jar:/home/jmv/.m2/repository/net/sourceforge/owlapi/owlapi-tools/3.4.2/owlapi-tools-3.4.2.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/antlr/antlr-runtime-3.2.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/aterm-java-1.6.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jaxb/jaxb-api.jar:/home/jmv/.m2/repository/com/owldl/pellet/2 .2.2/jena/arq-2.8.4.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/icu4j-3.4.4.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/iri-0.8-sources.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/iri-0.8.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/jena-2.6.3-tests.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/jena-2.6.3.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/junit-4.5.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/log4j-1.2.13.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/lucene-core-2.3.1.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/slf4j-api-1.5.8.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/slf4j-log4j12-1.5.8.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/stax-api-1.0.1.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/wstx-asl-3.2.9.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jena/xercesImpl-2.7.1.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jetty/commons-logging-api.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jetty/jetty.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/jgrapht/jgrapht-jdk1.5.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/junit/junit.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapiv3/owlapi-bin.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapiv3/owlapi-src.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-core.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-datatypes.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-dig.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-el.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-explanation.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-jena.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-modularity.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-owlapi.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-owlapiv3.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-pellint.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-query.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-rules.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-test.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/servlet.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/xsdlib/relaxngDatatype.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/xsdlib/xsdlib.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapi/owlapi-bin.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/owlapi/owlapi-src.jar:/home/jmv/.m2/repository/com/owldl/pellet/2.2.2/pellet-2.2.2.jar:/home/jmv/.m2/repository/relaxngDatatype/relaxngDatatype/20020414/relaxngDatatype-20020414.jar:/home/jmv/.m2/repository/net/sf/saxon/saxon/8.7/saxon-8.7.jar:/home/jmv/.m2/repository/net/sf/saxon/saxon-dom/8.7/saxon-dom-8.7.jar:/home/jmv/.m2/repository/org/scala-lang/scala-swing/2.10.0/scala-swing-2.10.0.jar:/home/jmv/.m2/repository/org/slf4j/slf4j-api/1.6 .4/slf4j-api-1.6.4.jar:/home/jmv/.m2/repository/org/slf4j/slf4j-log4j12/1.6.4/slf4j-log4j12-1.6.4.jar:/home/jmv/.m2/repository/org/antlr/stringtemplate/3.2.1/stringtemplate-3.2.1.jar:/home/jmv/.m2/repository/org/eclipse/uml2/uml/2.2.2.v200811051031/uml-2.2.2.v200811051031.jar:/home/jmv/.m2/repository/xerces/xercesImpl/2.10.0/xercesImpl-2.10.0.jar:/home/jmv/.m2/repository/org/eclipse/emf/ecore/xmi/2.4.1.v200902171115/xmi-2.4.1.v200902171115.jar:/home/jmv/.m2/repository/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar:/home/jmv/.m2/repository/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar:/home/jmv/.m2/repository/xpp3/xpp3_min/1.1.4c/xpp3_min-1.1.4c.jar:/home/jmv/.m2/repository/xsdlib/xsdlib/20030225/xsdlib-20030225.jar:/home/jmv/.m2/repository/com/thoughtworks/xstream/xstream/1.4.3/xstream-1.4.3.jar:/home/jmv/.m2/repository/org/scala-lang/scala-library/2.10.0/scala-library-2.10.0.jar -bootclasspath /home/jmv/.m2/repository/org/scala-lang/scala-library/2.10.0/scala-library-2.10.0.jar 
-Ywarn-dead-code    last tree to typer: This(anonymous class $anonfun)               symbol: anonymous class $anonfun (flags: final <synthetic>)
    symbol definition: final class $anonfun extends AbstractFunction0[SingleLineParser.this.Parser[Any]] with Serializable
                  tpe: samples.SingleLineParser.$anonfun.type
        symbol owners: anonymous class $anonfun -> method logOptional -> class SingleLineParser -> package samples       context owners: value evt -> method propertyChange -> anonymous class $anon -> constructor InferenceSwingWorker -> class InferenceSwingWorker -> package inference  == Enclosing template or block ==  DefDef( // def propertyChange(evt: java.beans.PropertyChangeEvent): Unit   <method>   "propertyChange"   []   // 1 parameter list   ValDef( // evt: java.beans.PropertyChangeEvent     <param> <triedcooking>     "evt"     <tpt> // tree.tpe=java.beans.PropertyChangeEvent     <empty>   )   <tpt> // tree.tpe=Unit   If( // tree.tpe=Unit     Apply( // final def ==(x$1: Object): Boolean in class Object, tree.tpe=Boolean       "progress"."$eq$eq" // final def ==(x$1: Object): Boolean in class Object, tree.tpe=(x$1: Object)Boolean       Apply( // def getPropertyName(): String in class PropertyChangeEvent, tree.tpe=String         "evt"."getPropertyName" // def getPropertyName(): String in class PropertyChangeEvent, tree.tpe=()String         Nil       )     )     Apply( // def setProgress(progress: Int): Unit in class InferenceProgressFrame, tree.tpe=Unit       InferenceSwingWorker.this.eulergui$gui$inference$InferenceSwingWorker$$frame()."setProgress" // def setProgress(progress: Int): Unit in class InferenceProgressFrame, tree.tpe=(progress: Int)Unit       Apply( // final def asInstanceOf[T0](): T0 in class Any, tree.tpe=Int         TypeApply( // final def asInstanceOf[T0](): T0 in class Any, tree.tpe=()Int           evt.getNewValue()."asInstanceOf" // final def asInstanceOf[T0](): T0 in class Any, tree.tpe=[T0]()T0           <tpt> // tree.tpe=Int         )         Nil       )     )     ()   ) )  == Expanded type of tree ==  ThisType(anonymous class $anonfun)  no-symbol does not have an ownereulerguiUnknownScala Problem

sed scripts sql_server to HSQL, AWT to Swing

Added 2 sed scripts:

sql/convert_sql_server.sed

java/awt_swing.sed

2013-03-17

https://docs.google.com/document/d/1NQCoEghY5rGyEx9tRulQlPz8Do1JPA8O-uoLq3tpTJk/edit

---------

NARS : migration from AWT to Swing

in nars_gui/ : migration from AWT to Swing:

- automatic translation by sed script: http://jmvanel.free.fr/java/awt_swing.sed

- added explicit JScrollPane for main text area

- updated build.sh , README.txt

- TODO : fix menu callbacks in main window

svn cp --parents nars/main/* \
  https://open-nars.googlecode.com/svn/trunk/nars_gui/src/main/java/nars/main/
svn cp --parents nars/gui/* \
  https://open-nars.googlecode.com/svn/trunk/nars_gui/src/main/java/nars/gui/

cd nars
p=entity
svn cp --parents $p/* \
  -m "Copy $p/* into nars_core_java/src/main/java/" \
  https://open-nars.googlecode.com/svn/trunk/nars_core_java/src/main/java/nars/$p
p=inference
p=io
p=language
p=operation
p=overview.html
p=storage
p=main_nogui

2013-03-16

for f in nars/*/*.java
do
 echo $f
 ./awt_swing.sed $f > tmp.java
 mv tmp.java $f
done

syntax file for Google Code Wiki

ttp://www.vim.org/scripts/script.php?script_id=3173

Java questions

2013-03-15

NARS

Generate input forms with NARS

From RDFS domains and range declarations, plus possibly some facts, it is possible to infer "smart" forms.

How to model RDFS domains and range declarations in NARS ?

I see 2 options :

Retrying Matt's use cases

First of Matt's use cases

  IN: <(&&,<$1 --> [blue]>,<$2 --> [red]>) ==> <(*,$2,$1) --> pattern1>>. %1.00;0.90% {0 : 1} 
  IN: <{r1} --> [red]>. %1.00;0.90% {0 : 2} 
  IN: <{b1} --> [blue]>. %1.00;0.90% {0 : 3} 
  IN: <(*,{r1},{b1}) --> pattern1>?  {0 : 4} 
4
 OUT: <<$1 --> [red]> ==> <(*,$1,{b1}) --> pattern1>>. %1.00;0.81% {4 : 3;1} 
10
 OUT: <<$1 --> [red]> ==> <(*,$1,{b1}) --> pattern1>>. %1.00;0.81% {14 : 3;1} 
1
 OUT: <<$1 --> [red]> ==> <(*,$1,{b1}) --> pattern1>>. %1.00;0.81% {15 : 1;3} 
1
 OUT: <{r1} --> (/,pattern1,_,{b1})>?  {16 : 1} 
 OUT: <{b1} --> (/,pattern1,{r1},_)>?  {16 : 1} 
9
 OUT: <<$1 --> [red]> ==> <{b1} --> (/,pattern1,$1,_)>>. %1.00;0.81% {25 : 3;1} 
2
 OUT: <{r1} --> (/,pattern1,_,{b1})>?  {27 : 4} 
 OUT: <{b1} --> (/,pattern1,{r1},_)>?  {27 : 4} 

Mail to the list:

Achieved and removed

- 3. separe code for pure reasoning from GUI in different directories; for this remove dependencies towards packages main and gui from any other package; for this the simplest is applying the Model-View design pattern (aka publish-subscribe): the reasonner (Model) calls abstract listeners.

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

With revision 210, the separation of GUI from reasoning is finished.

The final touch is to actually split the code in 2 directories:

nars_gui/src/main/java

nars_core_java/src/main/java

( nars_core remains for the Scala version; no decision has been taked for Scala migration ).

It should not be difficult for NARS developers to change their IDE projects.

I added (part of) my roadmap for NARS in README.txt:

https://open-nars.googlecode.com/svn/trunk/README.txt

If like to comment on this, please start a new thread ...

2013-03-14

https://github.com/mysema/scalagen/issues/46

DescriptionResourcePathLocationType
The import nars.main cannot be resolved Concept.java/open-nars-jmv/nars/entityline 32Java Problem
The import nars.gui cannot be resolved Concept.java/open-nars-jmv/nars/entityline 25Java Problem
NARS cannot be resolved Concept.java/open-nars-jmv/nars/entityline 335Java Problem
The import nars.gui cannot be resolved Bag.java /open-nars-jmv/nars/storage line 26Java Problem
The import nars.gui cannot be resolved ExperienceReader.java /open-nars-jmv/nars/io line 26Java Problem
InferenceRecorder cannot be resolved to a type Memory.java/open-nars-jmv/nars/storageline 96 Java Problem
The import nars.gui cannot be resolvedMemory.java/open-nars-jmv/nars/storageline 36Java Problem

http://ipal.i2r.a-star.edu.sg/olivier

NOTE: forward-chaining-in-yap-prolog

<jmvanel> http://www.kmjn.org/notes/prolog_lost_steam.html ?

class Base {
  Base(){} // unused
  Base(String s){} // used
}
class Derived extends Base {
  Derived(String s){ super(s); }
}

mvn --offline java:run

Why the NARS test suite was broken

<jmvanel> glad !!!!!!!!!!!!!!!!!

<jmvanel> found the bad line that broke the test suite for 1 week +

 % diff  /home/jmv/src/open-nars-test2/nars/storage/ConceptBag.java ./storage/ConceptBag.java 
51c51
<     return memory.getConceptForgettingRate().get();
---
>     return memory.getTaskForgettingRate().get();
oem-laptop: ~/src/open-nars-test/nars/ % cp  /home/jmv/src/open-nars-test2/nars/storage/ConceptBag.java ./storage/ConceptBag.java

<jmvanel> the TaskForgettingRate was returned when it should have been the ConceptForgettingRate !!!!

Mail to NARS list

Currently, when one removes the directories nars/gui and nars/main , there are about 26 errors (there used to be more than twice as much).

What does this mean?

Indirectly NARS engine (that is, packages language, inference, io, ... ) has a dependence to AWT.

And neither Java Entreprise nor Android do not have AWT (or other less famous platforms).

So, for instance, it's more difficult thant it should be to use NARS engine in a web server, or on Android, because of this dependence to AWT.

Another "bad smell" are circular (cyclic) dependencies between packages.

These are also bad smells, which hint at non object oriented design :

% grep '== null' nars/**/*.java |wc
     57     435    4968
grep switch nars/**/*.java |wc
     15      73    1098

grep instanceof nars/**/*.java |wc
    191    1624   19406

% grep '== null' nars/**/*.java |wc
     61     491    5290

cf Null_Object_pattern

2013-03-13

Failed to install:

https://github.com/ldodds/dowl#readme

https://www.google.fr/search?q=open+source+sql+schema+analyser

http://schemaspy.sourceforge.net/

SQL Server to HSQL schema translation

HSQLDB_DIR=`dirname $0`
echo HSQLDB_DIR=$HSQLDB_DIR
java -classpath $HSQLDB_DIR/lib/hsqldb.jar org.hsqldb.util.DatabaseManagerSwing

The SQL Server declarations I have follow this pattern :

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[MyData](
[Logging_ID] [uniqueidentifier] NOT NULL,
[Logging_SyncID] [uniqueidentifier] NOT NULL,
[Blob] [nvarchar](max) NOT NULL,
[timestamp] [datetime] NULL, CONSTRAINT [PK_LoggingSyncDetails] PRIMARY KEY CLUSTERED 
(
[Logging_ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO

The part in red should be replaced by :

CONSTRAINT PK_LoggingSyncDetails PRIMARY KEY 
(
Logging_ID
)

Here is a sed script to convert sql_server dialect into HSQL DB dialect: convert_sql_server.sed

sed script to convert sql_server dialect into HSQL DB dialect
# GPL license - J.M. Vanel
/^SET /d
/^GO$/d
s/\] ASC//
# s/\[uniqueidentifier\]/unique varchar(20)/
s/\[uniqueidentifier\]/varchar(20)/
# TODOCONSTRAINT nameX UNIQUE ( name ),
s/ON \[PRIMARY\]//
s/TEXTIMAGE_ON \[PRIMARY\]//
s/\[//g
s/\]//g
s/nchar(/varchar(/
s/ ntext / varchar(1001) /
s/nvarchar(max)/varchar(1000)/
s/varchar(max)/varchar(1002)/
/ NOT NULL,$/! s/ NULL,$/,/
/[uniqueidentifier] ROWGUIDCOL/d
s/ dbo\./ /

s/PRIMARY KEY CLUSTERED/PRIMARY KEY/
s/^)WITH (PAD_INDEX *= OFF,.*$/)/
s/ ROWGUIDCOL / /
/^ *USE /d
/^ *EXEC /d

http://msdn.microsoft.com/en-us/library/ms187993.aspx

ntext , text, and image data types will be removed in a future version of Microsoft SQL Server. Avoid using these data types in new development work, and plan to modify applications that currently use them. Use nvarchar(max), varchar(max), and varbinary(max) instead.

Fixed and variable-length data types for storing large non-Unicode and Unicode character and binary data. Unicode data uses the UNICODE UCS-2 character set.

Intelligent agent for managing identifiers

Use case :

<jmvanel> I was searching this https://www.google.fr/search?q=open+source+sql+schema+analyser ,

<jmvanel> for retrieving undeclared foreign keys by analysing the field names ... ( database SQL Server )

<jmvanel> I'm afraid nothing of the sort exists

<plushy> jmvanel: analysing field names? like how?

<lilalinuxHamburg> i guess bar.id_foo -> foo.id

<lilalinuxHamburg> or sth like that

<lilalinuxHamburg> shouldn't be too complicated to write a script that does it

<lilalinuxHamburg> if your rdbms supports introspection

<lilalinuxHamburg> like postgresql

<plushy> introspection?

<kensanata> plushy: as in SELECT COLUMN_NAME FROM ALL_IND_COLUMNS WHERE INDEX_NAME = 'FOO' (Oracle) and the like.

<plushy> kensanata: information schema

<lilalinuxHamburg> http://www.postgresql.org/docs/9.2/static/catalogs.html

<lilalinuxHamburg> http://www.postgresql.org/docs/9.2/static/view-pg-tables.html

<lilalinuxHamburg> etc.

<jmvanel> thanks guys, indeed analysing field names maybe by a script ...

HSQL DB - RDFS Rosetta stone

http://hsqldb.org/doc/guide/ch02.html#N10318

CREATE TABLE child(c1 INTEGER, c2 VARCHAR, FOREIGN KEY (c1, c2) REFERENCES parent(p1, p2));

http://www.gridshore.nl/blog/index.php?/archives/8-Using-Hsqldb-with-your-java-development.html

A student can only register once for a course.

create table REGISTRATION (
ID identity NOT NULL PRIMARY KEY,
STUDENTID INTEGER NOT NULL,
COURSEID INTEGER NOT NULL,
FOREIGN KEY (COURSEID) REFERENCES COURSE(ID),
FOREIGN KEY (STUDENTID) REFERENCES STUDENT(ID),
CONSTRAINT UNIQUE_REGISTRATION UNIQUE (STUDENTID,COURSEID)
);

~/src/d2rq-0.8.1/generate-mapping --verbose -l hsql_student.hsql.sql -v \
  > hsql_student.hsql.ttl

:REGISTRATION_COURSEID
      a       rdf:Property , owl:ObjectProperty ;
      rdfs:domain :REGISTRATION ;
      rdfs:isDefinedBy : ;
      rdfs:label "REGISTRATION_COURSEID" ;
      rdfs:range :COURSE .

This also works in isolation in Swing hsqldb manager :

create table REGISTRATION (
ID VARCHAR(20) NOT NULL ,
STUDENTID INTEGER NOT NULL,
COURSEID INTEGER NOT NULL,
CONSTRAINT bla PRIMARY KEY
  (
        ID
  )
)

2013-03-12

<jmvanel> but right now have to go the police for internat frauds on my bank account

<jmvanel> btw detecting frauds on bank accounts is a also a good use case

intelligent agent to decode SQL dialects

NARS

My NARS TODO list

Suggestions for NARS GUI

Proposal for a NARS logo

http://imagebin.org/249908

2013-03-11

Working with sed

sed initiation :

http://www.ibm.com/developerworks/linux/library/l-sed1/index.html#h13

http://www.ibm.com/developerworks/linux/library/l-sed2/index.html

http://www.ibm.com/developerworks/linux/library/l-sed3/index.html

% echo  '<b>This</b> is what <b>I</b> meant.' | sed -e 's/<[^>]*>//g' 
This is what I meant.

http://vim.wikia.com/wiki/Working_with_Unicode

<rszeno> convert to utf-8 first

<jmvanel> yes

<jmvanel> I do this in gvim with :se fileencoding=utf-8

<rszeno> do you love complication, :)

<jmvanel> NO

<rszeno> iconv -f utf-16 -t utf-8 input-file -o output-file

<rszeno> no comdom needed

Proposal for a NARS logo

Narcissus (daffodil) : one of the flowers that has a unique shape.

https://www.google.fr/search?q=narcissus&tbm=isch

http://en.wikipedia.org/wiki/Narcissus_(plant)

<jmvanel> ( and it's very difficult to come with a logo for concepts )

<jmvanel> so a play on words is acceptable.

<jmvanel> The typical shape appears in Narcissus "Small Talk" (sic) http://www.srgc.org.uk/bulblog/log2007/210307/log.html

SQL Server to HSQL schema translation

Running hsqldb database manager swing

/usr/bin/hsqldb-databasemanagerswing

This works in HSQL database manager:

create schema jmvschema AUTHORIZATION DBA

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

fileencoding=utf-16le does not seem to work in HSQL DB.

First sketch of a SED script for SQL Server to HSQL schema translation:

1,$g/^SET /d
1,$g/^GO$/d
1,$s/\[//g
1,$s/\]//g
1,$s/ uniqueidentifier / unique /
1,$s/nchar(/varchar(/
1,$s/nvarchar(max)/varchar(1000)/
1,$s/ unique / /
1,$g/^ *CONSTRAINT \[.*\] PRIMARY KEY CLUSTERED/d
1,$g/^ *CONSTRAINT .* PRIMARY KEY CLUSTERED/d
1,$s/ dbo\.//
_ID NOT NULL/

http://www.hsqldb.org/doc/guide/ch09.html#create_table-section

http://stackoverflow.com/questions/13206473/create-table-syntax-not-working-in-hsql

Explanations on ROWGUIDCOL :

http://msdn.microsoft.com/en-us/library/aa258255(v=sql.80).aspx

NOTE:

CREATE TABLE Agents (Src varchar(255) UNIQUE NOT NULL )

Conforms to Core SQL-2003, according to http://developer.mimer.com/validator/parser200x/index.tml#parser

http://hsqldb.org/doc/2.0/guide/sqlgeneral-chapt.html

This fails in HSQL :

CREATE TABLE SourceAgents (
  SourceAgentsName nchar(255) NOT NULL
)

http://stackoverflow.com/questions/1126571/import-export-database-with-sql-server-server-management-studio

C:\Users\jmvanel> more  Documents\script.sql

OWL & RDFS

multiple domains and ranges for properties

http://answers.semanticweb.com/questions/780/multiple-domains-and-ranges-for-shared-properties

http://answers.semanticweb.com/questions/647/multiple-domain-and-range-attributes-for-rdf-property

Generating documentation from rdfs and/or owl vocabularies

answers.semanticweb.com / generating-documentation-from-rdfs-andor-owl-vocabularies

From there , I navigated to https://github.com/specgen/specgen .

http://neologism.deri.ie/showcase

http://vocab.deri.ie/void : Overview diagram is nice and clickable .

https://github.com/njh/phpspecgen#readme has a list of tools:

http://vocab.org/2004/03/toolchain/

https://github.com/specgen/specgen/#readme

http://raimond.me.uk/ontospec/ : a SWI Prolog module

http://kantenwerk.org/vocdoc/

Tested features in latest Protégé 4.2

Installing dOWL

https://github.com/ldodds/dowl/issues/4

% sudo gem install dowl
[sudo] password for jmv: 
Sorry, try again.
[sudo] password for jmv: 
Fetching: metaclass-0.0.1.gem (100%)
Fetching: mocha-0.13.3.gem (100%)
Fetching: ffi-1.4.0.gem (100%)
Building native extensions.  This could take a while...
ERROR:  Error installing dowl:
ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9.1 extconf.rb
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mkmf (LoadError)
from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from extconf.rb:4:in `<main>'


Gem files will remain installed in /var/lib/gems/1.9.1/gems/ffi-1.4.0 for inspection.
Results logged to /var/lib/gems/1.9.1/gems/ffi-1.4.0/ext/ffi_c/gem_make.out

Ialso tried the other way :

% sudo apt-get install rake
 ...
Paramétrage de rake (0.9.2.2-4) ...
% sudo rake install    
rake aborted!
No Rakefile found (looking for: rakefile, Rakefile, rakefile.rb, Rakefile.rb)

(See full trace by running task with --trace)

2013-03-10

Examine again NARS pattern matching case of Matt

cf mail on march 1

Pattern Recognition In NARS

Matthew Zaikowski 05/04/2011

linked from http://www.cis.temple.edu/~pwang/demos.html

% grep Derived  pattern_matching/case1_133.log 
!!! Derived: $0.4200;0.7115;0.9487$ (&&,<{b1} --> [blue]>,<{r1} --> [red]>)?  {2 : 1;4} 
!!! Derived: $0.2955;0.7170;0.9487$ <{r1} --> [red]>?  {8 : 1;3;4} 
!!! Derived: $0.5094;0.7200;0.9000$ <<#1 --> [blue]>==><(*,{r1},#1) --> pattern1>>. %1.0000;0.8100% {11 : 1;2} 
!!! Derived: $0.1214;0.2035;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {18 : 2} 
!!! Derived: $0.0943;0.1362;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {19 : 2} 
!!! Derived: $0.2913;0.7170;0.9487$ <{r1} --> [red]>?  {20 : 1;3;4} 
!!! Derived: $0.1709;0.2035;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {25 : 2} 
!!! Derived: $0.1500;0.1362;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {26 : 2} 
!!! Derived: $0.1701;0.2646;0.3780$ <{b1} --> (/,pattern1,{r1},_)>?  {29 : 4} 
!!! Derived: $0.7847;0.7200;0.9000$ <<#1 --> [blue]>==><(*,{r1},#1) --> pattern1>>. %1.0000;0.8100% {31 : 1;2} 
!!! Derived: $0.1510;0.2035;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {35 : 2} 
!!! Derived: $0.4767;0.7170;0.9487$ <{b1} --> [blue]>?  {40 : 1;2;4} 
!!! Derived: $0.1229;0.1954;0.2714$ <<#1 --> [blue]>==><{r1} --> (/,pattern1,_,#1)>>. %1.0000;0.8100% {43 : 1;2} 
!!! Derived: $0.1922;0.2035;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {45 : 2} 
!!! Derived: $0.1758;0.1362;0.2714$ <(*,{r1},{b1}) --> (*,[red],{b1})>. %1.0000;0.8100% {46 : 2} 
!!! Derived: $0.4756;0.7170;0.9487$ <{b1} --> [blue]>?  {47 : 1;2;4} 
!!! Derived: $0.1361;0.1362;0.2714$ <(*,[red],{b1}) --> (*,[red],[blue])>. %1.0000;0.8100% {55 : 3} 
!!! Derived: $0.5974;0.6489;0.8538$ <(*,{r1},{b1}) --> pattern1>. %1.0000;0.7290% {56 : 1;3;2}

% grep Derived case1_rev202.log
!!! Derived: $0.1701;0.2646;0.3780$ <{r1} --> (/,pattern1,_,{b1})>?    
!!! Derived: $0.1701;0.2646;0.3780$ <{b1} --> (/,pattern1,{r1},_)>?    
!!! Derived: $0.1701;0.2646;0.3780$ <{r1} --> (/,pattern1,_,{b1})>?    
!!! Derived: $0.1701;0.2646;0.3780$ <{b1} --> (/,pattern1,{r1},_)>?    
!!! Derived: $0.1635;0.2646;0.3780$ <{r1} --> (/,pattern1,_,{b1})>?    
!!! Derived: $0.1635;0.2646;0.3780$ <{b1} --> (/,pattern1,{r1},_)>?    
!!! Derived: $0.1635;0.2646;0.3780$ <{r1} --> (/,pattern1,_,{b1})>?    
!!! Derived: $0.1635;0.2646;0.3780$ <{b1} --> (/,pattern1,{r1},_)>?

COMMIT

- reestablish task stamps in Inference Log as in release 1.3.3 ( {x : y} tags )

- GUI for forgetting rates have been reactivated ( and AtomicInteger values reside now in Memory )

- fix typos in comments

Suggestions for NARS GUI (Button labels)

The "Play" and "Stop" button labels are misleading, as a verb suggests an immediate action, whereas it is a change of state in the window.

I suggest to replace them all with "On" and "Off" .

The "No Watch" button label is also misleading; it means in fact "Log everything".

I suggest to replace it with "Log all" .

The buttons for closing are sometimes called "Hide", sometimes "Close".

Fixing regressions in NARS

Message to the list

I made further tests on the same case form NAL1:

********** conversion
  IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} 
  IN: <swimmer --> bird>?  {0 : 2} 
2
 OUT: <swimmer --> bird>. %1.00;0.47% {0 : 2} 

Indeed, the inference logs are very useful.

And indeed, the inference logs are different, after running GUI to completion.

With HEAD code

-----RESET-----
!!! Perceived: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
!!! Perceived: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
 --- 1 ---
!!! Insert: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
!!! Insert: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
 * Selected Concept: swimmer
 * Selected TaskLink: $0.6364;0.7000;1.0000$  _@(T4-1) <swimmer --> bird>? 
 * Selected TermLink: $0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>
 * Selected Belief: <bird --> swimmer>. %1.0000;0.9000% {0 : 1} 
!!! Derived: $0.4137;0.5162;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.90;0.70;1.00$ <swimmer --> bird>? 
>>>> end of Task
 --- 2 ---
!!! Insert: $0.4137;0.5162;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.90;0.70;1.00$ <swimmer --> bird>? 
!!! Activated: $0.4737;0.7000;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.41;0.52;0.69$ <swimmer --> bird>. %1.00;0.47%  
 from belief: <swimmer --> bird>. %1.00;0.47% {1 : 1} 

With revision 200

-----RESET-----
!!! Perceived: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
!!! Perceived: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
 --- 1 ---
!!! Insert: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
!!! Insert: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
 * Selected Concept: <swimmer --> bird>
 * Selected TaskLink: $0.9000;0.7000;1.0000$  _@(T0) <swimmer --> bird>? 
 * Selected TermLink: $0.6364;0.7000;1.0000$  @(T3-1)_ swimmer
 * Selected TermLink: $0.6364;0.7000;1.0000$  @(T3-2)_ bird
 --- 2 ---
 * Selected Concept: swimmer
 * Selected TaskLink: $0.6364;0.7000;1.0000$  _@(T4-1) <swimmer --> bird>? 
 * Selected TermLink: $0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>
 * Selected Belief: <bird --> swimmer>. %1.0000;0.9000% {0 : 1} 
!!! Derived: $0.4137;0.5162;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.90;0.70;1.00$ <swimmer --> bird>? 

I tried to debug to understand where the difference comes from.

I verified that the putIn() calls into Bag are done in the same order.

But the ConceptBag's are different, hence the different order of the Selected Concepts :

I put a breakpoint in processConcept() when the first message "* Selected Concept:" appears (in green above) . Here are the ConceptBag in both code revisions :

With HEAD code

  --- Level 84:
 $0.83;0.24;0.34$ <swimmer --> bird>
 
 --- Level 80:
 $0.79;0.53;1.00$ swimmer
 $0.79;0.53;1.00$ bird
 
 --- Level 74:
 $0.74;0.27;0.34$ <bird --> swimmer>

With revision 200

  --- Level 78:
 $0.77;0.53;1.00$ swimmer
 $0.77;0.53;1.00$ bird
 
 --- Level 73:
 $0.72;0.27;0.34$ <bird --> swimmer>

I didn't try to debug inside Bag, and I fail to understand the source of result variability in the code.

Aparently, there is no randomness in NARS algorithm. So there must be some subtle error in the recent refactorings.

Is there any documentation where Levels in NARS bag are explained ?

Testing

    /** shared DISTRIBUTOR that produce the probability distribution */
    private static final Distributor DISTRIBUTOR = new Distributor(TOTAL_LEVEL); //

Back to this case : nars-dist/Examples/bugfix_conversion-pending.txt

********** conversion
  IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} 
  IN: <swimmer --> bird>?  {0 : 2} 
2
 OUT: <swimmer --> bird>. %1.00;0.47% {0 : 2} 

In both revisions currentLevel == 29 is picked by shared DISTRIBUTOR.

But ConceptBag is built differently. Why ?

with HEAD code

new Items are put in this order:

$0.01;0.01;0.01$ <bird --> swimmer> <bird --> swimmer>
$0.8000;0.8000;0.9487$  _@(T0) <bird --> swimmer>. %1.00;0.90%
$0.74;0.27;0.34$ <bird --> swimmer> <bird --> swimmer>
$0.01;0.01;0.01$ bird bird
$0.5657;0.8000;0.9487$  _@(T4-1) <bird --> swimmer>. %1.00;0.90%
 _@(T4-1) <bird --> swimmer>. %1.00;0.90%
$0.51;0.28;1.00$ bird bird
$0.01;0.01;0.01$ swimmer swimmer
$0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>. %1.00;0.90%
$0.51;0.28;1.00$ swimmer swimmer
$0.5657;0.8000;0.9487$  @(T3-1)_ bird
etc ...

concepts
 (nars.storage.ConceptBag)  
 --- Level 84:
 $0.83;0.24;0.34$ <swimmer --> bird>
 
 --- Level 80:
 $0.79;0.53;1.00$ swimmer
 $0.79;0.53;1.00$ bird
 
 --- Level 74:
 $0.74;0.27;0.34$ <bird --> swimmer>

After a debug session:

 --- Level 88:
 $0.87;0.56;0.76$ <swimmer --> bird>
 
 --- Level 84:
 $0.83;0.66;1.00$ bird
 
 --- Level 81:
 $0.81;0.65;1.00$ swimmer
 
 --- Level 74:
 $0.74;0.27;0.34$ <bird --> swimmer>

After running GUI to completion:

 --- Level 88:
 $0.87;0.56;0.76$ <swimmer --> bird>
 
 --- Level 84:
 $0.83;0.66;1.00$ bird
 
 --- Level 81:
 $0.81;0.65;1.00$ swimmer
 
 --- Level 74:
 $0.74;0.27;0.34$ <bird --> swimmer>

Inference log with HEAD code

-----RESET-----
!!! Perceived: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
>>>> end of Task
!!! Perceived: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
>>>> end of Task
 --- 1 ---
!!! Insert: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
>>>> end of Task
!!! Insert: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
>>>> end of Task
 * Selected Concept: swimmer
 * Selected TaskLink: $0.6364;0.7000;1.0000$  _@(T4-1) <swimmer --> bird>? 
 * Selected TermLink: $0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>
 * Selected Belief: <bird --> swimmer>. %1.0000;0.9000% {0 : 1} 
!!! Derived: $0.4137;0.5162;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.90;0.70;1.00$ <swimmer --> bird>? 
>>>> end of Task
 --- 2 ---
!!! Insert: $0.4137;0.5162;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.90;0.70;1.00$ <swimmer --> bird>? 
>>>> end of Task
!!! Activated: $0.4737;0.7000;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.41;0.52;0.69$ <swimmer --> bird>. %1.00;0.47%  
 from belief: <swimmer --> bird>. %1.00;0.47% {1 : 1} 
>>>> end of Task

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

With revision 200

Thread [AWT-EventQueue-0] (Suspended)
ConceptBag(Bag<Type>).putIn(Type) line: 163
Memory.getConcept(Term) line: 170
Memory.immediateProcess(Task) line: 387
Memory.processNewTask() line: 339
Memory.workCycle(long) line: 319
ReasonerBatch$1.run() line: 140
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended)
TaskLinkBag(Bag<Type>).putIn(Type) line: 163
Concept.insertTaskLink(TaskLink) line: 272
Concept.linkToTask(Task) line: 185
Concept.directProcess(Task) line: 104
Memory.immediateProcess(Task) line: 389
Memory.processNewTask() line: 339
Memory.workCycle(long) line: 319
ReasonerBatch$1.run() line: 140
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 151 in Bag))
ConceptBag(Bag<Type>).putIn(Type) line: 151
ConceptBag(Bag<Type>).putBack(Type) line: 176
Memory.activateConcept(Concept, BudgetValue) line: 189
Concept.insertTaskLink(TaskLink) line: 273
Concept.linkToTask(Task) line: 185
Concept.directProcess(Task) line: 104
Memory.immediateProcess(Task) line: 389
Memory.processNewTask() line: 339
Memory.workCycle(long) line: 319
ReasonerBatch$1.run() line: 140
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 151 in Bag))
ConceptBag(Bag<Type>).putIn(Type) line: 151
Memory.getConcept(Term) line: 170
Concept.linkToTask(Task) line: 196
Concept.directProcess(Task) line: 104
Memory.immediateProcess(Task) line: 389
Memory.processNewTask() line: 339
Memory.workCycle(long) line: 319
ReasonerBatch$1.run() line: 140
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 151 in Bag))
TaskLinkBag(Bag<Type>).putIn(Type) line: 151
Concept.insertTaskLink(TaskLink) line: 272
Concept.linkToTask(Task) line: 198
Concept.directProcess(Task) line: 104
Memory.immediateProcess(Task) line: 389
Memory.processNewTask() line: 339
Memory.workCycle(long) line: 319

ConceptBag(Bag<Type>).putIn(Type) line: 151
ConceptBag(Bag<Type>).putBack(Type) line: 176
Memory.activateConcept(Concept, BudgetValue) line: 189
Concept.insertTaskLink(TaskLink) line: 273
Concept.linkToTask(Task) line: 198
Concept.directProcess(Task) line: 104
Memory.immediateProcess(Task) line: 389
Memory.processNewTask() line: 339
Memory.workCycle(long) line: 319

new Items are put in ConceptBag in this order:

$0.01;0.01;0.01$ <bird --> swimmer> <bird --> swimmer>
$0.8000;0.8000;0.9487$  _@(T0) <bird --> swimmer>. %1.00;0.90%
$0.72;0.27;0.34$ <bird --> swimmer> <bird --> swimmer>
$0.01;0.01;0.01$ bird bird
$0.5657;0.8000;0.9487$  _@(T4-1) <bird --> swimmer>. %1.00;0.90%
$0.49;0.28;1.00$ bird bird (clock==1)
$0.01;0.01;0.01$ swimmer swimmer
$0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>. %1.00;0.90%ř
$0.49;0.28;1.00$ swimmer swimmer
$0.5657;0.8000;0.9487$  @(T3-1)_ bird
$0.5657;0.8000;0.9487$  _@(T4-1) <bird --> swimmer>
$0.5657;0.8000;0.9487$  @(T3-2)_ swimmer
$0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>
$0.9000;0.7000;1.0000$  _@(T0) <swimmer --> bird>?
$0.81;0.24;0.34$ <swimmer --> bird> <swimmer --> bird>
$0.6364;0.7000;1.0000$  _@(T4-1) <swimmer --> bird>? 
$0.77;0.53;1.00$ swimmer swimmer
$0.6364;0.7000;1.0000$  _@(T4-2) <swimmer --> bird>? 

concepts // rev 200
 (nars.storage.ConceptBag)  
 --- Level 82:
 $0.81;0.24;0.34$ <swimmer --> bird>
 
 --- Level 78:
 $0.77;0.53;1.00$ swimmer
 $0.77;0.53;1.00$ bird
 
 --- Level 73:
 $0.72;0.27;0.34$ <bird --> swimmer>

After running GUI to completion:

 --- Level 78:
 $0.77;0.53;1.00$ bird
 
 --- Level 74:
 $0.73;0.53;1.00$ swimmer
 
 --- Level 73:
 $0.72;0.27;0.34$ <bird --> swimmer>
 $0.72;0.24;0.34$ <swimmer --> bird>

Inference log in revision 200 :

-----RESET-----
!!! Perceived: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
>>>> end of Task
!!! Perceived: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
>>>> end of Task
 --- 1 ---
!!! Insert: $0.8000;0.8000;0.9487$ <bird --> swimmer>. %1.00;0.90% 
>>>> end of Task
!!! Insert: $0.9000;0.7000;1.0000$ <swimmer --> bird>?  
>>>> end of Task
 * Selected Concept: <swimmer --> bird>
 * Selected TaskLink: $0.9000;0.7000;1.0000$  _@(T0) <swimmer --> bird>? 
 * Selected TermLink: $0.6364;0.7000;1.0000$  @(T3-1)_ swimmer
 * Selected TermLink: $0.6364;0.7000;1.0000$  @(T3-2)_ bird
 --- 2 ---
 * Selected Concept: swimmer
 * Selected TaskLink: $0.6364;0.7000;1.0000$  _@(T4-1) <swimmer --> bird>? 
 * Selected TermLink: $0.5657;0.8000;0.9487$  _@(T4-2) <bird --> swimmer>
 * Selected Belief: <bird --> swimmer>. %1.0000;0.9000% {0 : 1} 
!!! Derived: $0.4137;0.5162;0.6883$ <swimmer --> bird>. %1.00;0.47%   
 from task: $0.90;0.70;1.00$ <swimmer --> bird>? 
>>>> end of Task

2013-03-09

Fixed Subclipse with eclipse Juno

http://myotragusbalearicus.wordpress.com/2011/11/25/subclipsesubversion-error-on-ubuntu-failed-to-load-javahl-library/

http://subclipse.tigris.org/wiki/JavaHL

Added this at the end of eclipse.ini :

-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni

Fixing regressions in NARS

Fixing regression in NARS : CompositionalRules.introVarInner

in NAL5:

********** compound decomposition, two premises
  IN: (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% {0 : 1} 
  IN: <robin --> flyer>. %1.00;0.90% {0 : 2} 
3
 OUT: <robin --> swimmer>. %0.00;0.81% {3 : 1;2}

NOTES:

Thread [main] (Suspended)
Statement.invalidStatement(Term, Term) line: 198
Implication.make(Term, Term, Memory) line: 77
CompositionalRules.introVarInner(Statement, Statement, CompoundTerm, Memory) line: 479
RuleTables.compoundAndStatement(CompoundTerm, short, Statement, short, Term, Memory) line: 501
RuleTables.reason(TaskLink, TermLink, Memory) line: 119
Concept.fire() line: 424
Memory.processConcept() line: 383
Memory.workCycle(long) line: 334
ReasonerBatch.doTick() line: 142
ReasonerBatch.tick() line: 109
NARSBatch.run() line: 86
NARSBatch.runInference(String[]) line: 59
NARSBatch.main(String[]) line: 51

Inference log in revision 200 :

-----RESET-----
!!! Perceived: $0.8000;0.8000;0.6708$ (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% 
>>>> end of Task
!!! Perceived: $0.8000;0.8000;0.9487$ <robin --> flyer>. %1.00;0.90% 
>>>> end of Task
 --- 1 ---
!!! Insert: $0.8000;0.8000;0.6708$ (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% 
>>>> end of Task
!!! Insert: $0.8000;0.8000;0.9487$ <robin --> flyer>. %1.00;0.90% 
>>>> end of Task
 * Selected Concept: swimmer
 * Selected TaskLink: $0.3266;0.8000;0.6708$  _@(T2-2-2) (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90%
 * Selected TermLink: $0.2309;0.8000;0.6708$  _@(T4-2) <robin --> swimmer>
 --- 2 ---
 * Selected Concept: flyer
 * Selected TaskLink: $0.5657;0.8000;0.9487$  _@(T4-2) <robin --> flyer>. %1.00;0.90%
 * Selected TermLink: $0.3266;0.8000;0.6708$  _@(T2-1-2) (&&,<robin --> flyer>,<robin --> swimmer>)
 * Selected Belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.0000;0.9000% {0 : 1} 
!!! Ignored: $0.0000;0.0000;0.0000$ <robin --> swimmer>. %0.00;0.00%   
 from task: $0.80;0.80;0.95$ <robin --> flyer>. %1.00;0.90%  
 from belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% {0 : 1} 
>>>> end of Task
 --- 3 ---
 * Selected Concept: <robin --> flyer>
 * Selected TaskLink: $0.8000;0.8000;0.9487$  _@(T0) <robin --> flyer>. %1.00;0.90%
 * Selected TermLink: $0.6660;0.8000;0.9487$  @(T3-1)_ robin
 * Selected TermLink: $0.6660;0.8000;0.9487$  @(T3-2)_ flyer
 * Selected TermLink: $0.3266;0.8000;0.6708$  _@(T2-1) (&&,<robin --> flyer>,<robin --> swimmer>)
 * Selected Belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.0000;0.9000% {0 : 1} 
!!! Derived: $0.2070;0.2939;0.3674$ <robin --> swimmer>. %0.00;0.81%   
 from task: $0.80;0.80;0.95$ <robin --> flyer>. %1.00;0.90%  
 from belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% {0 : 1} 
>>>> end of Task

Inference log with HEAD code (with NPE) :

-----RESET-----
!!! Perceived: $0.8000;0.8000;0.6708$ (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% 
>>>> end of Task
!!! Perceived: $0.8000;0.8000;0.9487$ <robin --> flyer>. %1.00;0.90% 
>>>> end of Task
 --- 1 ---
!!! Insert: $0.8000;0.8000;0.6708$ (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% 
>>>> end of Task
!!! Insert: $0.8000;0.8000;0.9487$ <robin --> flyer>. %1.00;0.90% 
>>>> end of Task
 * Selected Concept: robin
 * Selected TaskLink: $0.5657;0.8000;0.9487$  _@(T4-1) <robin --> flyer>. %1.00;0.90%
 * Selected TermLink: $0.3266;0.8000;0.6708$  _@(T2-1-1) (&&,<robin --> flyer>,<robin --> swimmer>)
 * Selected Belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.0000;0.9000% {0 : 1} 
!!! Ignored: $0.0000;0.0000;0.0000$ <robin --> swimmer>. %0.00;0.00%   
 from task: $0.80;0.80;0.95$ <robin --> flyer>. %1.00;0.90%  
 from belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% {0 : 1} 
>>>> end of Task
 * Selected TermLink: $0.3266;0.8000;0.6708$  _@(T2-2-1) (&&,<robin --> flyer>,<robin --> swimmer>)
 * Selected Belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.0000;0.9000% {0 : 1} 
!!! Derived: $0.2839;0.5091;0.6364$ (&&,<#1 --> flyer>,<#1 --> swimmer>). %0.00;0.81%   
 from task: $0.80;0.80;0.95$ <robin --> flyer>. %1.00;0.90%  
 from belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% {0 : 1} 
>>>> end of Task
 --- 2 ---
!!! Neglected: $0.2839;0.5091;0.6364$ (&&,<#1 --> flyer>,<#1 --> swimmer>). %0.00;0.81%   
 from task: $0.80;0.80;0.95$ <robin --> flyer>. %1.00;0.90%  
 from belief: (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90% {0 : 1} 
>>>> end of Task
 * Selected Concept: flyer
 * Selected TaskLink: $0.5657;0.8000;0.9487$  _@(T4-2) <robin --> flyer>. %1.00;0.90%
 * Selected TermLink: $0.6660;0.8000;0.9487$  _@(T4-2) <robin --> flyer>
 * Selected TermLink: $0.3266;0.8000;0.6708$  _@(T2-1-2) (&&,<robin --> flyer>,<robin --> swimmer>)
 --- 3 ---
 * Selected Concept: (&&,<#1 --> flyer>,<#1 --> swimmer>)
 * Selected TaskLink: $0.8000;0.8000;0.6708$  _@(T0) (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90%
 * Selected TermLink: $0.3266;0.8000;0.6708$  @(T1-1)_ <robin --> flyer>
!!! Ignored: $0.0000;0.0000;0.0000$ <#1 --> flyer>. %0.00;0.00%   
 from task: $0.80;0.80;0.67$ (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90%
>>>> end of Task
 * Selected TermLink: $0.3266;0.8000;0.6708$  @(T1-1-1)_ robin
 * Selected TermLink: $0.3266;0.8000;0.6708$  @(T1-1-2)_ flyer
 --- 4 ---
 * Selected Concept: robin
 * Selected TaskLink: $0.3266;0.8000;0.6708$  _@(T2-1-1) (&&,<robin --> flyer>,<robin --> swimmer>). %0.00;0.90%
 * Selected TermLink: $0.2309;0.8000;0.6708$  _@(T4-1) <robin --> swimmer>
 * Selected TermLink: $0.6528;0.8000;0.9487$  _@(T4-1) <robin --> flyer>

Fixing regression in NARS after GUI inference separation

With latest code:

doTick: walkingSteps 0, clock 0, getTimer 0
    memory.getExportStrings() []
report( clock 0, input true, timer 0, Sentence <bird --> swimmer>. %1.0000;0.9000% {0 : 1} , exportStrings [********** conversion]
report( clock 0, input true, timer 0, Sentence <swimmer --> bird>?  {0 : 2} , exportStrings [********** conversion,   IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} ]
report( clock 1, input false, timer 1, Sentence <swimmer --> bird>. %1.0000;0.4737% {1 : 1} , exportStrings []
doTick: walkingSteps 1, clock 1, getTimer 0
    memory.getExportStrings() [1,  OUT: <swimmer --> bird>. %1.00;0.47% {1 : 1} ]
report( clock 2, input false, timer 1, Sentence <swimmer --> bird>. %1.0000;0.4737% {1 : 1} , exportStrings []
doTick: walkingSteps 0, clock 2, getTimer 0
    memory.getExportStrings() [1,  OUT: <swimmer --> bird>. %1.00;0.47% {1 : 1} ]
doTick: walkingSteps 0, clock 2, getTimer 0
    memory.getExportStrings() []
doTick: walkingSteps 0, clock 2, getTimer 0
    memory.getExportStrings() []

report(Sentence <swimmer --> bird>?  {0 : 2} , input true, timer 0, exportStrings [********** conversion,   IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} ]
report(Sentence <swimmer --> bird>. %1.0000;0.4737% {1 : 1} , input false, timer 0, exportStrings []
report(Sentence <swimmer --> bird>. %1.0000;0.4737% {1 : 1} , input false, timer 0, exportStrings []

At revision 200:

doTick: walkingSteps 0, clock 0, getTimer 0
    memory.getExportStrings() []
report( clock 0, input true, timer 0, Sentence <bird --> swimmer>. %1.0000;0.9000% {0 : 1} , exportStrings [********** conversion]
report( clock 0, input true, timer 0, Sentence <swimmer --> bird>?  {0 : 2} , exportStrings [********** conversion,   IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} ]
doTick: walkingSteps 1, clock 1, getTimer 1
    memory.getExportStrings() []
report( clock 2, input false, timer 2, Sentence <swimmer --> bird>. %1.0000;0.4737% {2 : 1} , exportStrings []
doTick: walkingSteps 0, clock 2, getTimer 0
    memory.getExportStrings() [2,  OUT: <swimmer --> bird>. %1.00;0.47% {2 : 1} ]
doTick: walkingSteps 0, clock 2, getTimer 0
    memory.getExportStrings() []
doTick: walkingSteps 0, clock 2, getTimer 0
    memory.getExportStrings() []

report(Sentence <bird --> swimmer>. %1.0000;0.9000% {0 : 1} , input true, timer 0, exportStrings [********** conversion]
report(Sentence <swimmer --> bird>?  {0 : 2} , input true, timer 0, exportStrings [********** conversion,   IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} ]
report(Sentence <swimmer --> bird>. %1.0000;0.4737% {2 : 1} , input false, timer 2, exportStrings []

2013-03-08

TODO: how to generate report for an ontology ?

Fixing regression in NARS after GUI inference separation

Question asked to the list.

http://code.google.com/p/open-nars/source/detail?r=189

Input:

********** conversion
  IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} 
  IN: <swimmer --> bird>?  {0 : 2} 
2
 OUT: <swimmer --> bird>. %1.00;0.47% {0 : 2} 

Output with HEAD code:

********** conversion
  IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} 
  IN: <swimmer --> bird>?  {0 : 2} 
1
 OUT: <swimmer --> bird>. %1.00;0.47% {1 : 1} 
1
 OUT: <swimmer --> bird>. %1.00;0.47% {1 : 1} 

Output with code revision 189 :

********** conversion
  IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} 
  IN: <swimmer --> bird>?  {0 : 2} 
2
 OUT: <swimmer --> bird>. %1.00;0.47% {2 : 1} 

The printing happens in Memory :

    public void report(Sentence sentence, boolean input) {

NOTE: this in Stamp is not good :

    /** serial number, for the whole system */
    private static long currentSerial = 0;

At this time, Memory.report(Sentence, boolean) line: 443,

Memory.exportStrings is :

[********** conversion, IN: <bird --> swimmer>. %1.00;0.90% {0 : 1}  ]

and adding this to exportStrings:

IN: <swimmer --> bird>? {0 : 2} 

Data input is in the AWT Thread :

Thread [AWT-EventQueue-0] (Suspended)
Memory.report(Sentence, boolean) line: 443
Memory.inputTask(Task) line: 214
Reasoner(ReasonerBatch).textInputLine(String) line: 163
InputWindow.nextInput() line: 163
Reasoner(ReasonerBatch).doTick() line: 113
Reasoner$1.run() line: 61
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Inference is also in the AWT Thread :

Thread [AWT-EventQueue-0] (Suspended)
Concept.processJudgment(Task) line: 118
Concept.directProcess(Task) line: 99
Memory.immediateProcess(Task) line: 399
Memory.processNewTask() line: 349
Memory.workCycle(long) line: 329
Reasoner(ReasonerBatch).doTick() line: 130
Reasoner$1.run() line: 61
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended)
LocalRules.match(Task, Sentence, Memory) line: 58
RuleTables.reason(TaskLink, TermLink, Memory) line: 54
Concept.fire() line: 424
Memory.processConcept() line: 383
Memory.workCycle(long) line: 334
Reasoner(ReasonerBatch).doTick() line: 130
Reasoner$1.run() line: 61
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended)
LocalRules.conversion(Memory) line: 212
LocalRules.matchReverse(Memory) line: 144
RuleTables.asymmetricAsymmetric(Sentence, Sentence, int, Memory) line: 253
RuleTables.syllogisms(TaskLink, TermLink, Term, Term, Memory) line: 170
RuleTables.reason(TaskLink, TermLink, Memory) line: 124
Concept.fire() line: 424
Memory.processConcept() line: 383
Memory.workCycle(long) line: 334
Reasoner(ReasonerBatch).doTick() line: 130
Reasoner$1.run() line: 61
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Thread [AWT-EventQueue-0] (Suspended)
MainWindow.initTimer() line: 196
MainWindow.updateTimer() line: 310
Reasoner.updateTimer() line: 75
Memory.report(Sentence, boolean) line: 438
Memory.derivedTask(Task) line: 252
Memory.singlePremiseTask(Term, char, TruthValue, BudgetValue) line: 317
LocalRules.convertedJudgment(TruthValue, BudgetValue, Memory) line: 258
LocalRules.conversion(Memory) line: 214
LocalRules.matchReverse(Memory) line: 144
RuleTables.asymmetricAsymmetric(Sentence, Sentence, int, Memory) line: 253
RuleTables.syllogisms(TaskLink, TermLink, Term, Term, Memory) line: 170
RuleTables.reason(TaskLink, TermLink, Memory) line: 124
Concept.fire() line: 424
Memory.processConcept() line: 383
Memory.workCycle(long) line: 334
Reasoner(ReasonerBatch).doTick() line: 130
Reasoner$1.run() line: 61
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Here timer has already been decremented to 1 :

Thread [AWT-EventQueue-0] (Suspended)
Memory.report(Sentence, boolean) line: 439
Memory.derivedTask(Task) line: 252
Memory.singlePremiseTask(Term, char, TruthValue, BudgetValue) line: 317
LocalRules.convertedJudgment(TruthValue, BudgetValue, Memory) line: 258
LocalRules.conversion(Memory) line: 214
LocalRules.matchReverse(Memory) line: 144
RuleTables.asymmetricAsymmetric(Sentence, Sentence, int, Memory) line: 253
RuleTables.syllogisms(TaskLink, TermLink, Term, Term, Memory) line: 170
RuleTables.reason(TaskLink, TermLink, Memory) line: 124
Concept.fire() line: 424
Memory.processConcept() line: 383
Memory.workCycle(long) line: 334
Reasoner(ReasonerBatch).doTick() line: 130
Reasoner$1.run() line: 61
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 727
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 688
EventQueue$3.run() line: 686
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 697
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Reasoner's own thread:

Thread [Thread-0] (Suspended)
Memory.report(Sentence, boolean) line: 439
Memory.derivedTask(Task) line: 252
Memory.singlePremiseTask(Term, char, TruthValue, BudgetValue) line: 317
LocalRules.convertedJudgment(TruthValue, BudgetValue, Memory) line: 258
LocalRules.conversion(Memory) line: 214
LocalRules.matchReverse(Memory) line: 144
RuleTables.asymmetricAsymmetric(Sentence, Sentence, int, Memory) line: 253
RuleTables.syllogisms(TaskLink, TermLink, Term, Term, Memory) line: 170
RuleTables.reason(TaskLink, TermLink, Memory) line: 124
Concept.fire() line: 424
Memory.processConcept() line: 383
Memory.workCycle(long) line: 334
Reasoner(ReasonerBatch).doTick() line: 127
Reasoner.tick() line: 60
NARS.run() line: 126
Thread.run() line: 722

Trying to connect to SQL server

ava.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver

2013-03-07

, move the default constructor in 2nd position

To facilitate Scalagen translation, and diminish the number of post translation edits, it is advised to prepare the Java code by some easy changes.

For a class C1 having many subclasses, the most used constructor in subclasses should be before other constructors in the Java source of C1

https://github.com/automenta/netentionjs2#readme

https://docs.google.com/presentation/d/1gAXbLW7Hx91F9iesFa4lOCsYCP0YoSiqJHFOCctNduA/edit#slide=id.p

http://jfresnel.gforge.inria.fr/

http://hplusmagazine.com/2011/01/27/pei-wang-path-artificial-general-intelligence/

http://raphaeljs.com/

http://en.wikipedia.org/wiki/Windows_PowerShell

svn checkout svn://scm.gforge.inria.fr/svnroot/jfresnel/trunk jfresnel

Status on Java & Scala code changes in NARS: https://groups.google.com/forum/?fromgroups=#!topic/open-nars/NriHrdKwfDU

The timer mechanism in MainWindow serves 2 purposes:

2013-03-06

refactor : move class Parameters.java to package main_nogui

( pave the way to separe GUI from reasoning )

http://www.azulsystems.com/

http://jbehave.org/

http://en.wikipedia.org/wiki/Behavior-driven_development#External_links

http://fr.wikipedia.org/wiki/Behavior_Driven_Development#Outils

http://subclipse.tigris.org/wiki/JavaHL

http://stackoverflow.com/questions/9645048/scala-designation-of-a-matched-item-in-pattern-matching

% cd nars/entity
% grep gui *
Concept.java:import nars.gui.ConceptWindow;
% grep gui *
ExperienceReader.java:import nars.gui.InputWindow;
ExperienceReader.java:import nars.main_nogui.ReasonerBatch;
ExperienceWriter.java:import nars.main_nogui.ReasonerBatch;
InferenceRecorder.java:import nars.gui.InferenceWindow;

Upgrading subclipse (eclipse) on Ubuntu 12.10

http://subclipse.tigris.org/update_1.8.x/

Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

% file /usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so*
/usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so:       symbolic link to `libsvnjavahl-1.so.0.0.0'
/usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so.0:     symbolic link to `libsvnjavahl-1.so.0.0.0'
/usr/lib/x86_64-linux-gnu/jni/libsvnjavahl-1.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x9ae582cbf9e0c9227c13d29a0452caf5b1d20d47, stripped

On Ubuntu 12.10 I added this in eclipse.ini

-Djava.library.path=/usr/lib/x86_64-linux-gnu

And I could reconnect to my SVN working directory.

Re-run Scalagen

cd ~/src/w/open-nars-scala/nars_core
rm -r src/main/java/nars
cp -r ../nars/ src/main/java/
rm -r target/scala/
 ./scalagen_run
rm -r  src/main/scala/nars
cp -r target/scala/nars  src/main/scala 
rm -r src/main/java
mvn compile

==> 26 errors ! (before recent Scalagen corrections 50 )

COMMIT NARS

- add remaining translated source Bag.scala

2013-03-05

https://github.com/mysema/rdfbean/wiki/Getting-started

NARS monitoring

This method in class entity.Concept seems to be a turn table suitable for debugging and monitoring the reasoning process:

    public void directProcess(Task task)

Running d2rq generate-mapping again

best+way+to+generate+ontology+from+relational+database

cf my "bug" report : https://github.com/d2rq/d2rq/issues/199

 % ./generate-mapping
usage: generate-mapping [options] jdbcURL

  Arguments:
    jdbcURL         JDBC URL for the DB, e.g. jdbc:mysql://localhost/dbname
                    (If omitted with -l, set up a temporary in-memory DB)
  Options:
    -u username     Database user for connecting to the DB
    -p password     Database password for connecting to the DB
    -d driverclass  Java class name of the JDBC driver for the DB
    -l script.sql   Load a SQL script before processing
    --w3c           Produce W3C Direct Mapping compatible mapping file
    --[skip-](schemas|tables|columns) [schema.]table[.column]
                    Include or exclude specific database objects
    -o outfile.ttl  Output file name (default: stdout)
    -v              Generate RDFS+OWL vocabulary instead of mapping file
    --verbose       Print debug information

./generate-mapping -u username -p password -d driverclass -o outfile.ttl -v --verbose

Installing sql Server Jdbc driver from Microsoft :

ln -s /home/jmv/apps/sqljdbc_4.0/fra/sqljdbc4.jar lib/db-drivers/

Using NARS converted by Scalagen

Passing the test suite

<<robin --> flyer> ==> <robin --> bird>>.

Thread [AWT-EventQueue-0] (Suspended (exception NullPointerException))
Statement$.makeStatementName(Term, String, Term) line: 138
<unknown receiving type>(Inheritance$).make(Term, Term, Memory) line: 25
Statement$.make(String, Term, Term, Memory) line: 36
StringParser$.parseStatement(String, Memory) line: 278
StringParser$.parseTerm(String, Memory) line: 228
StringParser$.parseArguments(String, Memory) line: 319
StringParser$.parseCompoundTerm(String, Memory) line: 298
StringParser$.parseTerm(String, Memory) line: 213
StringParser$.parseStatement(String, Memory) line: 277
StringParser$.parseTerm(String, Memory) line: 228
StringParser$.parseTask(String, Memory, long) line: 66
StringParser$.parseExperience(StringBuffer, Memory, long) line: 45
Reasoner.textInputLine(String) line: 179
ExperienceReader.nextInput() line: 89
Reasoner$$anon$1$$anonfun$run$1.apply(InputChannel) line: 136
Reasoner$$anon$1$$anonfun$run$1.apply(Object) line: 135
Iterator$class.foreach(Iterator, Function1) line: 727
Wrappers$JIteratorWrapper<A>(AbstractIterator<A>).foreach(Function1<A,U>) line: 1157
IterableLike$class.foreach(IterableLike, Function1) line: 72
Wrappers$JListWrapper<A>(AbstractIterable<A>).foreach(Function1<A,U>) line: 54
Reasoner$$anon$1.run() line: 135
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 721
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 682
EventQueue$3.run() line: 680
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 691
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

Running simple inheritance

< a--> b>.

Thread [AWT-EventQueue-0]
BudgetFunctions$.activate(Concept, BudgetValue) line: 138
Memory.activateConcept(Concept, BudgetValue) line: 163
Concept.insertTaskLink(TaskLink) line: 256
Concept$$anonfun$linkToTask$1.apply(TermLink) line: 182
Concept$$anonfun$linkToTask$1.apply(Object) line: 177
Iterator$class.foreach(Iterator, Function1) line: 727
AbstractIterator.foreach(Function1) line: 1157
IterableLike$class.foreach(IterableLike, Function1) line: 72
AbstractIterable.foreach(Function1) line: 54
Concept.linkToTask(Task) line: 177
Concept.directProcess(Task) line: 88
Memory.immediateProcess(Task) line: 362
Memory.processNewTask() line: 313
Memory.workCycle(Long) line: 290
Reasoner$$anon$1.run() line: 150
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 721
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 682
EventQueue$3.run() line: 680
AccessController.doPrivileged(PrivilegedAction, AccessControlContext) line: not available
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 691
EventDispatchThread.pumpOneEventForFilters(Int) line: 242
EventDispatchThread.pumpEventsForFilter(Int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(Int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(Int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

New problem : division by 0 : FIXED by changing the main constructor in Compoundterm

Thread [AWT-EventQueue-0]
CompoundTerm.getComplexity() line: 373
Concept.getQuality() line: 335
BudgetFunctions$.activate(Concept, BudgetValue) line: 141
Memory.activateConcept(Concept, BudgetValue) line: 163
Concept.insertTaskLink(TaskLink) line: 256
Concept.linkToTask(Task) line: 170
Concept.directProcess(Task) line: 88
Memory.immediateProcess(Task) line: 362
Memory.processNewTask() line: 313
Memory.workCycle(Long) line: 290
Reasoner$$anon$1.run() line: 150
InvocationEvent.dispatch() line: 251

Hack remedy : compute once more the name in renameVariables().

makeStatementName is called 3 times :( :

Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 173 in Statement))
Statement.makeStatementName(Term, String, Term) line: 173
Inheritance(Statement).makeName() line: 162
Inheritance(CompoundTerm).renameVariables() line: 509
Sentence.<init>(Term, char, TruthValue, Stamp) line: 53
StringParser.parseTask(String, Memory, long) line: 101
StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 201
InputWindow.nextInput() line: 163
Reasoner$1.run() line: 155
InvocationEvent.dispatch() line: 251

Does set name field in Inheritance:

Thread [AWT-EventQueue-0] (Suspended)
Statement.makeStatementName(Term, String, Term) line: 179
Inheritance(Statement).makeName() line: 162
Inheritance(CompoundTerm).<init>(ArrayList<Term>) line: 87
Inheritance(Statement).<init>(ArrayList<Term>) line: 45
Inheritance.<init>(ArrayList<Term>) line: 39
Inheritance.make(Term, Term, Memory) line: 78
Statement.make(String, Term, Term, Memory) line: 72
StringParser.parseStatement(String, Memory) line: 324
StringParser.parseTerm(String, Memory) line: 272
StringParser.parseTask(String, Memory, long) line: 96
StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 201
InputWindow.nextInput() line: 163
Reasoner$1.run() line: 155
InvocationEvent.dispatch() line: 251

Does not set name field in Inheritance:

Thread [AWT-EventQueue-0] (Suspended)
Statement.makeStatementName(Term, String, Term) line: 179
Inheritance.make(Term, Term, Memory) line: 72
Statement.make(String, Term, Term, Memory) line: 72
StringParser.parseStatement(String, Memory) line: 324
StringParser.parseTerm(String, Memory) line: 272
StringParser.parseTask(String, Memory, long) line: 96
StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 201
InputWindow.nextInput() line: 163
Reasoner$1.run() line: 155
InvocationEvent.dispatch() line: 251

Thread [AWT-EventQueue-0] (Suspended)
StringParser.parseAtomicTerm(String) line: 305
StringParser.parseTerm(String, Memory) line: 277
StringParser.parseStatement(String, Memory) line: 322
StringParser.parseTerm(String, Memory) line: 272
StringParser.parseTask(String, Memory, long) line: 96
StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 201
InputWindow.nextInput() line: 163
Reasoner$1.run() line: 155
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 721
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 682
EventQueue$3.run() line: 680
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 691
EventDispatchThread.pumpOneEventForFilters(int) line: 242
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

In StringParser line 55 content.name is null !????!

  def parseTask(s: String, memory: Memory, time: Long): Task = {
    val buffer = new StringBuffer(s)
    var task: Task = null
    try {
      val budgetString = getBudgetString(buffer)
      val truthString = getTruthString(buffer)
      val str = buffer.toString.trim()
      val last = str.length - 1
      val punc = str.charAt(last)
      val stamp = new Stamp(time)
      val truth = parseTruth(truthString, punc)
      val content = parseTerm(str.substring(0, last), memory)
      val sentence = new Sentence(content, punc, truth, stamp)

Thread [AWT-EventQueue-0]
Memory.nameToListedTerm(String) line: 123
Inheritance$.make(Term, Term, Memory) line: 26
Statement$.make(String, Term, Term, Memory) line: 36
StringParser$.parseStatement(String, Memory) line: 278
StringParser$.parseTerm(String, Memory) line: 228
StringParser$.parseTask(String, Memory, Long) line: 66
StringParser$.parseExperience(StringBuffer, Memory, Long) line: 45
Reasoner.textInputLine(String) line: 179
InputWindow.nextInput() line: 171
Reasoner$$anon$1$$anonfun$run$1.apply(InputChannel) line: 136
Reasoner$$anon$1$$anonfun$run$1.apply(Object) line: 135
Iterator$class.foreach(Iterator, Function1) line: 727
AbstractIterator.foreach(Function1) line: 1157
IterableLike$class.foreach(IterableLike, Function1) line: 72
AbstractIterable.foreach(Function1) line: 54
Reasoner$$anon$1.run() line: 135
InvocationEvent.dispatch() line: 251
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 721
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 682
EventQueue$3.run() line: 680
AccessController.doPrivileged(PrivilegedAction, AccessControlContext) line: not available
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 691
EventDispatchThread.pumpOneEventForFilters(Int) line: 242
EventDispatchThread.pumpEventsForFilter(Int, Conditional, EventFilter) line: 161
EventDispatchThread.pumpEventsForHierarchy(Int, Conditional, Component) line: 150
EventDispatchThread.pumpEvents(Int, Conditional) line: 146
EventDispatchThread.pumpEvents(Conditional) line: 138
EventDispatchThread.run() line: 91

2013-03-04

https://github.com/mysema/rdfbean#readme

mysema is also the author of scalagen !

http://blog.mysema.com/2012/03/scalagen-java-to-scala-conversion.html

http://www.mysema.com/

Twitt

First snapshot of #EulerGUI 2.0; no new feature yet; upgrade dependencies to latest versions : #Euler, #JLine, #Jena, #OwlAPI

http://scala-tools.org/mvnsites/maven-scala-plugin/example_java.html

Confirm the bug:

mkdir nars_core/src/main/java/nars/storage
cp nars/storage/Bag.java nars_core/src/main/java/nars/storage
cd nars_core
mvn com.mysema.scalagen:scalagen-maven-plugin:0.2.1:main -DtargetFolder=target/scala

https://open-nars.googlecode.com/svn/trunk/nars/storage/Bag.java

https://github.com/mysema/scalagen/issues/39

Exception in thread "main" java.lang.ExceptionInInitializerError
at nars.storage.Memory.<init>(Memory.scala:22)
at nars.main.Reasoner.<init>(Reasoner.scala:24)
at nars.main.NARS.init(NARS.scala:75)
at nars.main.NARS.init(NARS.scala:63)
at nars.main.NARS$.main(NARS.scala:38)
at nars.main.NARS.main(NARS.scala)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
at nars.storage.Distributor.<init>(Distributor.scala:27)
at nars.storage.Bag.<clinit>(Bag.java:54)
 ... 6 more

2013-03-03

I'm translating some Java code, and I wonder how a type Int* ( int... in Java ) gets initialized as a field in Java

http://www.iana.org/domains/example

Vous pouvez éviter ce message à l'avenir en définissant la valeur de l'option
'store-plaintext-passwords' à 'yes' ou 'no' dans '/home/jmv/.subversion/servers'.

http://teyjus.cs.umn.edu/ an efficient implementation of the higher-order logic programming language Lambda Prolog. http://www.lix.polytechnique.fr/Labo/Dale.Miller/lProlog/

Arié said:

Using Scalagen - Java to Scala conversion (NARS)

Refreshing and installing Scalagen :

cd ~/src/scalagen/
git pull --verbose
 ...
 README.md                                          |    6 +++---
 pom.xml                                            |    4 ++--
 scalagen-maven-plugin/pom.xml                      |    4 ++--
 scalagen/pom.xml                                   |    2 +-
 scalagen/src/main/scala/PlaceHolder.java           |    2 ++
 .../com/mysema/scalagen/ControlStatements.scala    |    2 +-
 6 files changed, 11 insertions(+), 9 deletions(-)
 create mode 100644 scalagen/src/main/scala/PlaceHolder.java

mvn install

Downloading fresh code for NARS:

cd ../
svn checkout https://open-nars.googlecode.com/svn/trunk/ open-nars-scala
cd open-nars-scala

Mavenizing the project:

mkdir w
cd w
mvn archetype:generate 
 ...
Confirm properties configuration:
groupId: nars
artifactId: core
version: 1.0-SNAPSHOT
package: nars

cp core/pom.xml ..
rm -r w

Populating the sources in new Maven project:

mkdir -p src/main/java/nars
cp -r ../nars/* src/main/java/nars

mvn compile
 ...
[INFO] Compiling 68 source files to ...
[INFO] Total time: 4.946s

Converting:

mvn com.mysema.scalagen:scalagen-maven-plugin:0.2.1:main -DtargetFolder=target/scala
 ...
[ERROR] Failed to execute goal com.mysema.scalagen:scalagen-maven-plugin:0.2.1:main (default-cli) on project core: Execution default-cli of goal com.mysema.scalagen:scalagen-maven-plugin:0.2.1:main failed: Caught Exception for /home/jmv/src/open-nars-scala/nars_core/src/main/java/nars/storage/Bag.java: NullPointerException -> [Help 1]
[INFO] BUILD FAILURE
[INFO] Total time: 3.564s

Bad surprise! My first NPE in Scala ! (not my fault, it's in the translator)

Caused by: java.lang.NullPointerException
at com.mysema.scalagen.Helpers$RichBlockStmt.apply(Helpers.scala:72)
at com.mysema.scalagen.Properties$$anonfun$visit$2.apply(Properties.scala:51)
at com.mysema.scalagen.Properties$$anonfun$visit$2.apply(Properties.scala:48)
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59)
at scala.collection.immutable.List.foreach(List.scala:45)
at com.mysema.scalagen.Properties.visit(Properties.scala:48)
at com.mysema.scalagen.Properties.visit(Properties.scala:27)
at japa.parser.ast.body.ClassOrInterfaceDeclaration.accept(ClassOrInterfaceDeclaration.java:71)

I will report this later; for now, I must continue:

rm src/main/java/nars/storage/Bag.java
mvn com.mysema.scalagen:scalagen-maven-plugin:0.2.1:main -DtargetFolder=target/scala
 ...
[INFO] BUILD SUCCESS
[INFO] Total time: 3.804s

Alas, Scalagen doest not update the POM.

I must add back the removed Java file:

cp ../nars/storage/Bag.java src/main/java/nars/storage

Now, I translate the test:

mvn com.mysema.scalagen:scalagen-maven-plugin:0.2.1:test -DtargetFolder=target/scala

NOTE: I'm not sure if putting the test code in another directory works; also if and how the translation ca be re-done.

Scalagen does not move itself the generated sources:

mv target/scala/* src/main/scala

Now the real job of tranlation :

mvn compile
 ...
[ERROR] 50 errors found
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE

scalagen does not remove the Java:

rm -r src/main/java/*

Summary of problems with scalagen (will be reported ) :

Remaining troubles after scalagen translation

In the translated Scala there are lots of calls of a super class constructor in auxiliary constructors (which is forbidden).

This contructor is called 13 times in Java :

protected CompoundTerm(String name, ArrayList<Term> components, boolean isConstant, short complexity) {

This contructor is called 11 times in Java :

    protected CompoundTerm(ArrayList<Term> components) {

Notes:

Pasted from Oderski:

The net effect of this rule is that every constructor invocation in Scala will end up eventually calling the primary constructor of the class. The primary constructor is thus the single point of entry of a class.

COMMIT on NARS

First Draft of NARS translated in Scala in nars_core/

- after automatic translation : 50 compilation errors

- after easy manual fix : still 20 errors

- details of translation prcess here : http://jmvanel.free.fr/computer-notes.html#L10214

- updated pom.xml for Maven build

var r = if(test) {"oui"}   else {"non"}
var c = if(test) {"blanc"} else {"noir"}

2013-03-02

http://www.horstmann.com/

http://www.horstmann.com/violet/index.html

http://weblogs.java.net/blog/cayhorstmann/archive/2013/01/14/first-look-scala-macros

<jmvanel> sseehh is excited about becca : http://www.sandia.gov/~brrohre/

<jmvanel> never heard of !

<jmvanel> Since Jos did sets, EG's parser by Luc is not passing test anymore : {($ :u :v :u $) log:equalTo ($ :v :u $)} => {:loge2 :result true}.

in trunk/2007/07test/biP.n3

<jmvanel> should send a bug report to heaven :(

[INFO] Failed tests: testFromEulerSharp(eulergui.parser.n3.impl.parser4j.service.TestForJos): parsing must succeed(..)

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.2.1:prepare (default-cli) on project eulergui: Unable to commit files
[ERROR] Provider message:
[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] svn: warning: cannot set LC_CTYPE locale
[ERROR] svn: warning: environment variable LANG is en
[ERROR] svn: warning: please check that your locale name is correct
[ERROR] svn: E170001: Commit failed (details follow):

Fixing pom.xml for Scala

https://blogs.oracle.com/arungupta/entry/scala_and_maven_getting_started

http://www.scala-lang.org/node/345

http://stuq.nl/weblog/2008-11-26/4-steps-to-add-scala-to-your-maven-java-projects

I did a little test to see what scala-archetype-simple generates:

cd src/MISC_TESTS
mvn archetype:generate \      -DarchetypeGroupId=org.scala-tools.archetypes \      -DarchetypeArtifactId=scala-archetype-simple  \      -DremoteRepositories=http://scala-tools.org/repo-releases \      -DgroupId=org.glassfish.samples \
      -DartifactId=scala-helloworld \
      -Dversion=1.0-SNAPSHOT 
cd scala-helloworld
gvim pom.xml
ls -l **/.scala_dependencies
mvn package 
# now .scala_dependencies exists !
less target/.scala_dependencies

scala-archetype-simple generates this block in pom.xml

      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.15.2</version>
         <executions>
          <execution>
            <goals>
              <goal>compile</goal>
              <goal>testCompile</goal>
            </goals>
            <configuration>
              <args>
                <arg>-make:transitive</arg>
                <arg>-dependencyfile</arg>                <arg>${project.build.directory}/.scala_dependencies</arg>
              </args>
            </configuration>
          </execution>
        </executions>
      </plugin>

Alas if I add it in the EulerGUI pom.xml, simplifying it at ther same time, it still trigers

--- maven-compiler-plugin:2.3.2:compile (default-compile) @ eulergui

in addition to

--- maven-scala-plugin:2.15.2:compile (default) @ eulergui

COMMIT

pom.xml: Pasted the model from :

http://stuq.nl/weblog/2008-11-26/4-steps-to-add-scala-to-your-maven-java-projects

This fixed the Maven compile goal , due to mixed Java <--> Scala calls.

also tidied the pom.xml

      <plugin>
        <groupId>org.scala-tools</groupId>
        <artifactId>maven-scala-plugin</artifactId>
        <version>2.15.2</version>
         <executions>
                    <execution>
                        <id>compile</id>
                        <goals>
                        <goal>compile</goal>
                        </goals>
                        <phase>compile</phase>
                    </execution>
                    <execution>
                        <id>test-compile</id>
                        <goals>
                        <goal>testCompile</goal>
                        </goals>
                        <phase>test-compile</phase>
                    </execution>
                    <execution>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>

My IA training

http://en.wikipedia.org/wiki/Automobile

http://dbpedia.org/page/Automobile

http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse7

http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse16

http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse5

http://www.learnprolognow.org/lpnpage.php?pagetype=html&pageid=lpn-htmlse16

---------

NARS

<jmvanel> my worries for regression in NARS were real :(

<jmvanel> this weekend , I'd like to migrate fully EG to Scala .

<jmvanel> "ne pas mettre un pansement sur une jambe de bois"

<jmvanel> not put a bandage on a wooden leg

<jmvanel> and start migration to OWL/N3 format for projects.

<jmvanel> then I can start the "Features considered for next version 2.0 of EulerGUI"

http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/ia1_logique.xhtml#Prover9-2

9.5 Linking embedded applications using swipl-ld

9.5.1 A simple example

calc(Atom) :-                                                      
        term_to_atom(Expr, Atom),                                       
        A is Expr,                                                     
        write(A),                                                     
nl.

2013-02-28

NARS

NARS: Changes with release 1.3.3 : Syntax: variables begin with # (existentially quantified) : "every", or $ (universally quantified) : "some" .

OK :

in eclipse :

in command line

<(&&, <#r --> [red]>,<#b --> [blue]>) ==> <a-->b>>.

OK:

<(&&, <#r --> [red]>,<#b --> [blue]>) ==> <(*,#r,#b) --> pattern1>>.

<(&&, <#r --> [red]>,<#b --> [blue]>) ==> <(*,#r,#b) --> pattern1>>?

!!! INVALID INPUT: (&&, <#r --> [red]>,<#b --> [blue]>) --- missing CompoundTerm closer

!!! INVALID INPUT: <(*,#r,#b) --> pattern1> --- invalid term

InputWindow.nextInput() - NullPointerException: please correct the input

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

Twitt:

N3 and Semantic Web are putting URI's everywhere for identifiers, but the real difference for the developer is having prefixes.

I can put URI's in LISP or Prolog identifiers, and even abreviated ones, but there is no stantard to declare inside the Prolog or LISP, or any language, what my prefixes are.

--------

not using ";" for instruction termination is bad !

Java is widely used ==> Java is good

CLIPS integration in progress

This sample project gives a complete CLIPS output :

eg https://deductions.svn.sourceforge.net/svnroot/deductions/clips/BloodPressure.n3.n3p &

except that :

(assert ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure "72" ) )

must be replaced by:

(assert ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure 72 ) )

FIXED

Had a look at jcog :

Experimental unification of several "artificial intelligence",

"cognition", "reasoning", "semantic", and "virtual reality" software systems - for the Java Virtual Machine.

https://github.com/automenta/jcog#readme

Alas, does not build, and no user manual!

automenta is sseehh : http://blog.automenta.com/2011_03_01_archive.html

2013-02-27

After Jos' article: Data Definition Ontology (DDO) (Ontology B1)

http://www.w3.org/TR/rdb-direct-mapping/

N3 to CLIPS translator

It helps a lot to have the N3 backward chaining rules.

Trying the result of N3 to CLIPS translator:

 % clips
         CLIPS (V6.24 06/15/06)
CLIPS> (assert ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure "72" ) )
<Fact-0>
CLIPS> (defrule t0_1
    ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure ?sk0_1 )
    ( http://www.w3.org/2000/10/swap/math#greaterThan ?sk0_1 70 )
    =>
    ( http://eulergui.sourceforge.net/examples#alert http://eulergui.sourceforge.net/examples#Service112 true )
)

[EXPRNPSR3] Missing function declaration for http://eulergui.sourceforge.net/examples#alert

Instead it should be :

(defrule t0_1
    ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure ?sk0_1 )
    ( > ?sk0_1 70 )
    =>
    ( assert( http://eulergui.sourceforge.net/examples#alert http://eulergui.sourceforge.net/examples#Service112 true ) )

But still with it does not work :( .

To be sure, I try without URI , just plain identifyers , and 72 as a numeric literal :

(assert ( val BloodPressure 72 ) )
(defrule t0_1
    ( val BloodPressure ?sk0_1 )
    ( > ?sk0_1 70 )
    =>
    ( assert( alert Service112 true ) )
)

But still no result :( .

The answer is in CLIPS Reference Manual , "5.4.2 Test Conditional Element" :

(assert ( val BloodPressure 72 ) )
(defrule t0_1
    ( val BloodPressure ?sk0_1 )
    (test ( > ?sk0_1 70 ))
    =>
    ( assert( alert Service112 true ) )
)

COMMIT:

Now get this correct result from eulergui/examples/BloodPressure.n3 :

(defrule t0_1
    ( http://eulergui.sourceforge.net/examples#val http://eulergui.sourceforge.net/examples#BloodPressure ?sk0_1 )
    (test ( > ?sk0_1 70 ))
    =>
    (assert( http://eulergui.sourceforge.net/examples#alert http://eulergui.sourceforge.net/examples#Service112 true ))
)

Answer on building OpenCog

Thanks David.

I'll try this week end.

Also I'm involved in NARS, which has no dependency and builds readily :) .

I' d like to compare PLN and NARS.

But I realize that OpenCog is much more than PLN and several people use other module e.g. Moses without PLN .

Importing N3 rules and FOL into NARS

<jmv> I got useful answers from Pei on the list. ( cf #nars )

[open-nars] importing N3 rules and FOL into NARS

https://mail.google.com/mail/u/0/?tab=wm#inbox/13d18d66b1830bff

This mainly confirms what I thought , with this precision:

'$' variable is for "every", and '#' variable for "some".

<jmv> Updated the translator N3 rules ==> NARS

<jmv> https://deductions.svn.sourceforge.net/svnroot/deductions/nars/n3rulestonars.n3

<jmv> https://deductions.svn.sourceforge.net/svnroot/deductions/nars/n3tonars.n3

<sseehh_> very cool what is the next step?

<sseehh_> i apprecitae how a project like NARS you can actually download and begin playing with without any setup

<sseehh_> imagine if NARS was the main interface to OpenCog

<sseehh_> or to use NARS as a tool for configuring OpenCog build

<sseehh_> since its so complex its a task better suited for AI ;)

<jmvanel> the next step?

<jmvanel> actually import RDF/OWL/N3 URL's , SPARQL into a running NARS KB ;

<jmvanel> concretely either add a NARS engine in EulerGUI, or add EulerGUI libraries in NARS GUI , or both ...

<jmvanel> probably the quickest and also helpful for my experiments will be to treat NARS as an external process, like I do for CWM and Euler(Prolog)

mvanel> must also cover 2 types of variables in translation ...

<jmvanel> sseehh_, note that NARS version 1.5.1 is a bit behind ; I fixed some bugs in GUI .

<jmvanel> ./build.sh is your friend

2013-02-26

Discovered EYE backward chaining !

Applied in CLIPS and NARS translator .

<rszeno> http://nlp.stanford.edu/software/segmenter.shtml

<rszeno> second step is segmentation

< (&&, <(*,http://eulergui.sourceforge.net/examples#BloodPressure, sk0_1) --> http://eulergui.sourceforge.net/examples#val > ) ==> (&&, <(*, http://eulergui.sourceforge.net/examples#Service112, true) --> http://eulergui.sourceforge.net/examples#alert > ) > .

2013-02-25

http://www.chayden.net/eliza/Eliza.html

http://en.wikipedia.org/wiki/List_of_chatterbots

http://dreliza.com/join.php

<sseehh_> http://blog.automenta.com/2013/02/p2p-ai-powered-social-networking.html this is part of an email i sent to encog's main developer

<utopiah> 1 month to apply for the summer school ()

<utopiah> July 17 - 30, 2013, Beijing, China

<utopiah> http://www.agi-conf.org/2013/

<hivemind-sb> Title: The Sixth Conference on Artificial General Intelligence (at www.agi-conf.org)

<utopiah> rather http://www.mindmakers.org/projects/agi-summer-school-2013

<hivemind-sb> Title: Overview - AGI Summer School - 2013 - Mindmakers (at www.mindmakers.org)

<jmvanel> hi utopiah , I guess only young can apply :(

<utopiah> yes, only under 130y/o

<jmvanel> :)

<utopiah> "To apply, email an application letter to AGI.SummerSchool.13@gmail.com to describe the related educational and research background of the applicant. There is no special application form to fill, and the application can have attachments (CV, papers, etc.), though they are not required.

<jmvanel> utopiah, when will you get the acceptance ?

<utopiah> The students of the summer school are expected to have college-level education in artificial intelligence and computer science, though exceptional cases will still be considered, in a case-by-case manner."

<utopiah> acceptance decision will be sent out by April 20, 2013.

<jmvanel> I'll have a look at it all, and probably apply :)

<jmvanel> Since a few weeks, I learn NARS , and I fixed some bugs in the GUI ; any NARS user here ?

<utopiah> would surely allow you to test NARS more efficiently than through the forum since Pei Wang will be there

<jmvanel> I know

<jmvanel> The only thing I dislike is heat in Chinese summer

<jmvanel> going to a MAS seminary

NARS semantics

--] : property of a class

Examples:

<Willy {-- whale>.  // Willy is a whale
<whale --] black>.  // whales are black
<Willy {-] black>?  // Willy is black

The extension of a term T is the set of terms T E = {x | (x ∈ VK ) ∧ (x → T )}.

The intension of T is the set of terms T I = {x | (x ∈ VK ) ∧ (T → x)}.

For example, extensional set “{Pacific, Atlantic, Indian, Antarctic, Arctic}” is a compound term that can be used in statement “ocean ↔ {Pacific, Atlantic, Indian, Antarctic, Arctic}” to enumerate the oceans; intensional set “[red, round]” is a compound term that can be used in statement “apple → [red, round]” to say “Apples are red and round”.

See fr.wikipedia / Intension_et_extension ( english article , alas, is different ).

In NALS-specification:

all terms in the extension of {T } must be identical to it, and no term can be more specific than it

The instance statement “S ◦→ P ” is defined by the inheritance statement “{S} → P .”

I guess it's the symbol {-- in the concrete syntax.

There is the dual definitions for intensional set and copula.

Definition 31 The property statement “S →◦ P ” is defined by the inheritance statement “S → [P ].

I guess it's the symbol {-] in the concrete syntax.

I missed this definition:

For two terms T1 and T2 , their product (T1 × T2 ) is a compound term defined by

((S1 × S2 ) → (P1 × P2 )) ≡ ((S1 → P1 ) ∧ (S2 → P2 )).

but I don't find this clear ...

A sybilline sentence :

There is no new inference rule directly defined in NAL-4, except the equivalence and implication propositions in the definitions and theorems, which will be turned into inference rules later.

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

<jmvanel> slowly digesting NALS-spec : extension, intension, sets ... hopefully I'll be able to fix my mail assistant example

<jmvanel> COMMENT : too many additional symbols ! That's not syntaxic sugar, that's syntaxic bitterness !

<sseehh_> yeah i dont see the helpfulness of the symbols exccept the most commonly used ones

<sseehh_> the higher order operators might as well just be words

<sseehh_> in prefix notation

<sseehh_> operator(a,b,c)

<jmvanel> could be , with just a special character to distinguish from user symbol ,

<jmvanel> like $inherit$(a,b)

<sseehh_> right

<sseehh_> something simple though

<sseehh_> like .

<sseehh_> .operator

<sseehh_> but the most basic ones should still have alternate character ones like -> i forget if thats inherit or whatever

<jmvanel> -> is inherit

<jmvanel> And ∪ means "intensional intersection" ,

<jmvanel> which is probably NOT the same as set union ! :(

<jmvanel> confusion !!!



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

/usr/share/doc/clips-common/html/index.html

/usr/share/doc/clips-common/examples/

<jmvanel> I guess you didn't know this one : "timblserver is a TiMBL wrapper; it adds server functionality to TiMBL. "

<jmvanel> The Tilburg Memory Based Learner, TiMBL, is a tool for Natural Language

<jmvanel> Processing research, and for many other domains where classification tasks are

<jmvanel> learned from examples.

<jmvanel> ( Ubuntu package )

<rszeno> :)

<jmvanel> Euler+ CWM + Drools should also be here : file:///usr/share/doc/clips-common/html/OtherWeb.html

<rszeno> when rww will work i will open url with file: schema, :)

<jmvanel> btw absolutely no discussion on #rww

<rszeno> sure, all are busy, :)

<rszeno> bergi is at work until around 19:00

<rszeno> all the rest are scanners, promiscue mode, wait to see what is happend, :)

<rszeno> no idea who is magnetik, is on few channels

<rszeno> btw bergi use php mainly and java

<rszeno> and some javascript, html

<rszeno> imo, is very good

<rszeno> german sterotype, :)

<jmvanel> http://processing.org/ : has a good reputation

2013-02-24

<jmvanel> I didn't release that eye (Euler) can accept several --query :

eye --nope ab.n3 bc.n3 cd.n3 --query c_query.n3 --query d_query.n3

<jmvanel> in eulergui/test/

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

Didn't know this rule framework : http://openrules.com/overview.htm

<jmvanel> #AGI does not seem a good hash tag : https://twitter.com/search?q=%23AGI&src=hash

<hivemind-sb> Title: Twitter / Recherche - #AGI (at twitter.com)

<archels> Astronaut Gang, Inc.

<jmvanel> http://www.qwant.com/?q=Artificial+general+intelligence : a new (french) search engine

http://ruben.verborgh.org/

https://github.com/RubenVerborgh

http://reasoning.restdesc.org/

http://restdesc.org/

http://ruben.verborgh.org/blog/

http://en.wikipedia.org/wiki/Semantic_reasoner

http://blogs.gnome.org/otte/2012/07/27/staring-into-the-abyss/

http://digitizor.com/2011/08/04/linus-torvalds-ditches-gnome-for-xfce/

NARS - Further tests on simpler cases with conjunction

Flattening N3 rule bases

e:label a rdf:Property, e:Builtin;
rdfs:comment "builtin to test wether the subject is a blank node and return the relabeled blank node label as object (this is a level breaker)";
rdfs:domain rdfs:Resource;
rdfs:range rdfs:Literal.

Ontology based GUI

Reconsidering the RAD workflow...

"better flow of information" said Zeno

2013-02-23

http://lists.w3.org/Archives/Public/www-archive/2002Jul/att-0044/n3tohtml.n3

http://www.w3.org/2000/10/swap/test/crypto/?N=D

http://infomesh.net/2002/notation3/

http://en.wikipedia.org/wiki/K-nearest_neighbor_algorithm

http://dws.informatik.uni-mannheim.de/en/projects/current-projects/

svn co https://open-nars.googlecode.com/svn/ open-nars-root

N3 to NARS transform rules

Currently this is what is produced on :

https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/examples/book.n3

...
<(*,http://example.com#WilliamGibson, <http://example.com#scifiWriter>) --> http://www.w3.org/1999/02/22-rdf-syntax-ns#type > .
< http://example.com#NealStephenson {-- http://example.com#scifiWriter > .

The rule base is here :

deductions/nars/n3tonars.n3

Also begun CLIPS.

2013-02-22

Updated Rule base repositorer and community site

http://www.w3.org/TR/2013/NOTE-rif-in-rdf-20130205/

Euler Skolem generator

e:tuple generates always the same URI (blank node generally) in subject position from given same subject, which can be anything: resource, list, quoted graph, literal.

e:tuple a rdf:Property, e:Builtin;
rdfs:comment "builtin skolem function generator";
rdfs:domain rdfs:Resource;
rdfs:range rdf:List.
# jmv: generate subject from object ( not necessarily a List )

This is very useful to attach a single URI to a whole structure ( rule, list, quoted graph ).

<jmvanel> rszeno, how would you match in a rule ?S ?P ?O . where ?O is a literal ?

<rszeno> all you know is that is literal?

<rszeno> jmvanel

<rszeno>

:a :b "c" .
{ ?x ?y ?z . ?z log:rawType log:literal . } => { ?x ?y ?z . }

. should work in cwm but i doubt will work in euler. anyway i didn't check

Neo4J + RDF

http://architects.dzone.com/news/storing-and-querying-rdf-data

http://datablend.be/?p=411

mvn versions:display-plugin-updates
[INFO] All plugins with a version specified are using the latest versions.
[INFO] All plugins have a version specified.

mvn versions:display-dependency-updates
 ...
[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.thoughtworks.xstream:xstream ...................... 1.4.3 -> 1.4.4
[INFO]   commons-cli:commons-cli ....................... 1.2 -> 20040117.000000
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   jline:jline .............................................. 2.9 -> 2.10
[INFO]   net.sourceforge.owlapi:owlapi-apibinding .............. 3.4.2 -> 3.4.3
[INFO]   net.sourceforge.owlapi:owlapi-parsers ................. 3.4.2 -> 3.4.3
[INFO]   org.drools:drools-compiler ............... 5.5.0.Final -> 6.0.0.Alpha7
[INFO]   org.scala-lang:scala-library ..................... 2.10.0 -> 2.11.0-M1
[INFO]   org.scala-lang:scala-swing ....................... 2.10.0 -> 2.11.0-M1

Learning NARS

Need to have a correspondance between NARSese and FOL, to facilate implementation of importers from various formats and data sources to NARS.

2013-02-21

Book: algorithms of the intelligent web by haralambos mouratidis

Learning NARS

NARS: machine learning use case (sweet food)

The AGI must learn that sweet food are good, while salty and spicy are not.

The data with plain inheritance:

// plain facts:
<cookie --> sweet_taste>.
<fruit  --> sweet_taste>.
<sausage --> salty_taste>.
// the "training" data:
<cookie --> good>.

or with the product operator:

// plain facts:
<(*,cookie,sweet)--> taste>.
<(*,fruit,sweet) --> taste>.
<(*,sausage,salty) --> taste>.
// the "training" data:
<cookie --> good>.

Note: the plain facts could be expressed as "extensional image" (the / compound term), cf Example-NAL4-in.txt :

********** structural transformation
  IN: <(*,acid,base) --> reaction>. %1.00;0.90% {0 : 1} 
2
 OUT: <acid --> (/,reaction,_,base)>. %1.00;0.90% {0 : 1} 
 OUT: <base --> (/,reaction,acid,_)>. %1.00;0.90% {0 : 1}

The question, with plain inheritance:

<#food --> good> ?
// expected answer:   <fruit --> good>

It works: at step 14 , we get (cf learning_inheritance.nars ) :

OUT: <fruit --> good>. %1.00;0.40% {14 : 1;2;4}

The question with the product operator is the same. It works too; but it takes a much longer computation:

OUT: <fruit --> good>. %1.00;0.40% {266 : 2;4;1} 

It takes longer because it involves an intermediary predicate taste, instead of a simple direct inheritance relation.

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

Further tests on original mail use case: mail5.nars

< <(*,#m,$VAL) --> $PROP > ==> #m --> uResponse>>. ?

Further tests on simpler cases with conjunction

~/src/open-nars-jmv/ % cat  nars-dist/Examples/bugfix_conjunction.txt 
sender.
replyTo.
(&&,replyTo, sender) ?
20

NO RESULT at all!!!

% cat  nars-dist/Examples/bugfix_conjunction_inherit.txt
<U --> sender>.
<mu1 --> replyTo>.

(&&,<mu1 --> replyTo>, <U --> sender>) ?
500

NO RESULT at all!!!

narsbatch nars-dist/Examples/bugfix_conjunction_inherit.txt > /tmp/bb
grep '<U --> sender>,<mu1 --> replyTo>)' /tmp/bb

Then I refer to "Non-Axiomatic Logic (NAL) Specification". The status of conjunction is not how I believed. It does not appear before NAL-5 "Statements as Terms"., which treats higher-order logic.

In IL-5 and NAL-5, a statement can be treated as a term, and a term can also be used as a statement. However, it does not mean that there is no difference between term and statement. In IL and NAL, a statement has both meaning and truth-value, while a non-statement term only has meaning, no truth-value.

So a compound-term such as (&&,<mu1 --> replyTo>, <U --> sender>) is not a statement, and thus if I understand well cannot be a question .

However, in latest Pei article "", this

#AGI and #AI systems suffer from linked-in syndrome

The #AGI and #AI systems suffer from linked-in syndrome (specific file formats, no importers from standard formats), while classic software suffer from Alzheimer (they forget use events).

Twitted as:

#AGI and #AI systems suffer from locked-in syndrome (specific file formats); classic software suffer from Alzheimer (forget user events).

2013-02-20

AGI chat

févr. 19 17:48:10

<rszeno>i suspect he will not do to much until after beijing conf

<rszeno>i recall i read somewhere

<jmvanel>probably yes, that's why I 'll propose him to implement new stuff ;

<jmvanel>he has a new book on the way, so the new stuff is hopefully specified

<rszeno>interesting part of nars is before nal-1 from my point of view

<jmvanel>so called nal-0

<jmvanel>?

<rszeno>il1 or L0, he give more names

<rszeno>yes and the connection with the rest of the logics

<rszeno>imo is only a part of a bigger picture

<jmvanel>anyway , I hope that my little use case stimulates him :)

<jmvanel>This whole AGI stuff is promising *in principle* , but they 're so remote from concrete uses !

<rszeno>that's because 'concrete uses' is restricted to publishing papers, books, and get money from this, this is the goal in fact, :)

<jmvanel>but in theory it should be easy to connect an AGI to any data or event source, and produce something useful ;

<jmvanel>also it should be easy to reproduce what more specialized reasoners do : forward, backward, ILP, theorem proving and inventing

<rszeno>is like sorting numbers, look easy until you need to sort a big list of numbers

<jmvanel>I don't ask atm that NARS be very efficient on guessing that mails sent by P1 are important

<jmvanel>just that it does it

<rszeno>a general reasoner is slow, a specialized one is not general enough, assembling many reasoners specialized and not in a single one or creating a framework for this is a problem

<jmvanel>And I'll also ask to the OpenCog guys

<rszeno>finaly what we get are partial solutions

<jmvanel>need an agent that will try different tools, and choose the best results

<jmvanel>it's just that reasoners are not as easily called as a sort algo

<rszeno>this ends with another problem, complexity is moved to collaboration between agents

<rszeno>concurrence, parallelism, distributed computation

<rszeno>new problems

<jmvanel>they are "locked in" their respective languages and input formats

<rszeno>you start to have same frustration like me, :)

<jmvanel>it's where the breakthough can happen, as even partially hand made glue fw can fill the gap ...

<jmvanel>frustration , indeed

<rszeno>i don't think somebody want to solve this

<jmvanel>http://en.wikipedia.org/wiki/Locked-in_syndrome

<jmvanel>they talk and write as if they would

<jmvanel>AGI guys

<rszeno>imo doesn't matter, i have my road, :)

<rszeno>if i can help i will do but i follow my way

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

http://www.lrde.epita.fr/cgi-bin/twiki/view/Epita/LOFO-Course

http://packages.ubuntu.com/quantal/python/

sudo  python setup.py install --record files.txt
sudo rm $(cat files.txt)

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

<synaesthetik> Yeah I actually spent like 4 hours teaching myself diatonic chord progression the other day

<nilg> do you know Fux counterpoint?

<synaesthetik> just to create more interesting melodies

<synaesthetik> no what is that?

<nilg> it's very old (300 y) but very interesting theory for composing multiple melodies playing at once

* Tedd1 (~tedd@37.191.131.64) a rejoint #opencog

<nilg> listen to that https://dl.dropbox.com/u/2987665/AgainstTheTree.mp3

<nilg> one of my first song composed after studying that theory, it's made with renoise so it sounds a bit synthetic

http://en.wikipedia.org/wiki/Virtual_Studio_Technology

http://www.studybass.com/lessons/harmony/intro-to-diatonic-chords/

http://www.musictheorysite.com/creating-diatonic-chord-progressions/

http://www.piano-play-it.com/chord-progression.html

2013-02-19

<jmvanel> I forgot the name of command TO list functions in a shared library

https://groups.google.com/forum/?fromgroups=#!search/python$20pln$20C$2B$2B/opencog/QQ4bAGM3Tgg/-o_cZsNYFl8J

Recommended by Cyril (Alan Kay) :

http://www.tele-task.de/archive/video/flash/14029/

Jared Davis http://www.cs.utexas.edu/users/jared/ author of

http://www.cs.utexas.edu/users/jared/milawa/Web/

Git for Subversion users, Part 1: Getting started

http://www.ibm.com/developerworks/library/l-git-subversion-1/

Git for Subversion users, Part 2: Taking control

http://www.ibm.com/developerworks/web/library/l-git-subversion-2/index.html

http://git.or.cz/course/svn.html

Re-trying OpenCog build

Commented :

https://github.com/opencog/opencog/issues/88

Mail sent to opencog list :

https://groups.google.com/forum/?fromgroups#!forum/opencog

I fact last time I didn't understand that PLN is now in Python, so I had uncommented the C++ compilation in opencog/reasoning/CMakeLists.txt . So, getting back to code axactly as depot tip, I got this error now :

Linking CXX executable OACTester
 ../../../cython/libPythonModule.so: référence indéfinie vers « PyString_FromString »
collect2: erreur: ld a retourné 1 code d'état d'exécution
make[2]: *** [opencog/embodiment/Control/OperationalAvatarController/OACTester] Erreur 1
make[1]: *** [opencog/embodiment/Control/OperationalAvatarController/CMakeFiles/OACTester.dir/all] Erreur 2
make: *** [all] Erreur 2

According to this :

http://stackoverflow.com/questions/8229597/embedding-python

The functions PyString_* simply no longer exist in Python 3.2 , they were renamed to PyBytes_.

And, worse , cogserver also has this dependency to Python 3.2 (as shows ldd), and does not run :

% opencog/server/cogserver
Using default config at ../lib/opencog.conf
opencog/server/cogserver: symbol lookup error: opencog/cython/libPythonModule.so: undefined symbol: PyString_FromString

CONCLUSION: it does not work to use latest Cython 0.18, aparently because it creates a dependency to Python 3.2 .

I'll next try Cython 0.17 , as advised on the Wiki :

http://wiki.opencog.org/w/Building_OpenCog_on_Ubuntu#Ubuntu_12.10_.28Quantal_Quetzal.29_Notes

And that does not work, I'll buy an USB disk for Ubuntu 12.04 for OpenCog :( .

SUGGESTION : a binary distribution of OpenCog , statically linked, would be nice .

2013-02-18

http://www.pps.univ-paris-diderot.fr/seminaire/

Re-trying OpenCog build

<jmvanel> any hope soon for building opencog on Ubuntu 12.10 ?

<jmvanel> If cython is the problem, did someone try The latest release of Cython 0.18 (released 2013-01-28) ?

<jmvanel> dhart ?

<jmvanel> trying the latest release of Cython 0.18 (released 2013-01-28) ?

<jmvanel> OpenCog does not work with Cython 0.18

<jmvanel> Sorry, it works :))))

<jmvanel> Despite many compile warnings

<jmvanel> This fixed cython troubles, but further down the road :

<jmvanel> [ 66%] Building CXX object opencog/reasoning/pln/CMakeFiles/pln.dir/PLNModule.cc.o

/home/jmv/src/opencog/opencog/reasoning/pln/PLNModule.cc:48:48: erreur fatale: opencog/adaptors/tulip/TulipWriter.h : Aucun fichier ou dossier de ce type

In file included from /home/jmv/src/opencog/opencog/atomspace/CompositeTruthValue.h:32:0,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/inference/../../formulas/Formula.h:31,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/inference/../../formulas/Formulas.h:134,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/inference/../Rules.h:29,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/inference/HypothesisRule.cc:26:
/home/jmv/src/opencog/opencog/util/functional.h: In member function ‘bool opencog::tagged_item<Item, Tag>::operator<(const opencog::tagged_item<Item, Tag>&) const’:
/home/jmv/src/opencog/opencog/util/functional.h:64:22: erreur: parse error in template argument list
/home/jmv/src/opencog/opencog/util/functional.h: In member function ‘bool opencog::tagged_item<Item, Tag>::operator<(const Tag&) const’:
/home/jmv/src/opencog/opencog/util/functional.h:68:22: erreur: parse error in template argument list
make[2]: *** [opencog/reasoning/pln/CMakeFiles/pln.dir/rules/inference/HypothesisRule.cc.o] Erreur 1

I restated the build :

cmake ..

make clean

make

After that:

[ 14%] Building CXX object opencog/ubigraph/CMakeFiles/ubigraph.dir/UbigraphModule.cc.o
In file included from /home/jmv/src/opencog/opencog/atomspace/TLB.h:29:0,
                 from /home/jmv/src/opencog/opencog/atomspace/AtomTable.h:32,
                 from /home/jmv/src/opencog/opencog/atomspace/AtomSpaceImpl.h:36,
                 from /home/jmv/src/opencog/opencog/atomspace/AtomSpaceAsync.h:10,
                 from /home/jmv/src/opencog/opencog/atomspace/AtomSpace.h:34,
                 from /home/jmv/src/opencog/opencog/ubigraph/UbigraphModule.cc:34:
/home/jmv/src/opencog/opencog/atomspace/Atom.h:33:42: erreur fatale: opencog/atomspace/atom_types.h : Aucun fichier ou dossier de ce type

It's probably because this has not been done before:

[ 15%] Generating opencog types

Relaunching make -k ; make , I get as first error :

/home/jmv/src/opencog/opencog/reasoning/pln/PLNModule.cc:49:48: erreur fatale: opencog/adaptors/tulip/TulipWriter.h : Aucun fichier ou dossier de ce type

Commenting out this #include in PLNModule.cc , this file compiles !

#include <opencog/adaptors/tulip/TulipWriter.h>

Then I get these 2 errors. The template argument list error in functional.h occurs in many files.

oem-laptop: ~/src/opencog/bin/ % make
[  3%] Built target cogutil
[ 12%] Built target comboreduct
[ 12%] Built target action-reductor
[ 12%] Built target contin-reductor
[ 12%] Built target eval-table
[ 12%] Built target full-reductor
[ 12%] Built target gen-disj-conj
[ 12%] Built target gen-table
[ 14%] Built target interactive-reductor
[ 14%] Built target logical-reductor
[ 14%] Built target mixed-reductor
[ 14%] Built target perception-reductor
[ 14%] Built target repl
[ 14%] Built target tree_gen
[ 15%] Built target ubigraph
[ 15%] Built target opencog_atom_types
[ 21%] Built target atomspace
[ 23%] Built target xml
[ 26%] Built target smob
[ 26%] Built target persist
[ 28%] Built target server
[ 29%] Built target cogserver_cython
[ 29%] Built target atomspace_cython
[ 29%] Built target agent_finder
[ 29%] Built target PythonModule
[ 29%] Building CXX object opencog/reasoning/pln/CMakeFiles/pln.dir/PLNModule.cc.o
In file included from /home/jmv/src/opencog/opencog/atomspace/CompositeTruthValue.h:32:0,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/../formulas/Formula.h:31,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/../formulas/Formulas.h:134,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/rules/Rules.h:29,
                 from /home/jmv/src/opencog/opencog/reasoning/pln/PLNModule.cc:31:
/home/jmv/src/opencog/opencog/util/functional.h: In member function ‘bool opencog::tagged_item<Item, Tag>::operator<(const opencog::tagged_item<Item, Tag>&) const’:
/home/jmv/src/opencog/opencog/util/functional.h:64:22: erreur: parse error in template argument list
/home/jmv/src/opencog/opencog/util/functional.h: In member function ‘bool opencog::tagged_item<Item, Tag>::operator<(const Tag&) const’:
/home/jmv/src/opencog/opencog/util/functional.h:68:22: erreur: parse error in template argument list

/home/jmv/src/opencog/opencog/reasoning/pln/PLNModule.cc: In member function ‘virtual void opencog::PLNModule::init()’:
/home/jmv/src/opencog/opencog/reasoning/pln/PLNModule.cc:153:56: erreur: cannot convert ‘opencog::AtomSpace’ to ‘opencog::AtomSpace*’ for argument ‘1’ to ‘opencog::pln::AtomSpaceWrapper* opencog::pln::ASW(opencog::AtomSpace*)’

Just warnings:

[ 21%] Building CXX object opencog/persist/xml/CMakeFiles/xml.dir/FileXMLBufferReader.cc.o
/home/jmv/src/opencog/opencog/persist/xml/FileXMLBufferReader.cc: In member function ‘virtual void opencog::FileXMLBufferReader::open()’:
/home/jmv/src/opencog/opencog/persist/xml/FileXMLBufferReader.cc:61:27: attention : ignoring return value of ‘char* getcwd(char*, size_t)’, declared with attribute warn_unused_result [-Wunused-result]

[ 63%] Generating opencog/atomspace.cpp
[ 63%] Building CXX object opencog/cython/CMakeFiles/atomspace_cython.dir/opencog/atomspace.cpp.o
/home/jmv/src/opencog/bin/opencog/cython/opencog/atomspace.cpp: In function ‘PyObject* __pyx_pf_7opencog_9atomspace_4is_a(PyObject*, __pyx_t_7opencog_9atomspace_Type, __pyx_t_7opencog_9atomspace_Type)’:
/home/jmv/src/opencog/bin/opencog/cython/opencog/atomspace.cpp:1285:15: attention : déréférencement du pointeur type-punned brisera les strictes d'aliases [-Wstrict-aliasing]
/home/jmv/src/opencog/bin/opencog/cython/opencog/atomspace.cpp:1285:15: attention : déréférencement du pointeur type-punned brisera les strictes d'aliases [-Wstrict-aliasing]

dANN

https://plus.google.com/116890257019640669765/posts

* Le sujet de #dANN est : dANN is an AI Library, for more information http://wiki.syncleus.com/index.php/DANN | This room is logged at http://irc.syncleus.com | Please be civil and kind to each other! |

SILC server: silc.syncleus.com |

4 years of development in 3 minutes: http://ln-s.net/5hJ3 |

mailing lists: http://lists.syncleus.com/ |

Channel Info: http://wiki.syncleus.com/index.php/Syncleus:IRC

* Sujet de #dANN défini par tty1 le Mon Sep 6 10:54:36 2010

* #dann :please visit http://wiki.syncleus.com/index.php/DANN for information about this project. Please visit http://wiki.syncleus.com/index.php/Syncleus:IRC for Channel Information and Rules. Off-topic chat is welcome but please be civil and kind.

<sseehh_> hi jmv _KY_

<sseehh_> http://web.archive.org/web/20121016075647/http://wiki.syncleus.com/index.php/DANN here is a temporary archive of the dANN wikipage

<Syncleus> <http://ln-s.net/+efz> (at web.archive.org)

<sseehh_> notice that it's based on semantic mediawiki so it is ready to become understood by a logic engine

<sseehh_> jmv and i were discussing a unified logic engine that can operate in NARS, Genifer, and OpenCog PLN modes simultaneously. the different engines would be metadata on basic knowledge graph represnting logic statements. expressive enough to represent data common to all of them this way if one logic system fails another can be tested or all of them compared simultaneously

<sseehh_> also probalistic-OWL ... which is probably implementable by dANN bayesian networks

<sseehh_> all logic engines can refer to the same concepts via semantic web URIs

<sseehh_> all else is essentially metadata

<jmv> http://www.pr-owl.org/ probalistic-OWL

<Syncleus> Title: PR-OWL Home (at www.pr-owl.org)

<jmv> What's the status of wiki.­syncleus.­com ? Why is it down ?

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

http://joegeldart.com/

http://about.me/joe.g

http://about.me/jmvanel

<sseehh_> http://funk2.org/example/concept_version_space/

<jmv> thanks , but unidentified beast !

<jmv> There is a bonanza of discussion on the list like:

<jmv> https://groups.google.com/forum/?fromgroups=#!searchin/open-nars/learning$20example/open-nars/jCRQZdTGa-M/POpgJhu2RuwJ

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

http://www.amzi.com/AdventureInProlog/advtop.php

http://en.wikipedia.org/wiki/Ludwig_Wittgenstein

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

at nars.inference.RuleTables.reason(RuleTables.java:141)

Test file nars-dist/Examples/bugfix_equivalence_conjunction2-in.txt
java.lang.ClassCastException: nars.language.Equivalence cannot be cast to nars.language.Implication
at nars.inference.RuleTables.reason(RuleTables.java:144)
at nars.entity.Concept.fire(Concept.java:424)
at nars.storage.Memory.processConcept(Memory.java:370)
at nars.storage.Memory.workCycle(Memory.java:321)
at nars.main.Reasoner.tick(Reasoner.java:164)
at nars.main_nogui.NARSBatch.run(NARSBatch.java:90)

2013-02-17

NARS explorations

I added a detailed dump of the last state in NARS batch program.

This allowed me in return to better understand the GUI.

And also to see improvements in the GUI, like "Concept content / Term Window" could have a pulldown menu to choose the concept.

The example is the first run of the first example file:

  IN: <bird --> swimmer>. %1.00;0.90% {0 : 1} 
  IN: <bird --> swimmer>. %0.10;0.60% {0 : 2} 
1

With the "Concept content / Term Window" feature I watched the concept:

<bird --> swimmer>

At clock 2 :: 1 we have this:

  Beliefs:
<bird --> swimmer>. %1.0000;0.9000% {0 : 1} 
<bird --> swimmer>. %0.8714;0.9130% {1 : 1;2} 
<bird --> swimmer>. %0.1000;0.6000% {0 : 2} 

But after any number of steps it stays with these 3 beliefs. Why doesn't NARS "forget" the 2 input tasks, to replace it with the single belief:

bird --> swimmer>. %0.8714;0.9130% {1 : 1;2} 

After looking in the code, it seems that the array beliefs in a class Concept is updated only in

Concept.addToTable()

and this only happens when the beliefs count gets above :

Parameters.MAXIMUM_BELIEF_LENGTH with is 7 .

My undersanding is that NARS does not need to tidy its beliefs because they are sorted anyway by the ubiquitous structure TruthValue containing frequency and confidence.

Now I'd like to continue my mail assistant example.

Also I'd like to add a test in NarsBatch to continue running until the question gets an answer (or a maximum number of steps is reached). This probably requires some test with unification.

2013-02-16

In the paper

D. Mollá, R. Schwitter. From Plain English to Controlled English. In: Proceedings of the 2001 Australasian Natural Language Processing Workshop, 20th April 2001, Macquarie University, Sydney, Australia, pp. 77-83, April 2001.

http://web.science.mq.edu.au/~rolfs/papers/anlp2001.pdf

Mollá and Schwitter describe the limits of automatically going from plain English to controlled English.

Agents that keep track of the world

The simple reflex agent described before will work only if the correct decision can be made

on the basis of the current percept. If the car in front is a recent model, and has the centrally

mounted brake light now required in the United States, then it will be possible to tell if it is

braking from a single image. Unfortunately, older models have different configurations of tail

lights, brake lights, and turn-signal lights, and it is not always possible to tell if the car is braking.

Thus, even for the simple braking rule, our driver will have to maintain some sort of internal

state in order to choose an action. Here, the internal state is not too extensive—it just needs the

previous frame from the camera to detect when two red lights at the edge of the vehicle go on or

off simultaneously.

NARS

The Logic of Intelligence, page 51 : explains the NARS working cycle; also in "Computation and Intelligence in Problem Solving" ( wang.computation.pdf ) , page 9 to 12.

<jmvanel> Well, I output all what's in Memory; I don't understand all yet,

<jmvanel> but printing it will help me to understand

<jmvanel> svn commit

<jmvanel> ( NARS )

<jmvanel> please go to #nars ; I don't want to bother all on the channel with off topic ( although one day NARS may be one of the inferences of EG )

NARS: machine learning use case (mail)

Retrying my eulergui/src/test/nars/mail3.nars example.

Now that an important bug has been fixed, I reworked the same example as a previous mail.

Facts are:

<(*,m1,P1) --> sender>.
<(*,m2,P2) --> sender>.
<(*,m3,P1) --> sender>.

<(*,mu1,U) --> sender>.
<(*,mu2,U) --> sender>.
<(*,mu1,m1) --> replyTo>.
<(*,mu2,m4) --> replyTo>.

<(*,m5,P1) --> sender>.

And question is :

// define the concept of "a mail to which U has responded"
< (&&,<(*,#manswer,#m) --> replyTo>, <(*,#manswer,U) --> sender>) ==> <#m --> uResponse> >.
// ask for criteria entailing uResponse
(&&,$criteriaForResponse, <#m --> uResponse>) ?

Note that before I was trying this:

<$possibleResponse ==> <#m --> uResponse>> ?

Anyway, I'm expecting this answer :

(&&, <(*,#m,P1) --> sender>, <#m --> uResponse> ) .

but nothing :((((((( . This is, I get no sentence having both P1 and uResponse.

In fact, $possibleResponse is an intermediary , and what I need is getting the new mails not yet answered, and similar to mails to which U has responded. But if I don't get this intermediary somehow, I cannot advance in my NARS "exercice".

I don't think that, even in an HOL (Higher Order Logic) sentence I could express what I would like to express in NARSese, because the similarity to mails already responded is measured by frequency and belief, it's not a boolean criterium.

Anyway, now I try this variant:

< <$m --> uResponse> ==> < $m --> $criteriaForResponse > ?

with no more success.

A problem with this query and the preceding is that these is no name assigned to this new concept. I want to define a new concept criteriaForResponse , such that :

x --> criteriaForResponse

means x is a a logical expression of criteria For Response.

Maybe:

< <$m --> uResponse> ==> < $m --> criteriaForResponse > ?

but no more success !

More generally, what I need are concrete examples of how a “tutor” can “educate” NARS by manipulating its experience, cf article "Computation and Intelligence in Problem Solving".

Another way to say is : I want to use NARS for machine learning. It may be less efficient than established techniques like Bayesian classifiers, but first I need to understand how machine learning can be done with NARS.

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

<jmv> A small NARS issue is that every input with no frequency nor belief is assigned a 90% belief .

<jmv> This is good for demos, but not for real work .

TODO:

NARS Code metrics

I discovered that nars/storage/Bag.java has a dependency to a BagWindow window :( .

These are all bad smells :

% grep '== null' nars/**/*.java |wc
     57     435    4968
grep switch nars/**/*.java |wc
     15      73    1098

grep instanceof nars/**/*.java |wc
    191    1624   19406

% grep '== null' nars/**/*.java |wc
     61     491    5290

2013-02-15

TODO : try in AIMA code the general environment simulator.

jmvanel> Through Mark Proctor , got a contact with RedHat France .

Rule base repository and community site

<jmvanel> I'd like to implement a rule base repository and community site :)

It could be populated first by the Euler rules. The SWRL, RulerML, RIF, Drools, Prolog, CNL and ATTEMPTO communities should be contacted. This is a particular case of a much larger concept, see Semantic web based application framework.

It can be later extended to ontologies and vocabularies. The site would offer the features:

As a first sketch of architecture, It would be backed by a SPARQL database, and using Play and Scala.

It would be nice if the features could be implemeted in such a way that they could be put either in EulerGUI or the site.

2013-02-14

https://www.google.fr/search?q=weka+semantic+web+importer

http://stackoverflow.com/questions/11139102/protege-weka-integration-classpath-error

MDL

http://www.mdl-research.org/demo.html

abaabbaaabbb

For ab repeated, the shortest code-length should not increase with size:

abababab : min=4.5

abababababababab : min=5.4

2013-02-13

<rszeno> too much boring code, hard to follow

<rszeno> i guess is a combination and we are both right

<jmvanel> which boring code ? NARS ?

<rszeno> in StructuralRule, negation is computed only if is a judgement

<jmvanel> ok

<jmvanel> good to know

<rszeno> yes, java always annoy me with his long style

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

<jmvanel> I heard about metacat

<jmvanel> anyone using it here ?

copycat ( metacat )

Crowd sourcing

<jmvanel> Nice little general purpose ontology : http://openmind.media.mit.edu/en/add/

http://conceptnet5.media.mit.edu/web/c/en/cat

API https://github.com/commonsense/conceptnet5/wiki

http://conceptnet5.media.mit.edu/web/c/en/flower/n/reproductive_organ_of_angiosperm_plants_especially_one_having_showy_or_colorful_parts

<jmvanel> I have the impression that the Common Sense Computing Initiative at the MIT Media Lab is not a live project anymore:

<jmvanel> indeed : https://github.com/commonsense/conceptnet5/wiki

But in fact there is more recent on GitHub : https://github.com/commonsense/conceptnet5/wiki

<jmvanel> alas the french is very incomplete : http://openmind.media.mit.edu/fr/add/

<jmvanel> and no ROmanian !

<jmvanel> compared to en : http://openmind.media.mit.edu/en/add/

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

CLIPS

http://clipsrules.sourceforge.net/documentation/v630/ug.htm

Chapter 2 Following the Rules

If you want to get anywhere in life, don't break the rules

— make the rules!

% clips 
         CLIPS (V6.24 06/15/06)
CLIPS> (defrule duck
   (animal-is duck)      
=>
   (assert (sound-is quack)))
CLIPS> ^C
oem-laptop: ~/src/open-nars-jmv/ % clips 
         CLIPS (V6.24 06/15/06)
CLIPS> (defrule duck
   (animal-is duck)      
=>
   (assert (sound-is quack)))
CLIPS> (agenda)
CLIPS> (assert  (animal-is duck))
<Fact-0>
CLIPS> (agenda)
0      duck: f-0
For a total of 1 activation.
CLIPS>  (facts)
f-0     (animal-is duck)
For a total of 1 fact.
CLIPS>  (run)
CLIPS> (facts)
f-0     (animal-is duck)
f-1     (sound-is quack)
For a total of 2 facts.
CLIPS> (save "duck.clp")
TRUE

http://jmvanel.free.fr/ai/prolog-getting-started.html#Using1

2013-02-12

<jmvanel> this morning visiting a researcher at Collège de France.

http://paleopolis.rediris.es/cg/CG2011_L02/CG2011_L02.pdf

http://aksw.org/Projects/Xturtle.html

N3FormTest : work ! Could be included in EulerGUI ; where ??????

NARS examples

Pei's suggestion from the mailing list

Considering again Pei's suggestion from the mailing list:

***
  IN: <(*,mu1,U) --> sender>. %1.00;0.90% {0 : 1} 
  IN: <(*,mu1,m1) --> replyTo>. %1.00;0.90% {0 : 2} 
32
 OUT: (&&,<#1 --> (/,replyTo,_,m1)>,<#1 --> (/,sender,_,U)>). %1.00;0.81% {32 : 2;1} 

Now the results mentioned on the mailing list are not exatly reproductible anymore with the latest source.

BUT, when clicking on Run , then Stop, I get this at step 510 :

OUT: (&&,<#1 --> (/,replyTo,_,m1)>,<#1 --> (/,sender,_,U)>). %1.00;0.81% {510 : 1;2} 

The second part was:

  IN: <(*,m1,P1) --> sender>. %1.00;0.90% {32 : 4} 
  IN: (&&,<#1 --> (/,replyTo,_,m1)>,<#1 --> (/,sender,_,U)>). %1.00;0.81% 
251
 OUT: <<$1 --> (/,sender,_,P1)> ==> (&&,<#2 --> (/,sender,_,U)>,<$1 --> (/,replyTo,#2,_)>)>. %1.00;0.42% {251 : 2;1} 

Then also after some time we get, among many other sentences :

 OUT: <<$1 --> (/,sender,_,P1)> ==> (&&,<#2 --> (/,sender,_,U)>,<$1 --> (/,replyTo,#2,_)>)>. %1.00;0.42% {1436 : 2;1} 

So we get the same conclusions with the newer Java code, but at a different step.

Now, retrying my src/test/nars/mail3.nars example:

// define the concept of "a mail to which U has responded"
< (&&,<(*,#manswer,#m) --> replyTo>, <(*,#manswer,U) --> sender>) <=> <#m --> uResponse> >.
// ask for conditions entailing uResponse
<$possibleResponse ==> <#m --> uResponse>> ?

there is a bug :

java.lang.ClassCastException: nars.language.Equivalence cannot be cast to nars.language.Implication
at nars.inference.RuleTables.reason(RuleTables.java:129)
at nars.entity.Concept.fire(Concept.java:397)
at nars.storage.Memory.processConcept(Memory.java:369)
at nars.storage.Memory.workCycle(Memory.java:320)
at nars.main.Reasoner.tick(Reasoner.java:164)
at nars.main.NARS.run(NARS.java:125)
at java.lang.Thread.run(Thread.java:722)

Replacing the equivalence symbol <=> with ==> in uResponse "definition" , uncovers a new bug , this time an infinite loop :

Thread [Thread-0] (Suspended (breakpoint at line 125 in Task))
Task.merge(Item) line: 125
Task.merge(Item) line: 125
Task.merge(Item) line: 125
NovelTaskBag(Bag<Type>).putIn(Type) line: 155
Memory.processNewTask() line: 341
Memory.workCycle(long) line: 315
Reasoner.tick() line: 164
NARS.run() line: 125
Thread.run() line: 722

where the method merge is directly recursive at line 125 :

that.merge(this);

Zeno's "impossible" class

<jmvanel> rszeno, your NARS case is interesting ;

for

<licorn -> animal> .
<licorn -> (--, animal) > .

but NARS wanders aimlessly ;

The sensible deduction is for a human is that no b can be a licorn, which AFAIK reads:

< #l {-- licorn > . %0;0%

But even if I ask the above as a question, no relevant answer is produced.

2013-02-11

Doors : commercial requirements management tool

http://www-142.ibm.com/software/products/us/en/ratidoor/

Question for Jena list: is it possible to infer in simple cases the type of a variable in a SELECT SPARQL query?

TODO : add in NARS FAQ:

GET file:///home/jmv/src/deductions/nars/n3tonars.n3 SC=4
GET file:///home/jmv/src/eulergui/examples/BloodPressure.n3 SC=2
networking 4 [msec cputime] 5 [msec walltime]
java.lang.RuntimeException: java.lang.InterruptedException: sleep interrupted
at euler.Process.execute(Process.java:49)
at euler.ProofEngine.runProofEngine(ProofEngine.java:199)
at euler.ProofEngine.runProofEngine(ProofEngine.java:218)
at n3_project.helpers.EyeHelper.reasonExternalProlog(EyeHelper.java:54)
at eulergui.project.Project.reasonExternalProlog(Project.java:554)
at eulergui.inference.yap.YapInferenceEngine.launch(YapInferenceEngine.java:20)
at eulergui.gui.inference.InferenceSwingWorker.launchAndDisplayErrors(InferenceSwingWorker.scala:49)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:44)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.scala:21)
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.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at euler.Process.execute(Process.java:44)

For next version 2.0 of EulerGUI

intelligent agents ideas

Supervised machine learning for RDF ? naïve Bayesian network ?

I have a new idea for an AI agent : understand a REST JSON API.

Intelligent agents ideas:

2013-02-10

http://etorreborre.github.com/specs2/guide/org.specs2.guide.QuickStart.html#Execution

This an is a authentication problem.

You need a certificate, ssl doesn't work without a x509 cert.

Windows and Linux each have different way to deals with ssh, keys and certs.

On Linux it is transparent, you need only to write a yes when it asks about rsa key.

The svn client on linux does that.

Also, when you boot linux at one moment is generated a random seed for crypto.

So I used HTTPS URL's for subversion since a long time, even before I knew about certs.

So on Windows, you needs a cert , and since Turtoise works, it means Turtoise has one. But the svn within Turtoise doesn't know where it is.

package nars.main_nogui;
import junit.framework.TestCase;
//import org.junit.Assert._  
//import org.junit.Test 
class TestReasoner {
def setUp()
 : Unit () 
// throws Exception
= {}
}

http://etorreborre.github.com/specs2/guide/org.specs2.guide.QuickStart.html#Execution

NARS: added a batch main

COMMIT

Added main_nogui/NARSBatch.java

Comments: it allowed me to understand how the top level loop works;

* TODO duplicated code with {@link nars.main.NARS}

* TODO NARSBatch still instantiates windows

but it's good enough for unit testing of the reasoning.

implementation : added accessor isFinishedInputs in Reasoner

other modification are just typos in comments

2013-02-09

NARS: simple FIX for input errors

Discovered interface InputChannel , implemented by ExperienceReader and InputWindow

Thread [Thread-0] (Suspended)
StringParser.parseTerm(String, Memory) line: 274
StringParser.parseTask(String, Memory, long) line: 96
StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 186
InputWindow.nextInput() line: 161
Reasoner.tick() line: 147
NARS.run() line: 122
Thread.run() line: 722

Thread [Thread-0] (Suspended (exception NullPointerException))
Sentence.<init>(Term, char, TruthValue, Stamp) line: 53
StringParser.parseTask(String, Memory, long) line: 101StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 186
InputWindow.nextInput() line: 161
Reasoner.tick() line: 147
NARS.run() line: 122
Thread.run() line: 722

COMMIT

- FIX : application did not take new input after a syntax error (in fact the Reasoner thread was stopped)

in class nars.io.ExperienceReader

- comments in code

- TODO : put important messages in a popup or in a main window message zone (not in standard output)

2013-02-08

https://github.com/evantill

A Proposed Design for Distributed Artificial General Intelligence _ Version 2.2

By Matt Mahoney, Oct. 13, 2008

mattmahoney.net / agi2.html

The whole OWL RL thing

<conan> the whole OWL RL thing though

<conan> doesn't interest me too much

<jmvanel> BTW if you come to Paris sometime I can show you things

<jmvanel> About OWL , I tend to agree ;

<conan> I know you can semantically map a subset of OWL to rule languages

<conan> but I don't see the point

<conan> just write a dedicates tableaux algorithm

<conan> which is what I started to do

<conan> just hadn't had time to finish it off

<conan> it will be faster and more extensive

<conan> but academics are often more about mappings

<jmvanel> in fact there are no real OWL with axioms iun real use ,

<conan> seeing how one thing maps to another

<jmvanel> just some reasearch projects

<jmvanel> To be sure , I asked this on Protégé list :

<jmvanel>

insearch-of-non-trivial-usable-OWL-domain-ontologies-with-axioms

<jmvanel> But ontologies being just vocabularies are very numerous

<jmvanel> and in real use

<conan> yes

<conan> people just use them as tags

<jmvanel> yes

<jmvanel> dbpedia allows one to tag unambibuously anything

2013-02-07

Trying NARS with translated N3

eye --strings graph.axiom.n3 /home/jmv/src/deductions/nars/n3tonars.n3 > /tmp/graph.axiom.n3.nars
# rules are not translated atm :(
eye --strings graph.query.n3 /home/jmv/src/deductions/nars/n3tonars.n3 > /tmp/graph.query.n3.nars

alias nars='java -jar ~/src/open-nars-jmv/NARS.jar'
nars /tmp/graph.axiom.n3.nars

The NARS question:

<(*,http://www.agfa.com/w3c/euler/graph.axiom#paris, http://www.agfa.com/w3c/euler/graph.axiom#nantes) --> http://www.agfa.com/w3c/euler/graph.axiom#oneway> ?

<jmvanel> found a nice (?) infinite loop in NARS !

at nars.entity.TaskLink.merge(TaskLink.java:122)

<jmvanel> NARS does seem to read correctly identifiers being full URI's :(

<jmvanel> ( note that CLIPS does )

Thread [Thread-0] (Suspended)
StringParser.parseAtomicTerm(String) line: 303
StringParser.parseTerm(String, Memory) line: 277
StringParser.parseArguments(String, Memory) line: 366
StringParser.parseCompoundTerm(String, Memory) line: 344
StringParser.parseTerm(String, Memory) line: 254
StringParser.parseStatement(String, Memory) line: 322
StringParser.parseTerm(String, Memory) line: 272
StringParser.parseTask(String, Memory, long) line: 96
StringParser.parseExperience(StringBuffer, Memory, long) line: 75
Reasoner.textInputLine(String) line: 186
InputWindow.nextInput() line: 157
Reasoner.tick() line: 147
NARS.run() line: 122
Thread.run() line: 722

This is because test returns true at line 302 in StringParser.parseAtomicTerm(String)

        if (Variable.containVar(s)) {

I could change the implementation right now:



but I prefer to write unit tests first.

2013-02-06

COMMIT : N3 translators to NARS and CLIPS from N3

TODO:

<jmvanel> Hi what's the most simple tool for translating SQL CREATE TABLE in OWL or RDFS declarations ? Caveat : it's SQL Server dialect ( it's in design stage , we will not necessarily use an RDF - SQL wrapper server )

# note : this freezes Euler

{ ?S ?P ?O .
  ("<(*," ?S ", "?O ") --> " ?P "> .\n" ) string:concatenation ?S1 .
} => {
  ?P log:outputString ?S1 .
}.

2013-02-05

http://semanticweb.org/wiki/Tools

tools for generating default RDB2RDF config ?

N3 to clips would be interesting for running on some systems where a JVM is not wanted.

According to sseehh (automenta) Scala runs on .NET and Mono http://www.mono-project.com/Languages#Scala

Notation 3 (N3) to NARS translation

http://code.google.com/p/open-nars/wiki/InputOutputFormat

I wonder how in NARS a literal can be represented. This is necessary for N3 to NARS translation.

NARS has some RDF support somewhere. Pei added a dialect called LOAN, but it's mainly NARS language + prefixes and URI, and I'm not sure if it's continued.

I took some notes on translating N3 to NARS . Here is a Correspondance table of Narsese / LOAN and N3 .

NARS N3 comment
(*,S,O)-->P S P O. Water dissolves salt

(water×salt) → dissolve

--> rdfs:subclassOf extensively used in NARS; not sure if all usages are covered by subclassOf ; indicated by → in published articles
{-- a
{-] owl:topObjectProperty translation not satisfying
--] translation ? (property of a class )
"(&&," <term> {","<term>} ")" conjunction is implicit in N3
. . Judgment
! goal: order given to the agent (no equivalent in N3)
? question : no different syntax in N3 : introduced in a different file by --query
{?X :p ?Y}=>{?X :q ?Y}.

Euler question : does this match ?

:a :b "bla" .
{?S ?P ?O .
 ?O a rdf:Literal.
} => {
:it :is rdf:Literal .
}.

Testing NARS with some URI's for atomic terms :

< http://test.com/bla --> http://test.com/blu > .

it works !!!

  IN: <http://test.com/bla --> http://test.com/blu>. %1.00;0.90% {0 : 1} 

Another test with NARS product:

<(*,http://test.com/s, http://test.com/object) -->  http://test.com/prop > .

it works !!!

  IN: <(*,http://test.com/s,http://test.com/object) --> http://test.com/prop>. %1.00;0.90% {0 : 2} 

Added a rule base to translate N3 triples to NARS :

deductions/nars/n3tonars.n3

ATTEMPTO announce

Hi

????

For now you need to install the command line ATTEMPTO Parser Engine (APE) , which is easy. Then the executable for APE, ape.exe, must be accessible on the system path.

Scala parser : learning

scala> java.util.regex.Pattern.matches( """(?s)\/.*""", "/nnnn")
res0: Boolean = true

I can enter in REPL a class , such as :

http://stackoverflow.com/questions/13853266/how-to-test-if-scala-combinator-parser-matches-a-string

or:

scala> class SingleLineParser extends JavaTokenParsers with PackratParsers {
     | var doLog : Boolean = true
     | private def logOptional( p : Parser[Any], mess:String ) : Parser[Any] = { if( doLog ) log( p ) ( mess ) else p  }
     | val comment : PackratParser[Any] = logOptional( """/.*""", "comment")
     | }
defined class SingleLineParser

scala> val parser = new SingleLineParser
parser: SingleLineParser = SingleLineParser@265bd645

scala> parser.parseAll( parser.comment, "/bla" )
trying comment at scala.util.parsing.combinator.PackratParsers$PackratReader@27e96c8d
comment --> [1.1] failure: `/.*' expected but `/' found

/bla
^

To paste in REPL :

import scala.util.parsing.combinator._
class SingleLineParser extends JavaTokenParsers with PackratParsers {
     var doLog : Boolean = true
     private def logOptional( p : Parser[Any], mess:String ) : Parser[Any] = {
       if( doLog ) log( p ) ( mess ) else p  }
     val comment : PackratParser[Any] = logOptional( """/.*""", "comment")
}
val parser = new SingleLineParser
parser.parseAll( parser.comment, "/bla" )

import scala.util.parsing.combinator._
class SingleLineParser extends JavaTokenParsers with PackratParsers {
     var doLog : Boolean = true
     private def logOptional( p : Parser[Any], mess:String ) : Parser[Any] = {
       if( doLog ) log( p ) ( mess ) else p  }
     val comment : PackratParser[Any] = logOptional( """/\w*""", "comment")
}
val parser = new SingleLineParser
parser.parseAll( parser.comment, "/bla" )

I did much more complex grammars , but here I'm stuck :

// fails:
import scala.util.parsing.combinator._
class SingleLineParser extends JavaTokenParsers {
     val comment : Parser[Any] = """/\w*"""
}
val parser = new SingleLineParser
parser.parseAll( parser.comment, "/bla" )

// but this succeeds:
java.util.regex.Pattern.matches( """/\w*""",  "/bla" )

le pb est dans vim je cherche

2013-02-04

I wonder how in NARS a literal can be represented. this is necessary for N3 to NARS translation.

2013-02-02

Getting to know automenta ( sseehh )

http://dbpedia.org/page/Probabilistic_logic : a page on NARS is missing

<jmvanel> Hi sseehh_

<sseehh_> hi jmvanel

<jmvanel> hi

<jmvanel> working on the NARS grammmar in Scala

<sseehh_> cool do you plan to implement it all from scratch?

<jmvanel> I was at the Oxford conf

<jmvanel> but had no oportunity to talk to Pei

<sseehh_> i've met pei in philadelphia

<sseehh_> a few years ago

<jmvanel> I'd like to convince Pei that migrating to Scala is good

<sseehh_> i think he realizes the limitations of his java implementation

<sseehh_> any particular reason for scala, and not clojure or something else?

<jmvanel> there is good translator for Java to Scala

<sseehh_> i like scala

<jmvanel> I don't think Clojure is strongly typed

<sseehh_> scala runs on .NET and Mono http://www.mono-project.com/Languages#Scala

<sseehh_> as well as JVM

<jmvanel> did'nt know about .NET and Mono

<sseehh_> yes its good to be aware that it's more universal than just JVM

<sseehh_> same with clojure

<sseehh_> clojure can be compiled to javascript too

<jmvanel> where are you living ?

<sseehh_> and run on web browser

<sseehh_> pittsburgh, a city on the other side of pennsylvania than philadelphia

<jmvanel> ok

<sseehh_> http://scalagwt.github.com/

<sseehh_> The Scala+GWT project aims to compile Scala code for the browser via the GWT toolchain.

<jmvanel> are you doing anything profesionally with AI ?

<sseehh_> some opensource projects

<sseehh_> mainly i've been working on http://www.netention.org

<sseehh_> which is still at a prototype stage, using Javascript/HTML5 and Node.JS as the server

<sseehh_> what about you?

<sseehh_> https://github.com/clojure/clojurescript

<sseehh_> ClojureScript is a new compiler for Clojure that targets JavaScript. It is designed to emit JavaScript code which is compatible with the advanced compilation mode of the Google Closure optimizing compiler.

<sseehh_> so i guess scala and clojure have equally been ported to both .net/mono and javascript web browser

<sseehh_> or javascript node.js too i guess

<sseehh_> YKY has been working in Clojure with http://genifer.org

<jmvanel> I developing and consulting in semanitic web and rule engines , see http://deductions-software.com/

<jmvanel> and developing EulerGUI :

<sseehh_> im familiar with Drools a bit

<jmvanel> http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html

<sseehh_> and Attempto

<jmvanel> in december I met Mark P in London

<jmvanel> :)

<jmvanel> I attented the last 2 CNL confs

<sseehh_> CNL?

<jmvanel> Controled Natural Languages

<jmvanel> http://attempto.ifi.uzh.ch/site/cnl2012/

<sseehh_> k

<sseehh_> i just browsed thru this documentation

<sseehh_> looks solid nice work

<jmvanel> and http://staff.um.edu.mt/mros1/cnl2010/

<sseehh_> http://blog.automenta.com/2012/05/ai-command-shell.html this is a proposal for a new kind of command shell that learns new commands

<sseehh_> i bet it could be implemented in your system

<jmvanel> I hoped to meet YKY in Oxford,

<jmvanel> but somebody rtold he was afraid of planes

<sseehh_> i would like to attend conferences but i dont have much money to travel

<jmvanel> I took the Oxford oportunity it's not far for me :)

<jmvanel> your shell AI is a good idea

<sseehh_> these AI conferences are very slow to release videos of the talks, if they do at all

<sseehh_> and they never offer telepresence

<jmvanel> I 'll put a link in my page : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/AGI_use_cases.html

<jmvanel> did you look at it ?

<sseehh_> looking now

<sseehh_> ACT-R was developed at CMU which is in my city

<sseehh_> there is a java implementation jACT-R

<sseehh_> i know the developer

<sseehh_> http://web.archive.org/web/20101124141751/http://wiki.syncleus.com/index.php/DANN

<sseehh_> ever seen dANN?

<sseehh_> their website is down so i had to find it in archive.org

<sseehh_> but the project is still ongoing

<sseehh_> its built in java

<jmvanel> never seen dANN

<sseehh_> so i introduced the developer to pei, they both reside in philadelphia

<jmvanel> had a discussion with the franch guy of ACT-R

<sseehh_> im not sure how much they have discussed but i think they can be integrated

<jmvanel> french

<sseehh_> since dANN doesnt provide a logic engine

<sseehh_> http://www.heatonresearch.com/encog this is a great library also

<sseehh_> the Java version is most complete, it has many neural networks

<sseehh_> even OpenCL GPU kernels

<sseehh_> for NN learning

<sseehh_> i agree with this: JVM (Java VM) technology is a good choice for an explorer and recorder agent on the user's machine, because of its independence regarding the platform.

<jmvanel> so many new things !!!!!

<sseehh_> It does not mean that Java is the appropriate and only language, there are other languages for the JVM, like Scala, Clojure.

<jmvanel> :)

<sseehh_> i had started a project called JCog to re-implement some of OpenCog in java

<sseehh_> its not finished

<sseehh_> https://github.com/automenta/jcog

<sseehh_> u can see NARS is in there

<sseehh_> because i wanted to unify PLN and NARS and even Genifer too

<sseehh_> but this design is probaby outdated

<jmvanel> good intention, anyway

<sseehh_> there are some implementation limitations in OpenCog just like there are limitations in pei's OpenNARS

<sseehh_> for example, opencog only supports STI, LTI, and i think eLTI attention modes

<jmvanel> I would rather try to enanble data exchange between tools

<jmvanel> enable

<sseehh_> but what if you wanted to use N attention modes each with different parameters

<jmvanel> and the first thing I plan is translating N3 to NARS.

<sseehh_> that should be rather simple right?

<sseehh_> doesnt NARS have some RDF support somewhere

<jmvanel> yes

<jmvanel> not exactly

<jmvanel> Pei added a dislavct called LOAN,

<jmvanel> but it's mainly NARS lagnuge + prefixes and URI

<jmvanel> and I'm not sure it's continued

<jmvanel> s/dislavct/dialect/

<jmvanel> I took some notes on translating N3 to NARS : http://jmvanel.free.fr/computer-notes.html#L1142

<sseehh_> back

<jmvanel> Added in the AGI use case page :

<jmvanel> In fact, once the glue code is here for wrapping a shell (it could use Jline like EulerGUI does), other pattern matching are possible. ai-command-shell is a proposal by automenta for a new kind of command shell that learns new commands.

<sseehh_> sure,thanks

<sseehh_> what do you think of MicroPSI?

<jmvanel> I'll commit, unless you have other comments

<sseehh_> u can link to that page

<jmvanel> I prefer link over copying :)

<sseehh_> or copy whatever from it

<jmvanel> I had several discussions with Joshua Bach,

<jmvanel> and what I liked is that he's not a "believer" in AGI, like many I met in Oxford;

<jmvanel> he's a pragmatic guy , looking for real applications like me

<sseehh_> i haven't studied or used microPSI but iirc it has like an emotion model

<jmvanel> but I told Joshua that moving to Python does not please me

<sseehh_> or that's what opencog is using it for in its agents

<sseehh_> right they used to use Java

<sseehh_> yes i dont see any advantage to Python

<jmvanel> Java+SWT inclipse is discontinued,

<sseehh_> other than as a scripting language (ex: Jython)

<jmvanel> in micropi 2

<jmvanel> moreover the code is not available atm

<sseehh_> https://fosdem.org/2013/schedule/ brussels today and tomorrow

<jmvanel> ha , I missied this in my Radar :(

<sseehh_> my friend just mailed me he is going

<sseehh_> and wanted to know which things he should attend

<jmvanel> I should have proposed a conf

<jmvanel> updated : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/AGI_use_cases.html#L67

<jmvanel> with link to ai-command-shell

<sseehh_> thanks

<jmvanel> https://fosdem.org/2013/schedule/event/aldebaran_robotics/

<jmvanel> I already saw pres by them, but the core is closed source :(

<sseehh_> another thing that bothers me about opencog is they use Unity3D

<sseehh_> and for over 2 years, the DeSTIN stuff was closed

<sseehh_> so i called it "Open"Cog on the mailing list

<jmvanel> https://fosdem.org/2013/schedule/event/ros_open_sourcet_sobotics/

<jmvanel> seems promising

<jmvanel> Unity3D ?

<jmvanel> not related to the Ubuntu thing ?

<sseehh_> its a proprietary game engine that doesnt even run on linux

<sseehh_> no its different

<jmvanel> ha :(((

<sseehh_> opencog uses that for their agent simulation

<sseehh_> meanwhile http://critterding.sf.net would have been really interesting and its open

<sseehh_> since it has 3d physics

<sseehh_> and vision

<jmvanel> godd to know

<sseehh_> yah i'm in #critterding mostly

<sseehh_> they are working on CD2

<jmvanel> I should really follow your blog ; you know so many projects :)

<sseehh_> i dont update the blog too often, and i dont remember what i know

<sseehh_> so feel free to ask and we'll see what comes out

<sseehh_> you have published a lot of notes

<sseehh_> i used to have a larger "google sites" site

<sseehh_> but i disabled it when google started to make it inaccessible

<jmvanel> it's really a log , like a captain writes

<sseehh_> and i havent migrated the content yet

<sseehh_> google was screwing with the DNS and causing the site to be inaccessible

<sseehh_> i think it may have been intentional

<sseehh_> so i stopped immediately

<sseehh_> and am using my own hosting

<sseehh_> except for blogger which is still google

<jmvanel> I was at free.fr for > 10 years :)

<jmvanel> editing my XHTML with Amaya

<jmvanel> one day you should visit us at #eulergui , Zeno is a nice guy , who knows many things too :)

<sseehh_> k

<jmvanel> About OpenCog, I keep an eye on it, but until they fix the build to run on latest Ubuntu, I can't try

<sseehh_> when was the last time you tried building it?

<sseehh_> i havent tried in a long time

<sseehh_> but i thought they fixed a lot of the build issues

<sseehh_> or at least claimed to

<jmvanel> about 15 days ago ;

<jmvanel> I comlpained on the list ;

<jmvanel> many people did for various root causes

<sseehh_> that was another reason i attempted a Java re-implementation

<sseehh_> because i could see how broken it was from the difficult build process

<sseehh_> and how it could be made functionally equivalent without any of the headache

<jmvanel> aparently , this deactivated without notice the PLN engine in C++ for something in python,

<sseehh_> and it might even perform better on the JVM too

<sseehh_> with regard to memory allocation

<sseehh_> and garbage collection

<jmvanel> s/this deactivated/they deactivated/

<jmvanel> and since PLN is the main reasoning engine

<jmvanel> I am skeptical about the claims of C++ crowd to be more efficient

<jmvanel> it's mainly that these are aware of the machine cycles and memory bits much more that average Java guys

<jmvanel> that these GUYS ...

<sseehh_> right it may be more memory-space efficient, and specific code sections should execute faster

<sseehh_> but overall i think there's a chance for JVM to outperform

<sseehh_> goertzel is allergic to Java after they couldn't make Novamente's original engine perform well

<sseehh_> that was when java was slow

<jmvanel> well , even it's 30% slower , who cares in most applications ?

<sseehh_> and they probably didnt know how to optimize for it

<sseehh_> exactly. they waste much more development time

<sseehh_> and if it can scale to N processors, just add 30% more processors

<sseehh_> but i dont think even their C++ version can scale to multicore very well

<sseehh_> excpe the DeSTIN GPU stuff

<sseehh_> there's also the possibility of writing key parts of it in OpenCL for GPU

<jmvanel> I noticied that at Oxford nobody talked about the parallel aspect

<sseehh_> and OpenCL can be invoked by any language, C++ or Java

<sseehh_> wow

<sseehh_> yah i guess its mostly theory for them

<sseehh_> and not engineering

<jmvanel> when I was a MathWorks , they wre very aware of challenges of multicore

<jmvanel> was not aware of http://en.wikipedia.org/wiki/OpenCL :(

<sseehh_> yes i would suggest OpenCL rather than CUDA

<sseehh_> since CUDA is NVIDIA-specific

<sseehh_> there is also WebCL

<sseehh_> like WebGL

<sseehh_> http://en.wikipedia.org/wiki/WebCL

<sseehh_> iirc there is an LLVM-based C++ compiler that automatically writes a combiantion of CPU and GPU code

<sseehh_> http://pocl.sourceforge.net/ this might be it

<sseehh_> there is also an AMD CPU that combines CPU and GPU

<sseehh_> and there are some nice OpenCL tools for that

<sseehh_> i think its AMD Fusion

<sseehh_> http://blogs.amd.com/fusion/2010/05/03/opencl%E2%84%A2-and-amd-fusion%E2%84%A2/

<jmvanel> hehe you have links on most subjects :)

<sseehh_> no im just googling it

<jmvanel> are you twitting ?

<jmvanel> :)

<sseehh_> no but i have some automatic tweets like on new blogposts and youtube videos http://twitter.com/automenta

<jmvanel> https://twitter.com/jmvanel

<jmvanel> OK ; I'll follow you

<sseehh_> cool next time i login i'll add u

<jmvanel> saw your repository animations

<sseehh_> oh using Gource

<sseehh_> you just run 'gource' in a project folder, works with git or svn

<sseehh_> (i didnt make gource)

<jmvanel> ok

<sseehh_> http://er.netention.org/ here is a demo of Netention

<jmvanel> It's pleasure chatting with you , but I'll revert to my Scala parser ... + greetings etc

Build a Open Source community

To build a Open Source community, it requires several ingredients, many common with commercial software :

  1. easy build
  2. test coverage
  3. getting started, tutorials, howto's, examples
  4. videos
  5. user manual
  6. IRC chat
  7. bug management
  8. releases
  9. feature sheet, stating what is mature and what is not
  10. short term roadmap

NARS misses points 1, 2, 3, 4, 5, 7, 9, 10.

Opencog clearly misses points 1, 2, 3, 5 , 8 , 9, 10.

EulerGUI misses 7, 9, 10 .

-------

Adding this in the source

README.txt

Source Code

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

Under the nars/ directory is the code Pei Wang originally moved into the project, which is still the base of his own programming .

Later Joe Geldart started the open-nars version of NARS, which contains many good ideas (many of which are accepted into 1.5), but it isn't fully consistent with Pei's plan, especially about the new layers (7,8,9), so Pei didn't continue on that code base.

nars-dist/ contains a NARS distribution (executable, examples, web page with applet), that could be zipped for releases.

Source Code status

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

See also http://code.google.com/p/open-nars/wiki/ProjectStatus

Version 1.5.0 hasn't been fully tested. Pei uploaded it before the new semester starts, otherwise he won't have the time to do so. He is updating the wiki and doing some testing and bug-fixing, but won't do any major change until May.

Jean-Marc Vanel is working on this short term roadmap, mainly in GUI and software engineering tasks :

- 1. fix : application does not take new input after a syntax error

- 2. make a batch main program (it's already possible to enter input file in command line)

- 3. separe code for pure reasoning from GUI in different directories; for this remove dependencies towards packages main and gui from any other package; for this the simplest is applying the Model-View design pattern (aka publish-subscribe): the reasonner (Model) calls abstract listeners.

- 4. make an independant syntax verityer based on a grammar parser : it will give the column+ line or error (I have a Scala combinator grammar)

- 3. separe NARS in 2 modules with a Maven build : nars_gui and nars_core

- 4. write unit tests for the reasonner. Due to the sensitivity of results regarding the implementation of the reasonner, it is difficult to write robust tests. But for pure non non-regression tests , it is possible to reuse the in and out ifles in nars-dist/Examples .

NARS: mail use case

The data remain the same :

<(*,m1,P1) --> sender>.
<(*,m2,P2) --> sender>.
<(*,m3,P1) --> sender>.

<(*,mu1,U) --> sender>.
<(*,mu2,U) --> sender>.
<(*,mu1,m1) --> replyTo>.
<(*,mu2,m4) --> replyTo>.

<(*,m5,P1) --> sender>.

Contrary to Zeno, I don't think it is necessary for infering mail responses to declare classes and properties. And I'm not sure how to do; maybe NARS is like Prolog, a term does not need to declared prior to use.

// define the concept of "a mail to which U has responded"
< (&&,<(*,#manswer,#m) --> replyTo>, <(*,#manswer,U) --> sender>) <=> <#m --> uResponse> >.
// ask for conditions entailing uResponse
<$possibleResponse ==> <#m --> uResponse>> ?

commited in src/test/nars/mail3.nars

Note that this get rewritten thus, with dummy variables:

  IN: <(&&,<(*,#1,#2) --> replyTo>,<(*,#1,U) --> sender>) <=> <#2 --> uResponse>>. %1.00;0.90% {0 : 9} 
  IN: <$1 ==> <#2 --> uResponse>>?  {0 : 10} 

I'm expecting an answer to the question, like:

< <(*,#m,P1) --> sender> ==> <#m --> uResponse> >.

Nothing after 27 walks.

Retrying with 300 walks. It does not want to go further than 27 walks, with last prints:

 OUT: <(*,m3,P1) --> (*,mu1,U)>. %1.00;0.45% {25 : 4;3} 
 OUT: <(*,mu1,U) --> (*,m3,P1)>. %1.00;0.45% {25 : 4;3} 
 OUT: <(*,m3,P1) <-> (*,mu1,U)>. %1.00;0.45% {25 : 4;3} 
 OUT: <(&,(*,m3,P1),(*,mu1,U)) --> sender>. %1.00;0.81% {25 : 4;3} 
 OUT: <(|,(*,m3,P1),(*,mu1,U)) --> sender>. %1.00;0.81% {25 : 4;3} 
 OUT: <<(*,m3,P1) --> $1> ==> <(*,mu1,U) --> $1>>. %1.00;0.45% {25 : 4;3} 
 OUT: <<(*,mu1,U) --> $1> ==> <(*,m3,P1) --> $1>>. %1.00;0.45% {25 : 4;3} 
 OUT: <<(*,m3,P1) --> $1> <=> <(*,mu1,U) --> $1>>. %1.00;0.45% {25 : 4;3} 
 OUT: (&&,<(*,m3,P1) --> #1>,<(*,mu1,U) --> #1>). %1.00;0.81% {25 : 4;3} 

By the way, I undertand now better ouputs and how things change with iterations by reading OpenNarsOneDotFour :

Now the system takes the time interval between events into consideration, in terms of internal clock cycles. For example ...

Tried the 1.4 version :

svn co -r 139 https://open-nars.googlecode.com/svn/trunk/ open-nars_r139
 1005  java -jar open-nars_r139/nars-dist/NARS.jar

Not good; in fact the NARS.jar corresponds to revision 134 :( .

So I make a build script ( commited in NARS ) ; I can now run exactly NARS 1.4 . I should put in Google code site.

2013-02-01

Ruset: my work is based on n3 concept of quad and metatmath concept of formal system and substitution

interface to nars is build on this as a formalism

i mean will be

i'm not the only one who thing this is the way, DanC follow this way too

s/thing/think/

i'm not sure about timbl but i guess he too

moi: any link to follow on this ?

Ruset: many thing i borrow probably from them

moi: them ? Danc and ?

Ruset: yes, is not explicit said anywhere, i follow their work, what they do

danc, his repo on github

moi: ok

Ruset: his blog

Envoyé vendredi à 20:06

moi: here https://github.com/dckc ?

Ruset: yes,

and blog, http://www.madmode.com/

look closer to bookmarks http://www.diigo.com/user/dckc-madmode

and bookmarks tags, and relation between tags

Ruset: metamath and milawa play a central role

moi: milawa ?

Ruset: yes, a prover, another one

moi: this one ? http://us.metamath.org/index.html

Ruset: i add to this another reasoner for types yarrow

moi: http://www.cs.utexas.edu/users/jared/milawa/Web/ ?

yarrow is a flower

Achilea millefolium

Ruset: yes,

is a descendent of sage, anothe type resoner

moi: ha ! all smelly indeed

Ruset: i also added a new idea about a new formalism, sambini

and paula zizzi

moi: Too bad that you don't have a blog

but often I paste stuff from you on mine, with spell fixes ;

Ruset: i know,

moi: hope you don't mind

Ruset: no, is no problem

contrary, i like it

this way i don't need to keep a blog,

Ruset: i like the idea of micro bloging, blogs need to much time to spend writing articles

Ruset: timbl about milawa, http://reader.feedshow.com/show_items-feed=89a58880273c5d698f09bee8a33f10cd <http://reader.feedshow.com/show_items-feed=89a58880273c5d698f09bee8a33f10cd>

Envoyé vendredi à 21:43

moi: merci

Ruset: danc is a systematic guy, references, citations, notes, all stuff, http://dig.csail.mit.edu/breadcrumbs/taxonomy/term/20

NARS

Reading MultiStepExamples

Reading http://code.google.com/p/open-nars/wiki/MultiStepExamples

What is the difference between ;

<whale --] black>.

and

whale --> [black] .

Aparently, it's the same, see : <robin --> [feathered]>

The confidence is getting lower as the deduction chain gets longer !

TODO : review Compositionality, and Fuzzy Concept.

Pei did not answer to this suggestion: one specific thing nice to have, in such a case , is to have a option (by default) to stop running when an answer is obtained.

TODO list with NARS

Pei answer, and my response

Hi,

Attached is a revised version with modified example files. The key steps of your example works as the following:

*** (1)
IN: <(*,mu1,U) --> sender>. %1.00;0.90% {0 : 1}
IN: <(*,mu1,m1) --> replyTo>. %1.00;0.90% {0 : 2}
32
OUT: (&&,<#1 --> (/,replyTo,_,m1)>,<#1 --> (/,sender,_,U)>). %1.00;0.81% {32 : 2;1}

*** (2)
IN: <(*,m1,P1) --> sender>. %1.00;0.90% {32 : 4}
IN: (&&,<#1 --> (/,replyTo,_,m1)>,<#1 --> (/,sender,_,U)>). %1.00;0.81%
251
OUT: <<$1 --> (/,sender,_,P1)> ==> (&&,<#2 --> (/,sender,_,U)>,<$1 --> (/,replyTo,#2,_)>)>. %1.00;0.42% {251 : 2;1} 

I'll commit the changes after more testing.

NARS-20130131.zip

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

I see that (2) takes as input the output of (1). Pei has decomposed the reasoning in 2 steps for my understanding.

I see that in fact just giving the facts and no goal is enough to entail among NARS "thoughts" something interesting. I am learning to understand and verbalize correctly these complex terms with variable. And after that, for the real use case, I must be able to write myself a goal saying :

"if a new mail is enough similar to a mail I answered, then issue a recommandation to answer".

This sentence {32 : 2;1} above means that the system believes at 81% that

"replying To m1 and having sender U occur together".

For sentence {251}, I interpret it thus : the system believes at 42% that

"If (mail) $1 has sender P1, then there is a (mail) #2 having sender U and replying to $1".

The thing that took time time to understand is the (/,...) construct, which represents a compound term for "extensional image" . That is, if I understand correctly,

(/,sender,_,U)

means "all things having U as sender". And the notation _ is like the dummy variable in Prolog.

To achieve the real use case, there at least 2 points I am unsure about.

1) The notion a new mail: i think that it can simply be a simple fact asserted from the outside, and retracted after user has acknowledged the recommandation.

2) generalize to any pattern expressing the notion that mail #1 is "enough similar" to other mails (not just considering sender, but cc, subject, body, etc). For subject and body there is the quesiton of NLP analysis, but let's suppose that an exterior tool has done this analysis and summarized subject and body as some facts relating mail to one or more skos:subject .

My understanding is that the whole point is knowing how to write the right goal or question, as NARS is in essence learning from experience. Maybe it's something like "how would user U do with this new mail?" . Because at the moment we still have to have a knowledge engineer to write goals or questions, later the system will be given very general goals like "just help user" .

2013-01-31

10 bloc de 4 = 40h

A VOIR

select *
WHERE {
  ?club dbpedia-owl:position ?position .
  ?club rdf:type dbpedia-owl:SoccerClub .
  # ?club rdf:type yago:FrenchFootballCluBs .
  # ?club dcterms:subject category:Ligue_1_teams .
  ?club dcterms:subject category:Football_clubs_in_France .
  ?club dbpedia:20“11-12_Ligue_1 dbpprop:continentalcup2Qualifiers .
}

select *

WHERE {

?club dbpedia-owl:position ?position .

?club rdf:type dbpedia-owl:SoccerClub .

# ?club rdf:type yago:FrenchFootballCluBs .

# ?club dcterms:subject category:Ligue_1_teams .

?club dcterms:subject category:Football_clubs_in_France .

?club dbpedia:20“11-12_Ligue_1 dbpprop:continentalcup2Qualifiers .

}

TODO : read From NARS to a Thinking Machine, Pei Wang

2013-01-30

vanel> my pals : http://youtu.be/tcyad6MKXzI

http://www.youtube.com/watch?v=XAh4qjk8cO4

http://www.youtube.com/watch?v=-tJVWM7G_XA

SPARQL, table view, fixes on Windows

 % ape.exe -text 'every salt dissolves every water.' -guess -cowlfsspp -cparaphrase
<?xml version="1.0" encoding="UTF-8"?>

<apeResult>
  <duration tokenizer="0.038" parser="0.008" refres="0.000"/>
  <paraphrase>If there is a salt X1 then if there is a water X2 then the salt X1 dissolves the water X2.</paraphrase>
  <owlfsspp>Prefix(:=&lt;http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#&gt;)
Ontology(&lt;http://attempto.ifi.uzh.ch/ontologies/owlswrl/test&gt;
   DLSafeRule(
      Body(
         ClassAtom(
            :salt
            Variable(&lt;urn:swrl#x1&gt;)
         )
         ClassAtom(
            :water
            Variable(&lt;urn:swrl#x2&gt;)
         )
      )
      Head(
         ObjectPropertyAtom(
            :dissolve
            Variable(&lt;urn:swrl#x1&gt;)
            Variable(&lt;urn:swrl#x2&gt;)
         )
      )
   )
)
</owlfsspp>
  <messages/>
</apeResult>

But this does not work with OWL:

% ape.exe -text 'If something dissolves every liquid then it is a solvent.' -guess -solo paraphrase
If there is something X1 and if there is a liquid X2 then X1 dissolves the liquid X2 then X1 is a solvent.

<jmvanel> To get a better understanding of how in NARS to express background knowledge, set goals, and query results, I'll read "Application" in https://sites.google.com/site/narswang/publications

Computation and Intelligence in Problem Solving

[A revised version appears as "Problem solving with insufficient resources" in the International Journal of Uncertainty, Fuzziness and Knowledge-based Systems, 12(5), 673-700, 2004]

How to solve problems without problem-specific algorithms

Pattern matching for an object graph (mails)

Got answer by Pei Wang:

Sorry previously I didn't pay attention to the meaning of the sentences involved. Your first question shouldn't be formalized as

(&&,<(*,#m,U) --> sender>,<(*,#m,m5)--> replyTo>)?

but something like

<<(*,$1,P1) --> sender> ==> (&&, <(*,#m,$1)--> replyTo>, <(*,#m,U) --> sender>)>?

"How often have I replied to the mails sent by P1?"

This is very similar to the "key-lock" example discussed in NAL-6.

I'll find time to check whether the new version can handle it.

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

So I need to distinguish 2 variable types:

So should replace my query :

(&&,<(*,#mold,#value)--> #prop>,<(*,m5,#value) --> #prop>,<(*,#manswer_old,#mold) --> replyTo>,<(*,#manswer_old,U) --> sender>)?

with:

(&&,<(*,#mold,#value)--> #prop>,<(*,m5,#value) --> #prop>,<(*,$manswer_old,#mold) --> replyTo>,<(*,$manswer_old,U) --> sender>)?

And then what I expect is some (same) data associated to m5 and $manswer_old , the latter being bound to mu1 and mu2 .

(&&,<(*,m1,P1)--> sender>,<(*,m5,P1) --> sender>,<(*,mu1,m1) --> replyTo>,<(*,mu1,U) --> sender>)?

that is , these bindings:

#mold ===> m1
#value ===> P1
#prop ===> sender
$manswer_old  ===> mu1

I don't see anything of this sort after 24 iterations.

I can try another query more like what Pei suggested, that would mean "How often have I replied to the mails similar to m5 ?" ( that is not only considering sender , but possibly other properties like subject, cc, etc .

But first I try his exact suggestion: "How often have I replied to the mails sent by P1?"

<<(*,$1,P1) --> sender> ==> (&&, <(*,#m,$1)--> replyTo>, <(*,#m,U) --> sender>)>?

However, I don't quite understand the semantics of implication in a question.

For instance, at iteration 9, I get this:

9
 OUT: <mu1 --> (/,sender,_,U)>. %1.00;0.90% {0 : 4} 
 OUT: <U --> (/,sender,mu1,_)>. %1.00;0.90% {0 : 4} 

From the grammar, I see that (/,... is a compound Term for "extensional image" .

If I understand correctly,

(/,sender,_,U)

means "all things having U as sender".

Fixing Scala parser for NARS

just commited a Scala grammar for Nars : fixed some problems with infinite recursions with PackratParser ; TODO : multiline; populate the NARS objects - at least there is something that can give a disgnostoc in cas of syntax error.

<jmvanel> datura, the default parser message is probably misleading ; my interpretation is that the parser cannot find anything matching in grammar , so it mentions \z ; found where it happens in RegexParse while debugging

<jmvanel> so I have to read carefully the grammar , maybe make experiments ;

<jmvanel> this is a "theoretical" grammar that a researcher has writen , but he did a hand med parser for it ,

<jmvanel> so there's no guarantee that it's correct

FYI my grammar : https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/src/main/scala/eulergui/parsers/nars/NARSParser.scala

<jmvanel> is there a verbose way to parse , logging every rule tried ?

* hiltontokot est parti (Ping timeout: 245 seconds)

<dibblego> jmvanel: the built in scala parsers impose difficulties with things like this (and performance) — I believe Runar has ported parsec3 that permits the stacking of an arbitrary functor into the parser (e.g. logging) and you can essentially express the BNF to the library

<dibblego> https://github.com/runarorama/scarpia

<jmvanel> thanks dibblego , I'll keep this in mind , but the learning curve for scarpia seeems steep ; there is npo wiki at all, one has to go to the Haskell implementation ; I gues I had better add println() here and there

la doc Packrat offcielle :

http://scala-programming-language.1934581.n4.nabble.com/attachment/1956909/0/packrat_parsers.pdf

2013-01-29

At the current time, the most comprehensive description of NARS are the books [http://www.springer.com/west/home/computer/artificial?SGWID=4-147-22-173659733-0 Rigid Flexibility: The Logic of Intelligence] and [http://www.worldscientific.com/worldscibooks/10.1142/8665 Non-Axiomatic Logic: A Model of Intelligent Reasoning]. Various aspects of the system are introduced and discussed in many papers, most of which are available online.

NARS

Pattern matching for an object graph (mails)

The first simple pattern is to learn from mails answered to a person P1, that the user often (more than 50% of the times) answers to P1.

So the data will be in N3 (Turtle) :

m1 sender P1.
m2 sender P2.
m3 sender P1.
m4 sender P1.

mu1 sender U; replyTo m1 .
mu2 sender U; replyTo m4 .

The first sentence reads : "m1 has sender P1".

The last sentence reads : "mu2 has sender U (the user), and is in reply to m4".

Now there are 2 questions :

m5 sender P1.

My understanding is that this last sentence translates in NARS:

<(*,m5,P1) --> sender>.

which I patterned after "Water dissolves salt" in recent article "Solving a Problem With or Without a Program".

But for the 2nd question I guess I should ask for a conjunction of : user U send a mail #m, and the mail is in reply to m5 , so :

<(&&,<(*,#m,U) --> sender>,<(*,#m,m5)--> replyTo>)>?

So NARS is certainly expressive enough, it's just that I miss a Rosetta stone with the kind of modelling I know, like FOL and ontologies.

Pei's answer : The syntax issue:

<(&&,<(*,#m,U) --> sender>,<(*,#m,m5)--> replyTo>)>?

should be

(&&,<(*,#m,U) --> sender>,<(*,#m,m5)--> replyTo>)?

since the "< >" notation is used only on statement with subject-copula-predicate format.

I'll consider the other issues involved.

-------

The context is that this example is just the starting point for a Mail assistant project.

This assistant issues contact management suggestions; it is a tool to help me manage my mails, contacts and agenda. My data are retrieved using connectors for IMAP and Google API's for agenda and contacts. Then the system should be able to make suggestions of mails to send, especially to business contacts.

Note that the past mails are a training data. One advantage of this use case for AGI/AI is that the agent can do a little bit, like just suggesting a mail recipient at a particular moment, or more and more: suggesting subject, body, more and more accurately. The agent will compare its suggestions with what the human actually does. The agent can improve its understanding of mails and recipient categories by learning also from the web, dbPedia, etc.

For instance, the agent could remind to mail to important contacts after some time, infer that some contacts are important by the frequence of mails I send , etc ...

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

conjunction of :

Problems in the GUI

  1. syntax error are reported in standard output :(
  2. after an initial syntax error in input window nothing is reported at all
  3. the place (line and column) of syntax error is not reported

I'll attack 1 and 2 , with are just bugs . For point 3 , I made a real parser in Scala, that can a least report the line and column of error. For now it's 2 separate classes (that work) :

In the GUI I noted some possible enhancements like : be able to do control - a , control - c in text panels, be able to search for a string, having syntax coloring.

That's just standard stuff, quite easy to add.

But one specific thing nice to have, in such a case , is to have a option (by default) to stop running when an answer is obtained.

NARS refactorings

Made a test by removing gui package : 51 errors. Happily, language and inference have no dependency to gui. But storage has many references to .gui

Refactorings considered:

In fact, GUI and engine should be refactored with MVC design pattern.

Should first write a MainBatch .

NARS misc., first commits

Found descriptions of demos for NARS (dbPedia, health, video games, etc) :

http://www.cis.temple.edu/~pwang/demos.html

Java code to read input file from command line arguments + other coding suggestions ...

https://groups.google.com/forum/?fromgroups=#!topic/open-nars/Gt2TfZ3xUKc

- removed all yellow warning in Eclipse IDE for Java ( Version: Juno Service Release 1 Build id: 20121004-1855 )

including : unused imports; commented out unused variables; added missing generic type in interface OutputChannel

- fix some spelling errors in comments

2013-01-28

NARS

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

http://agi-wiki.org/

https://github.com/sirthias/parboiled/wiki

There is a whole discussion about my post on ATTEMPTO list :) .

<jmvanel> post in french here , if you 're not subscribed : https://groups.google.com/forum/?hl=en&fromgroups=#!topic/deductions-fr/9ew8TFk8E58

Scala parser for NARS syntax

Reading parag. "parser output" in "Programming in Scala". Probably I should use repetition rep(P) or repsep(P, separator).

I would like to have the ˆˆ operator transforms in another class, keeping the grammar pure and clean, and allowing for several uses of the pure grammar.

2013-01-27

OWLAPI-developer] 3.4.3 release

Ignazio Palmisano ipalmisano.mailings@gmail.com via lists.sourceforge.net

à owlapi-develop.

Hi all, FYI, 3.4.3 has just been released.

Following code changes is what I do for many many projects

<jmvanel> for this too an agent is to be done :)

NARS

http://www.scala-lang.org/api/current/index.html#scala.util.parsing.combinator.Parsers

 import scala.util.parsing.combinator._
  
  class NARSParser extends JavaTokenParsers {   
//        <task> ::= [<budget>] <sentence>   // task to be processed
def task: Parser[Any] = budget.? ~ sentence
/*    def expr: Parser[Any] = term~rep("+"~term | "-"~term)
    def term: Parser[Any] = factor~rep("*"~factor | "/"~factor)
    def factor: Parser[Any] = floatingPointNumber | "("~expr~")"
*/
  }

<jmvanel> datura ( btw nice flower ) , I found my stupid error by parsing a more simple string

<jmvanel> and all my rules are now val's

<jmvanel> commited a NARS grammar in Scala that parses ;

<jmvanel> now must add populating of the data structures

Running "open the door" example in recent Pei Wang article

<jmvanel> trying open-NARS ... exceptions and minor issues begin !

<jmvanel> Nice project anyway .

<jmvanel> A verbalizer would nice to have !

<jmvanel> refering to syntax : http://code.google.com/p/open-nars/wiki/InputOutputFormat

<jmvanel> semantics described in article : http://www.degruyter.com/view/j/jagi.2012.3.issue-3/v10229-011-0021-5/v10229-011-0021-5.xml?format=INT

<jmvanel> ontologiae, did you read this ?

The example in recent Pei Wang article "Solving a Problem With or Without a Program"

// demand the system to open the door1 !
<{door1} --> [opened]> !

// if the robot is at a door and push it, the door will be opened.
// (((#x → [at]) ∧ (#x → door) ∧ push(#x)) ⇒ (#x → [opened])).
<(&&,<#x --> [at]>,<#x --> door>,push(#x)) ==> <#x --> [opened]>>.

// if some position #x is walkable and the robot walk-to #x, then the robot  is at #x .
// (((#x → [walkable]) ∧ walk-to(#x)) ⇒ (#x → [at])).
// NARS does not seem to accept spaces inside conjunction blocks:
// <(&&, <#x --> [walkable]> , walk-to(#x) ) ==> <#x --> [at]> >.
<(&&,<#x --> [walkable]>,walk-to(#x)) ==> <#x --> [at]>>.

// ({door1} → [walkable]).                  
<{door1} --> [walkable]>.

Syntax errors are indicated in the console with a vague message :

INVALID INPUT: < (&&, ({#x --> [at]) , (#x --> door) , push(#x) ) ==> (#x --> [opened]) > --- invalid statement

oem-laptop: ~/src/open-nars-read-only/ % Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at nars.gui.MainWindow.actionPerformed(MainWindow.java:254)
at java.awt.MenuItem.processActionEvent(MenuItem.java:669)
at java.awt.MenuItem.processEvent(MenuItem.java:628)
at java.awt.MenuComponent.dispatchEventImpl(MenuComponent.java:351)
at java.awt.MenuComponent.dispatchEvent(MenuComponent.java:339)

When entering :

({door1} --> [opened])!

which is article syntax not suitable for NARS application:

oem-laptop: ~/src/open-nars-read-only/ % Exception in thread "Thread-0" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1911)
at nars.io.StringParser.parseCompoundTerm(StringParser.java:331)
at nars.io.StringParser.parseTerm(StringParser.java:245)
at nars.io.StringParser.parseTask(StringParser.java:90)
at nars.io.StringParser.parseExperience(StringParser.java:72)
at nars.main.Reasoner.textInputLine(Reasoner.java:185)
at nars.gui.InputWindow.nextInput(InputWindow.java:152)
at nars.main.Reasoner.tick(Reasoner.java:146)
at nars.main.NARS.run(NARS.java:112)
at java.lang.Thread.run(Thread.java:722)

When I correc as above <{door1} --> [opened]>! , I get this in the console :

<{door1} --> [opened]>! --- unknown punctuation: '!'

And, indeed, alas, punctuation '!' is not implemented . In fact the parsing is done in a hard-coded way in class StringParser.

NOTE: [opened] is an "intensional set", that is ???????????????

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

LOAN is here, and apparently not integrated in Java GUI :

open-nars/src/com/googlecode/opennars/parser/loan/

A main program is here ; it's not lcear what it does :

open-nars/src/java_cup/Main.java

<jmvanel> just discovered that the parsing is done manually in NARS :(

<jmvanel> It's a pity that Dr Pei Wang has to do the coding himself .

<ontologiae> He could use ocamlyacc

<jmvanel> I'll propose him to rewrite the parser .

<jmvanel> Well, it's also important that Dr Pei Wang understands the code ...

<jmvanel> I'll propose him to rewrite the parser in Scala grammr ,

<jmvanel> or else in standard Java parser tool

<jmvanel> I think Scala would be well suited for writing a inference engine

<jmvanel> and besides there is converter from Java to Scala.

<jmvanel> standard Java parser tool == http://www.antlr.org/

Correspondance of Narsese / LOAN and N3

http://code.google.com/p/open-nars/wiki/InputOutputFormat

Comments, either block comments, or one line comments, are not mentioned at all. Are they omited in this grammar, or not existing at all in NARS software ?

They do exist, but this grammar is the core grammar.

NARS N3 comment
(*,S,O)-->P S P O. Water dissolves salt

(water×salt) → dissolve

--> rdfs:subclassOf extensively used in NARS; not sure if all usages are covered by subclassOf ; indicated by → in published articles
{-- a
{-] owl:topObjectProperty not satisfying
--] ? (property of a class )
"(&&," <term> {","<term>} ")" conjunction is implicit in N3
. . Judgment
! goal: order given to the agent (no equivalent in N3)
? question : no different syntax in N3 : introduced in a different file by --query

2013-01-26

http://agi-school.org/2009/dr-joscha-bach-the-micropsi-architecture

AGI use cases

<jmvanel> I gathered my notes on AGI use cases : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/AGI_use_cases.html

I don't dare yet to post it on AGI mailing list...

https://sites.google.com/site/narswang/home/agi-introduction

<jmvanel> Any news from the Oxford conf videos ?

<utopiah> not as far as I know

<jmvanel> http://www.carboncopies.org/the-fifth-artificial-general-intelligence-conference-agi-12-at-oxford-dec-8-11-2012

<jmvanel> this page says : VIDEO OF TALKS WILL BE UPLOADED SOON ;)

2013-01-25

http://www.lri.fr/~hansen/

<jmvanel> COMMIT : documentation: add parag. "Generating complex strings"

<jmvanel> Then I'll use one of mecanisms to generate NARS input files from N3 /

2013-01-24

Reading NARS doc.

Isn't there an error :

<whitewine --[ white>.  |  :WhiteWine --[ wn:Wine.

</bottle-from-sally> }-> :WhiteWine.

</bottle-from-peter> }-[ wn:Dry %0.5%.

:RoseWine --> wn:Wine & [wn:Pink].

in N3: not lcear how to represent intensional set

{ ?w a :RoseWine } -> { ?x a wn:Wine , wn:Pink } .

This lloks very much like Description logic:

We also should describe what it means to be 'bad soil'; a bad soil is any instance of soil which isn't an instance of the property of being good:

Narsese LOAN

:BadSoil --> wn:Soil - [wn:Good].

18. Wang, P.: Non-Axiomatic Logic: A Model of Intelligent Reasoning. World Scientific, Singapore (2012) (in press)

http://www.worldscientific.com/worldscibooks/10.1142/8665

There are more infos on Wikipedia:

http://en.wikipedia.org/wiki/Charlie_Parker_on_Dial

than on dbPedia:

http://dbpedia.org/page/Charlie_Parker_on_Dial

where musicians are not here.

2013-01-23

<jmvanel> my question should be here : https://mailman.stanford.edu/pipermail/protege-owl/2013-January/thread.html

Possible importer in EulerGUI:

Right now X2R can extract data from relational, XML and LDAP databases, transform them to RDF and load the RDF into an RDF database.

http://fivo.cyfronet.pl/trac/fivo/wiki/X2R

2013-01-22

Installed Octave

http://www.octave.org/

Large page about AGI tools (and AI) : http://linas.org/agi.html, last updated in 2009 .

mvanel> linas is on #opencog

Testing CLIPS

CLIPS is writen in C, and could be used for devices.

sudo apt-get install clips

Asserting a semantic web triple is straightforward, exept that predicate should be in first position, I think

(assert ( http://test.com/property http://test.com/subject "bla" ) )

Home work in statistical machine learning

Reading :

http://abeautifulwww.com/2009/10/11/guide-to-getting-started-in-machine-learning/

then http://www-stat.stanford.edu/~tibs/ElemStatLearn/

<jmvanel> In God we trust, all others bring data. – William Edwards Deming (1900-1993)

Installed R on Debian 6

This R project is empty !

https://r-forge.r-project.org/projects/rsparql/

sudo apt-get install libcurl-dev 
# or  libcurl4-gnutls-dev
sudo R
 ...
> install.packages("RCurl", dependencies = TRUE)
> install.packages("SPARQL", dependencies = TRUE)
> library(SPARQL)
Le chargement a nécessité le package : XML
Le chargement a nécessité le package : RCurl
Le chargement a nécessité le package : bitops
 > install.packages("mapproj", dependencies = TRUE)

cf

Querying Linked GeoData with R SPARQL client

http://danbri.org/words/2011/05/11/701

endpoint = "http://foaf.tv/hypoid/sparql.php"
q = "PREFIX vcard: <http://www.w3.org/2006/vcard/ns#>\nPREFIX foaf:\n<http://xmlns.com/foaf/0.1/>\nPREFIX rv:\n<http://www.wifo-ravensburg.de/rdf/semanticweb.rdf#>\nPREFIX gr:\n<http://purl.org/goodrelations/v1#>\n \nSELECT ?poi ?l ?lon ?lat ?k\nWHERE {\nGRAPH <http://www.heppresearch.com/dev/dump.rdf> {\n?poi\nvcard:geo ?l .\n  ?l vcard:longitude ?lon .\n  ?l vcard:latitude ?lat\n.\n ?poi foaf:homepage ?hp .\n?poi rv:kategorie ?k .\n\n}\n}\n"

res<-SPARQL(endpoint,q)
pie(table(res$k))
Erreur dans seq.int(x[i], x[i + 1], length.out = n) : 
  'length.out' doit être un entier positif ou nul

http://en.wikipedia.org/wiki/R_(programming_language)#Interfaces

2013-01-21

construct {
  ?s1 ?p1 ?o1 . ?o1 ?p2 ?o2 .}
where {
  ?s1 ?p1 ?o1 . ?o1 ?p2 ?o2 .}

AGI use cases

http://preview.europeana.eu/portal/api-documentation.html

http://linkeduniversities.org/lu/index.php/vocabularies/

Jos' article http://arxiv.org/pdf/1210.4405v2.pdf

COMMIT

FEATURE: For ATTEMPTO files, with .ace suffix, launch OWL ==> N3 translation (as for "real" OWL files)

2013-01-20

For file suffixes ".rq" and ".sparql", set editor mode "n3"

Problem on Windows :

14:23:05 [AWT-EventQueue-0] [error] GUIUtilities: Icon not found: 32x32/apps/jedit.png
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities: java.net.MalformedURLException: unknown protocol: jeditresource
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at java.net.URL.<init>(URL.java:590)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at java.net.URL.<init>(URL.java:480)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at java.net.URL.<init>(URL.java:429)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.GUIUtilities.loadIcon(GUIUtilities.java:180)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.GUIUtilities.getEditorIcon(GUIUtilities.java:203)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.View.<init>(View.java:1328)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.jEdit.newView(jEdit.java:2492)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.PerspectiveManager$PerspectiveHandler.endElement(PerspectiveManager.java:341)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:606)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.dtd.XMLNSDTDValidator.endNamespaceScope(XMLNSDTDValidator.java:266
)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2005)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:879)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentS
cannerImpl.java:1742)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocum
entFragmentScannerImpl.java:2900)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentSca
nnerImpl.java:489)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.util.XMLUtilities.parseXML(XMLUtilities.java:139)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.SettingsXML.load(SettingsXML.java:155)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.PerspectiveManager.loadPerspective(PerspectiveManager.java:104)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.jEdit.finishStartup(jEdit.java:3936)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at org.gjt.sp.jedit.jEdit.main(jEdit.java:621)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at eulergui.gui.view.TextEditor.displayEditor(TextEditor.java:299)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at eulergui.gui.main.EditorManagement.openJavaEditor(EditorManagement.java:163)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at eulergui.gui.main.EditorManagement.doOpenEditor(EditorManagement.java:130)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at eulergui.gui.main.EditorManagement.reallyDoOpenEditor(EditorManagement.java:83)
14:23:05 [AWT-EventQueue-0] [error] GUIUtilities:  at eulergui.gui.main.EditorManagement$1.actionPerformed(EditorManagement.java:52)

Indeed there is an URL starting with :

jeditresource:/org/gjt/sp/jedit/icons/themes/

dbpedia:Paris

1 FIX : in open Connection, set RequestProperty "Accept-Encoding" : "utf-8"

2 TODO : more corrections, platform default encoding is used in some places

2 use cases for intelligent agents

<rszeno> jmvanel, would be nice to have a logger bot on #eulergui, :)

<jmvanel> yes

<jmvanel> in XCHAT I keep everything

<rszeno> a logger bot to log and put logs in xml or rdf somewhere, on a server which is always online

<rszeno> and maybe a chump bot

<rszeno> i suspect dereify option in cwm is broken

<rszeno> or i do something wrong

<jmvanel> if you have time for setting up a logger bot this would nice :)

<jmvanel> indeed , --dereify is broken :

cwm https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/examples/BloodPressure.n3  --reify > /tmp/BloodPressure--reify2.n3
cwm /tmp/BloodPressure--reify2.n3 --dereify

  File "/usr/lib/pymodules/python2.6/swap/llyn.py", line 1542, in newSymbol
    return self.intern(RDFSink.newSymbol(self, uri))
  File "/usr/lib/pymodules/python2.6/swap/llyn.py", line 1740, in intern
    assert ':' in urirefString, "must be absolute: %s" % urirefString
TypeError: argument of type 'Fragment' is not iterable

<jmvanel> tested with eulergui/examples/BloodPressure.n3

2013-01-19

Tests Results on Debian:

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 203, Failures: 0, Errors: 2, Skipped: 0

[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.ibm.icu:icu4j ..................................... 50.1 -> 50.1.1
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist
[INFO]   org.drools:drools-compiler ............... 5.5.0.Final -> 6.0.0.Alpha6
[INFO]   org.scala-lang:scala-library ..................... 2.10.0 -> 2.11.0-M1
[INFO]   org.scala-lang:scala-swing ....................... 2.10.0 -> 2.11.0-M1

<jmvanel> Attempto / APE and vangelisv / thea are among the most popular Prolog stuff on Github !

<jmvanel> cannot compare with Euler, because it's on Sourceforge .

https://github.com/languages/Prolog

bibtex to RDF

<jmvanel> No RDF here :( http://www.bibtex.org/Convert/

<jmvanel> http://www.cs.utexas.edu/~ml/chill.html CHILL (Constructive Heuristics Induction for Language Learning) is a general approach to the problem of inducing natural language parsers.

<jmvanel> saw this in AIMA

<rszeno> http://answers.semanticweb.com/questions/963/best-vocabulary-for-converting-bibtex-to-rdf

<rszeno> i didn't read the thread but i know there are some tools/ontologies outside

<rszeno> http://www.l3s.de/~siberski/bibtex2rdf/

<jmvanel> There is a web service :

<jmvanel> http://www.cs.vu.nl/cgi-bin/mcaklein/bib2swrc2.pl?url=http%3A%2F%2Fwww.cs.vu.nl%2F~mcaklein%2Fbib2rdf%2Ftest.bib

Reading grammar chapter in AIMA

<jmvanel> No RDF here :( http://www.bibtex.org/Convert/

<jmvanel> CHILL (Constructive Heuristics Induction for Language Learning) is a general approach to the problem of inducing natural language parsers.

<jmvanel> saw this in AIMA

NARS

This is kind of getting started page:

http://code.google.com/p/open-nars/wiki/MultiStepExamples

But:

2013-01-18

http://metagear.de/articles/spring-introduction/index.html#springAOP

http://search.maven.org/#artifactdetails%7Corg.springframework%7Cspring-aop%7C3.2.0.RELEASE%7Cjar

AGI : NARS

It you be nice to have a translation from N3 to NARSese n and Opencog also.

I'm looking for a simple batch program for NARS (I know that's a stateful GUI is more apropriate to NARS style).

I would like to apply either one of NARS or OpenCog to my mail use case.

The example in recent Pei Wang article "Solving a Problem With or Without a Program" :

%% demand the system to open the door1 !
<{door1} --> [opened]>!

%% if the robot is at a door and push it, the door will be opened.
%% (((#x → [at]) ∧ (#x → door) ∧ push(#x)) ⇒ (#x → [opened])).
<(&&,<#x --> [at]>,<#x --> door>,push(#x)) ==> <#x --> [opened]>>.

%% if some position #x is walkable and the robot walk-to #x, then the robot  is at #x .
%% (((#x → [walkable]) ∧ walk-to(#x)) ⇒ (#x → [at])).
%% NARS does not seem to accept spaces inside conjunction blocks:
%% <(&&, <#x --> [walkable]> , walk-to(#x) ) ==> <#x --> [at]> >.
<(&&,<#x --> [walkable]>,walk-to(#x)) ==> <#x --> [at]>>.

%% ({door1} → [walkable]).                  
<{door1} --> [walkable]>.

Line code statistics:

cd ~/src/opencog |tail -1
wc **/*.cpp **/*.cc
 198218  655779 6834860 total

cd ~/src//open-nars-read-only/nars
wc **/*.java |tail -1
 14519  59620 504094 total

Stanford NLP

stanford-nlp is in Maven !

http://search.maven.org/#artifactdetails%7Cedu.stanford.nlp%7Cstanford-parser%7C2.0.4%7Cjar

Stanford Parser processes raw text in English, Chinese, German, Arabic, and French, and extracts constituency parse trees.

2013-01-17

Free/open-source machine translation software

http://computing.dcu.ie/~mforcada/fosmt.html

<jmvanel> good to know : http://www.cygwin.com/acronyms/

Pei Wang AGI stuff

NARS == NARS (Non-Axiomatic Reasoning System)

NARS is a project aimed at the building of a general-purpose intelligent system, or a "thinking machine" that follows the same principles as the human mind, and can solve problems in various domains.

The research results include a theory of intelligence, a formal model of intelligence based the theory, and a computer implementation of the model.

NARS represent beliefs with graded evidential support.

https://sites.google.com/site/narswang/

<jmvanel> Pei Wang Published Online: 2013-01-04 : http://www.degruyter.com/view/j/jagi.2012.3.issue-3/v10229-011-0021-5/v10229-011-0021-5.xml?format=INT

<jmvanel> At Oxford Pei did not seem to want to talk to people :(

<jmvanel> other recent Pei Wang papers https://sites.google.com/site/narswang/

older NARS site : http://www.cis.temple.edu/~pwang/Writing/NARS-Intro.html

<rszeno> this is good, :)

<rszeno> he added only what was published at oxford

<rszeno> 'solving ...'

<rszeno> there is a gap in programming languages paradigms, functional and logic, need relational programming

<rszeno> this solve a lot of problems but also add few new

<jmvanel> some Zeno concept :) ?

<rszeno> no, is old

<rszeno> http://cs.adelaide.edu.au/~dwyer/TR95-10_TOC.html

<rszeno> working with graphs using rp is more easy

<rszeno> there is no source available for libra but after reading the theory is not hard to write something

<rszeno> this could be the core http://kanren.sourceforge.net/

<jmvanel> Coincidence : I already exchanged mail with Nicolas Pelletier

<jmvanel> Kanren author

<jmvanel> Reading "Solving a Problem With or Without a Program" by Pei Wang

<jmvanel> nice kind of review article

AGI 2013 paper : http://www.cis.temple.edu/~pwang/Publication/motivation.pdf

https://groups.google.com/forum/?fromgroups#!forum/open-nars

http://www.agi-conf.org/2013/

Feature suggestions for Weka

http://www.cs.waikato.ac.nz/~ml/weka/

Some missing features :

Broader the range of texts that can be mapped to ACE

I thought of a way to broader the range of texts that can be mapped to ACE.

Would that make sense to train a text machine learning algorithm with texts in natural english and their translation in ACE?

I guess some of you already translated manually some domain and software specifications into ACE. That could become a training set.

2013-01-16

Reflexions on AGI

Explorer and recorder agent on workstation

JVM (Java VM) technology is a good choice for an explorer and recorder agent on the user's machine, because of its independence regarding the platform.

However it's not close enough to the system for some purposes, like catching all keyboards strokes wherever, or monitoring any software running.

It does not mean that Java is the appropriate and only language, there are other languages for the JVM, like Scala, Clojure.

Emergence

Artificial General Intelligence (AGI) could result from the capacity resulting automatically from assembling a number of components more or less simple. The classic case of the emergence are: ants, convective cells, and other dynamical systems, life, brain.

Data exchange format

A standard for exchange of training sets, ie data for machine learning is very important for general artificial intelligence .

We can reuse the same data file with several programs, test, compare and combine different tools.

Test and combine can then be done by an intelligent agent.

This can also help organize competitions between different AGI software, as there are every year for theorem provers using TPTP format ( CASC) .

Exploring dbpedia.org

http://dbpedia.org/ontology/region

or isPartOf

%C3%8Ele-de-France_(region)

HTTP headers

null: [HTTP/1.1 200 OK]
Link: [<http://dbpedia.org/data/Paris.n3>; rel="alternate"; type="text/n3"; title="Structured Descriptor Document (N3/Turtle format)", <http://dbpedia.org/data/Paris.json>; rel="alternate"; type="application/json"; title="Structured Descriptor Document (RDF/JSON format)", <http://dbpedia.org/data/Paris.atom>; rel="alternate"; type="application/atom+xml"; title="OData (Atom+Feed format)", <http://dbpedia.org/data/Paris.jsod>; rel="alternate"; type="application/odata+json"; title="OData (JSON format)", <http://dbpedia.org/page/Paris>; rel="alternate"; type="text/html"; title="XHTML+RDFa", <http://dbpedia.org/resource/Paris>; rev="http://xmlns.com/foaf/0.1/primaryTopic", <http://dbpedia.org/resource/Paris>; rel="describedby", <http://mementoarchive.lanl.gov/dbpedia/timegate/http://dbpedia.org/data/Paris.xml>; rel="timegate"]
Vary: [Accept-Encoding]
Date: [Wed, 16 Jan 2013 21:48:26 GMT]
Content-Length: [1676817]
Expires: [Wed, 23 Jan 2013 21:46:13 GMT]
X-SPARQL-default-graph: [http://dbpedia.org]
Accept-Ranges: [bytes]
Connection: [keep-alive]
Content-Type: [application/rdf+xml; charset=UTF-8]
Server: [Virtuoso/06.04.3132 (Linux) x86_64-generic-linux-glibc212-64  VDB]

http://www.cs.waikato.ac.nz/~ml/weka/

http://www-usr.inf.ufsm.br/~juvizzotto/elc1014-2011a/absolver.pdf

Voice to Text with Google

<rszeno> http://www.npr.org/blogs/thetwo-way/2013/01/14/169338707/java-security-flaw-is-repaired-experts-still-recommend-disabling-it

<jmvanel> merci

<jmvanel> downloading 7-11 JDK

<jmvanel> Voice to Text with BASH WGET and Google http://www.youtube.com/watch?v=NpjMlVPvfT8

<jmvanel> look at minute 5

<jmvanel> official doc : https://gist.github.com/1730160

<jmvanel> taking notes with Google translate audio input in fr :)

TODO EG : catch any exception during OWL+SWRL ==> N3 translation

<jmvanel> Styla: a Prolog interpreter in Scala

<jmvanel> http://code.google.com/p/styla/

http://logic.cse.unt.edu/tarau/index.html

https://github.com/search?q=attempto

https://github.com/ontologiae/DRS-Analysis-Tool#readme

http://code.google.com/p/open-nars/wiki/LOANForNarseseUsers

http://moise.sourceforge.net/

Joe Geldart

http://www.linkedin.com/in/logicmoo/

On swig :

<jmvanel> TTL is not even in list of Data exchange languages : http://en.wikipedia.org/wiki/Data_exchange

<jmvanel> we should do something about it !

2013-01-15

<jmvanel> nice tool: http://lite.framapad.org/p/eulergui : collaborative editor

One solution to let people get started would be a "narrow AI" GUI tool to help choosing the AI tool according to the kind of problem and data. But maybe developing a "narrow AI" assistant tool is a task that is badly considered is the AGI community ...

I would be like the http://fold.it for AI ...

Building again OpenCog : noobs recipe

http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs

make

I've been trying to run useful stuff with OpenCog, but it is hard to get started.

I want mainly to be a user , but at the moment this seems difficult, and I guess that most of the users of a module M are developers of M .

Certainly doing a general purpose GUI assistant would help . That's what I did for a family of inference engines in EulerGUI :

http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#Introducti

One solution would be "narrow AI" tool to help choosing the tool according to the kind of problem and data ,

but maybe developing a "narrow AI" assistant tool is a task that is badly considered is this community ...

Trouble with EG on Windows

Could not load N3 source from URL http://www.w3.org/2000/01/rdf-schema#
ERROR in reasoning with External Prolog: [--nope, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, C:\Users\Eric\.eulergui\n3_cache\owl-subclass-assertions-to-rules.n3_2589090915117711057.n3, 
--wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, C:\Users\Eric\.eulergui\n3_cache\variableSubstitution.n3_6369742069302335485.n3, 
--wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, C:\Users\Eric\.eulergui\n3_cache\swrl-n3-rules.n3_4734205411645318167.n3, "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3", "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3", "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3", "file://C:\Users\Eric\AppData\Local\Temp\eg-6658705639310056323.n3", 
--wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3, C:\Users\Eric\.eulergui\n3_cache\swrl-n3-rulesQ.n3_6908119293854179601.n3, 
--query, "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3"]
Cause:
java.lang.RuntimeException: ** ERROR ** n3socket ** error(permission_error(open,source_sink,file:\\C:\Users\Eric\AppData\Local\Temp\eg-6658705639310056323.n3),
[open/3|local_sp(11771452,11770576,[],[])])

2013-01-14

PREFIX :  <http://dbpedia.org/resource/>
CONSTRUCT { ?X :sibling ?Y . ?Y :sibling ?X . } WHERE { ?X a :person . ?X :parent ?x3 . ?Y a :person . ?Y :parent ?x3 . }

<jmvanel> http://aess2013.sciencesconf.org/

<jmvanel> looks nice !

<jmvanel> at least the region is nice :)

<jmvanel> we need an intelligent agent to search for data and vocabs :)

<rszeno> ffox extension, user search for ontology and a combination with semantic radar to ping to notify ( no idea what right now) about data and ontologies

<jmvanel> ok, nice ;

<jmvanel> need to think more about the radar

<rszeno> data.fm to store + webid to upload metainformation to a user specific site ( available when user is offline and to create a distributed network accessible from extension)

<jmvanel> ther key part

<rszeno> i think the key part is second, create a distributed source

<rszeno> probably i should say that this is still a dream, right now i'm fighting with more simple problems, :)

<rszeno> like rdf path

<jmvanel> I want to do something that works better that I , with the existing web sources ,

<jmvanel> and can exploit my computer and bandwidth while I do something else :)

<rszeno> me too

Jos De Roo ‏@josderoo "Hageland" what a beautiful region! pic.twitter.com/xAjJ1hb3

Opencog noteworthy from community

<mattkruse> Whos responsible for the random pull requests to opencog

<jmvanel> good question !

<nilg> any opencog github member https://github.com/opencog?tab=members

<nilg> if the pull request concerns MOSES, Linas or I will probably take care of it, if it concerns README, build, ... David probably will, for the rest I don't really know for sure

https://groups.google.com/forum/?fromgroups=#!topic/opencog/3_yBe7X_3Fk

Hi Jean-Marc,

Launchpad I believe is no longer in use. The build that worked for me was following the steps here: http://wiki.opencog.org/w/Installing_OpenCog_for_Noobs

Indeed much more explicit than http://wiki.opencog.org/w/Ocpkg

IRC chat : AI

Le sujet de ##AGI est : Artificial General Intelligence (Strong AI) http://agi-wiki.org | Stay on topic. Discuss non-general (weak) AI in #ai. | Links: http://bit.ly/AGI-book-pdf , http://bit.ly/AGI-group , http://agi-wiki.org/ChanLogs |

Projects: #opencog #opencyc #genifer #nars

* Sujet de ##AGI défini par RandIter le Thu Mar 25 16:28:08 2010

Le sujet de #ai est : Artificial Intelligence |

Log: tunes.org/~nef/logs/ai |

Stanford autumn AI classes: http://www.ai-class.com/ http://www.ml-class.com/

* Sujet de #ai défini par xs!~xs@unaffiliated/xs le Tue Aug 16 12:30:38 2011

Testing Jos's generic RDFS+OWL rules

cd ~/ontologies
eg foaf.n3 ~/jmvanel.free.fr/jmv.rdf \
  ~/src/eulergui/examples/rpo-rules.n3 \
  ~/src/eulersharp/trunk/2003/03swap/rpo-rules.n3 \
  ~/src/eulersharp/trunk/2003/03swap/owl-rules.n3 \
  ~/src/eulersharp/trunk/2003/03swap/rdfs-rules.n3 &

-rw-rw-r-- 1 jmv jmv 32283 oct.  26  2011 owl-rules.n3
-rw-rw-r-- 1 jmv jmv  2715 oct.  26  2011 rdfs-rules.n3
-rw-rw-r-- 1 jmv jmv  4107 oct.  26  2011 rpo-rules.n3

Works very fine with my copy of rpo-rules.n3 :

#ENDS 48 [msec] TC=965 TP=7829 BC=0 BP=2100 PM=0 CM=0 FM=0 AM=0

As quick with eulersharp version of rpo-rules.n3.

3 times longer with just rdfs-rules.n3 :

#ENDS 112 [msec] TC=2118 TP=24965 BC=0 BP=9271 PM=0 CM=0 FM=0 AM=0

And even longer with both rdfs-rules.n3 and owl-rules.n3 :

#ENDS 284 [msec] TC=4177 TP=100621 BC=0 BP=29527 PM=0 CM=0 FM=0 AM=0

Anyway these execution times are with Yap and N3 compilation.

TC , TP , BC, etc are now added in http://eulersharp.sourceforge.net/FAQ

Note that it does not translate in Drools:

file:/home/jmv/src/eulersharp/trunk/2003/03swap/owl-rules.n3
Drools Error: Unable to Analyse Expression new Double( Double.parseDouble(
   Triple.n3ValueToNumeric($Y1 )) * Double.parseDouble( Triple.n3ValueToNumeric($Y2 )) )
   == Double.parseDouble( Triple.n3ValueToNumeric($Y3 )):
[Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$Y3()]
[Near : {... ) == Double.parseDouble( Triple.n3ValueToNumeric($Y3 )) ....}]
                                                              ^
[Line: 294, Column: 2]

{?C1 @has owl:equivalentClass ?A. ?A owl:onProperty ?P1; owl:someValuesFrom ?C3. 
?P1 @has rdfs:domain ?C1; @has rdfs:range ?C3; @has rdf:type owl:FunctionalProperty; owl:inverseOf ?P9. 
?C1 @has owl:equivalentClass ?B. ?B owl:onProperty ?P3; owl:someValuesFrom ?C5. 
?P3 @has rdfs:domain ?C1; @has rdfs:range ?C5; @has rdf:type owl:FunctionalProperty; owl:inverseOf ?P7. 
?C5 @has owl:equivalentClass ?C. ?C owl:onProperty ?P2; owl:someValuesFrom ?C3. 
?P2 @has rdfs:domain ?C5; @has rdfs:range ?C3; @has rdf:type owl:FunctionalProperty; owl:inverseOf ?P8. 
?C5 @has owl:equivalentClass ?D. ?D owl:onProperty ?P7; owl:cardinality ?X1. ?X1 @has owl:sameAs ?Y1.
?C3 @has owl:equivalentClass ?F. ?F owl:onProperty ?P8; owl:cardinality ?X2. ?X2 @has owl:sameAs ?Y2. 
?C3 @has owl:equivalentClass ?G. ?G owl:onProperty ?P9; owl:cardinality ?X3. 
?C3 @has owl:oneOf ?E. ?E rdf:first ?Z; rdf:rest rdf:nil.
(?Y1 ?Y2) math:product ?Z3.
?Z3 math:equalTo ?Y3
} => {?X3 owl:sameAs ?Y3}.

The problem is that Y3 is unbound; nothing should be translated in Drools antecedent. X3 is bound in $Triple_32 .

What should be translated in Drools' consequent is update of object filed in $Triple_32 , instead of asserting an owl:SameAs :

  $Triple_32 : Triple( subject == $G, predicate == "<http://www.w3.org/2002/07/owl#cardinality>", $X3 : object )
  $Triple_33 : Triple( subject == $C3, predicate == "<http://www.w3.org/2002/07/owl#oneOf>", $E : object )
  $Triple_34 : Triple( subject == $E, predicate == "<http://www.w3.org/1999/02/22-rdf-syntax-ns#first>", $Z : object )
  $Triple_35 : Triple( subject == $E, predicate == "<http://www.w3.org/1999/02/22-rdf-syntax-ns#rest>", object == "(  )" )
  Triple( this == $Triple_35 ,  new Double( Double.parseDouble( Triple.n3ValueToNumeric($Y1 )) * Double.parseDouble( Triple.n3ValueToNumeric($Y2 )) ) == Double.parseDouble( Triple.n3ValueToNumeric($Y3 )) )
then
  Double $Z3 =  new Double( Double.parseDouble( Triple.n3ValueToNumeric($Y1 )) * Double.parseDouble( Triple.n3ValueToNumeric($Y2 )) );
  Triple newTriple;
  TripleResult newTripleResult;
  String $Y3 = Triple.resource("Y3") ;
  newTriple = new Triple(  );
  newTriple.setSubject( $X3 );
  newTriple.setPredicate( "<http://www.w3.org/2002/07/owl#sameAs>".toString() );
  newTriple.setObject( $Y3 );  insertLogical( newTriple );

end

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

But there is a problem when using the Jena pretty-printer:

Caused by: com.hp.hpl.jena.n3.turtle.TurtleParseException: [780, 16] : Error: Subject is not a URI or blank node

Because of :

"Marc Godin" a rdfs:Literal.
"Jos De Roo" a rdfs:Literal.
"Jean-Marc Vanel" a rdfs:Literal.

Sent a mail to Jos.

Bulding opencog with the scripts

Try to follow http://wiki.opencog.org/w/Ocpkg

cd ~/bin
wget https://raw.github.com/opencog/ocpkg/master/ocpkg \
  && chmod ugo+rx ocpkg && sudo ./ocpkg -v

ln -s ~/bin/ocpkg ~/bin/octool
sudo apt-get install debootstrap
# NOTE: debootstrap was not provided by ocpkg !!!

mkdir opencog_ocbootstrap
cd opencog_ocbootstrap
wget https://raw.github.com/opencog/ocpkg/master/ocbootstrap

chmod u+x ocbootstrap
sudo ./ocbootstrap 
I: Retrieving InRelease
 ...
Linking CXX executable spawner
[100%] Built target spawner

Comments:

Recent commits:

http://wiki.opencog.org/w/Fishgram

2013-01-13

Messages retrieved: 76296

68315

gives nothing : "euler" eye constraint satisfaction

Using opencog

see "Explore the OpenCog ecosystem" , Rebuilding opencog , My use cases for machine learning with OpenCog , Explore the OpenCog ecosystem , Installing OpenCog from sources

http://wiki.opencog.org/w/Node_types

http://wiki.opencog.org/w/Link_types

http://wiki.opencog.org/w/Getting_Started

http://wiki.opencog.org/w/Scheme ; http://mitpress.mit.edu/sicp/full-text/book/book.html

<JainAmber> jmvanel, created http://wiki.opencog.org/w/User:Jvanel .. see if you can edit it now

<jmvanel> filled :)

<jmvanel> I miss starter examples for 1) running inference and query 2) learning

<jmvanel> is it normal that pln command is not there when running the shell via telnet ?

<jmvanel> I have no libpln.so

<jmvanel> I see that stuff is commented out in reasoning/CMakeLists.txt !?!

Protobuf, Cython, ZeroMQ, TCL, TCLTK, Valgrind

HyperTable??

[ 14%] Building CXX object opencog/ubigraph/CMakeFiles/ubigraph.dir/UbigraphModule.cc.o
In file included from /home/jmv/src/w/opencog/opencog/atomspace/TLB.h:29:0,
                 from /home/jmv/src/w/opencog/opencog/atomspace/AtomTable.h:32,
                 from /home/jmv/src/w/opencog/opencog/atomspace/AtomSpaceImpl.h:36,
                 from /home/jmv/src/w/opencog/opencog/atomspace/AtomSpaceAsync.h:10,
                 from /home/jmv/src/w/opencog/opencog/atomspace/AtomSpace.h:34,
                 from /home/jmv/src/w/opencog/opencog/ubigraph/UbigraphModule.cc:34:
/home/jmv/src/w/opencog/opencog/atomspace/Atom.h:33:42: erreur fatale: opencog/atomspace/atom_types.h : Aucun fichier ou dossier de ce type
compilation terminée

<jmvanel> I tried to uncomment ADD_SUBDIRECTORY (pln) in opencog/reasoning/CMakeLists.txt

<jmvanel> but that's not enough trigger compilation of PLN

ferrouswheel> jmvanel libpln is probably no longer maintained and all new effort is probably being focussed on the python PLN library

FIX redirect in EulerGUI

wget --header='Accept: text/n3, application/n3, text/rdf+n3, text/turtle, application/rdf+xml; q=0.9, text/xml; q=0.9, text/plain; q=0.8, text/xhtml; q=0.8, text/html; q=0.8' \
  -O- --save-headers \
  http://www.w3.org/TR/skos-reference/skos.rdf |less

wget --header='Accept: text/turtle, application/rdf+xml; q=0.9, text/xml; q=0.9, text/plain; q=0.8, text/xhtml; q=0.8, text/html; q=0.8' \
  -O- --save-headers \
  http://www.w3.org/TR/skos-reference/skos.rdf |less

COMMIT: URL N3 sources : handle HTTP_MOVED_PERM, etc

http://www.tagmatica.fr/globalatlas/

Salient words extraction (e.g. ontology, Open Source projects)

SENT to http://nlp2rdf.org/ mailing list

In fact it is not hard to understand an ontology, but it is hard to know which ontology to use.

There is no "directory" of ontologies. It's like the menu of ice creams, there are many. There are rather search engines but traditional ones, not conceptual, such as swogle, falcons [1] ... It is so open, that it's hard even for knowledge experts to choose good ontologies.

To remedy this, what I have planned is to create tools to help authors, users or developers to annotate ontologies with concepts from DBpedia or WordNet, using NLP analyzers.

So what it would be is a tool for extracting salient words from English, which outputs 5 to 10 relevant words, typically from a rdfs:comment. These words are then (if necessary) disambiguated , for example using a Wikipedia Web Service (the one you use when typing in the Wikipedia search field).

Salient words (here music), will be put in triples such as:

<myOntology> skos:subject DBpedia:Music.

which can then be used in the ontology itself (the best), or added in Turtle or RDF documents online or SPARQL databases and / or collaborative sites such prefix.cc [2].

Thus a human or an agent program could find a software component more accurately. The issue about ontologies is similar to Open Source programs, and many other types of resources.

Ideally, the software component for the NLP extraction would in Java and Open Source, which would facilitate the addition in the EulerGUI environment [3].

[1] Finding ontologies on the Web:

http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#Finding2

[2] collaborative website for ontologies and their prefixes: http://prefix.cc

[3] EulerGUI , GUI environment and framework for Semantic Web and rules

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

NLP + RDF

NLP2RDF project

http://en.wikipedia.org/wiki/Natural_language_processing

<jmvanel> the germans of nlp2rdf (good name!) have some web services, and they even took time to make a Jena howto: http://nlp2rdf.org/tutorials/tutorial-how-to-call-a-nif-webservice-with-your-favorite-semweb-library#toc-jena

<jmvanel> but don't know if these servers are open source ... YES !!!

http://code.google.com/p/nlp2rdf/source/browse/#hg%2Fimplementation%2Fstanford-core

<jmvanel> anyway this could make a welcome addition to EulerGUI

<jmvanel> :) without adding yet another dependency

http://nlp2rdf.org/implementations/stanford-corenlp

this URL returns NIF RDF :

http://nlp2rdf.lod2.eu/demo/NIFStanfordCore?input=My%20favorite%20actress%20is%20Natalie%20Portman!&input-type=text&nif=true

Other implementations: http://nlp2rdf.org/implementations

Their ontologies :

http://olia.nlp2rdf.org/

Papers :

Paper by the NLP2RDF guys:

NIF: An ontology-based and linked-data-aware NLP Interchange Format

Sebastian Hellmann, Universität Leipzig, IFI/AKSW, hellmann@informatik.unileipzig.de

Jens Lehmann, Universität Leipzig, IFI/AKSW, lehmann@informatik.unileipzig.de

Sören Auer, Universität Leipzig, IFI/AKSW , auer@uni-leipzig.de

http://svn.aksw.org/papers/2012/WWW_NIF/public.pdf

Other papers:

http://svn.aksw.org/papers/2012/LDL/ldl2012_proceedings/public/chiarcos.pdf

Testing NLP2RDF

I commited in EulerGUI a sample (Scala) code NLP2RDF calling a NLP2RDF web service for parsing, according to this Jena sample : http://nlp2rdf.org/tutorials/tutorial-how-to-call-a-nif-webservice-with-your-favorite-semweb-library#toc-jena

The sentence is :

"My favorite actress is Natalie Portman!"

The N3 result is :

penn:VBZ
      a       owl:Thing .

penn:NN
      a       owl:Thing .

nif:offset_12_19
      a       sso:Word , str:String ;
      sso:lemma "actress" ;
      sso:oliaLink penn:NN ;
      sso:posTag "NN" ;
      sso:stem "actress" ;
      str:anchorOf "actress" ;
      str:referenceContext
              nif:offset_0_39 .

nif:offset_0_2
      a       sso:Word , str:String ;
      sso:lemma "my" ;
      sso:oliaLink penn:PRPpossessive ;
      sso:posTag "PRP$" ;
      sso:stem "my" ;
      str:anchorOf "My" ;
      str:referenceContext
              nif:offset_0_39 .

penn:fullStop
      a       owl:Thing .

nif:offset_23_30
      a       sso:Word , str:String ;
      sso:lemma "Natalie" ;
      sso:oliaLink penn:NNP ;
      sso:posTag "NNP" ;
      sso:stem "natali" ;
      str:anchorOf "Natalie" ;
      str:referenceContext
              nif:offset_0_39 .

penn:NNP
      a       owl:Thing .

nif:offset_0_39
      a       sso:Sentence , str:String , str:Context ;
      str:anchorOf "My favorite actress is Natalie Portman!" ;
      str:referenceContext
              nif:offset_0_39 .

penn:PRPpossessive
      a       owl:Thing .

nif:offset_38_39
      a       sso:Word , str:String ;
      sso:lemma "!" ;
      sso:oliaLink penn:fullStop ;
      sso:posTag "." ;
      sso:stem "!" ;
      str:anchorOf "!" ;
      str:referenceContext
              nif:offset_0_39 .

nif:offset_3_11
      a       sso:Word , str:String ;
      sso:lemma "favorite" ;
      sso:oliaLink penn:JJ ;
      sso:posTag "JJ" ;
      sso:stem "favorit" ;
      str:anchorOf "favorite" ;
      str:referenceContext
              nif:offset_0_39 .

penn:JJ
      a       owl:Thing .

nif:offset_20_22
      a       sso:Word , sso:StopWord , str:String ;
      sso:lemma "be" ;
      sso:oliaLink penn:VBZ ;
      sso:posTag "VBZ" ;
      sso:stem "i" ;
      str:anchorOf "is" ;
      str:referenceContext
              nif:offset_0_39 .

nif:offset_31_38
      a       sso:Word , str:String ;
      sso:lemma "Portman" ;
      sso:oliaLink penn:NNP ;
      sso:posTag "NNP" ;
      sso:stem "portman" ;
      str:anchorOf "Portman" ;
      str:referenceContext
              nif:offset_0_39 .

str:referenceContext
      a       owl:ObjectProperty .

str:Context
      a       owl:Class .

Gil is a NLP specialist working for Tagmatica.

@prefix penn:    <http://purl.org/olia/penn.owl#> .
@prefix topic:   <http://nlp2rdf.lod2.eu/schema/topic/> .
@prefix olia_system:  <http://purl.org/olia/system.owl#> .
@prefix error:   <http://nlp2rdf.lod2.eu/schema/error/> .
@prefix nif:     <http://nlp2rdf.lod2.eu/nif/> .
@prefix sso:     <http://nlp2rdf.lod2.eu/schema/sso/> .
@prefix olia-top:  <http://purl.org/olia/olia-top.owl#> .
@prefix stanford:  <http://purl.org/olia/stanford.owl#> .
@prefix olia:    <http://purl.org/olia/olia.owl#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix str:     <http://nlp2rdf.lod2.eu/schema/string/> .
@prefix xsd:     <http://www.w3.org/2001/XMLSchema#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix brown:   <http://purl.org/olia/brown.owl#> .
@prefix penn-syntax:  <http://purl.org/olia/penn-syntax.owl#> .

nif:offset_32_35
      a       sso:Word , sso:StopWord , str:String ;
      sso:lemma "for" ;
      sso:oliaLink penn:IN ;
      sso:posTag "IN" ;
      sso:stem "for" ;
      str:anchorOf "for" ;
      str:referenceContext
              nif:offset_0_46 .

nif:offset_24_31
      a       sso:Word , str:String ;
      sso:lemma "work" ;
      sso:oliaLink penn:VBG ;
      sso:posTag "VBG" ;
      sso:stem "work" ;
      str:anchorOf "working" ;
      str:referenceContext
              nif:offset_0_46 .

nif:offset_0_3
      a       sso:Word , str:String ;
      sso:lemma "Gil" ;
      sso:oliaLink penn:NNP ;
      sso:posTag "NNP" ;
      sso:stem "gil" ;
      str:anchorOf "Gil" ;
      str:referenceContext
              nif:offset_0_46 .

penn:VBZ
      a       owl:Thing .

nif:offset_36_45
      a       sso:Word , str:String ;
      sso:lemma "Tagmatica" ;
      sso:oliaLink penn:NNP ;
      sso:posTag "NNP" ;
      sso:stem "tagmatica" ;
      str:anchorOf "Tagmatica" ;
      str:referenceContext
              nif:offset_0_46 .

penn:NN
      a       owl:Thing .

penn:fullStop
      a       owl:Thing .

penn:NNP
      a       owl:Thing .

nif:offset_7_8
      a       sso:Word , sso:StopWord , str:String ;
      sso:lemma "a" ;
      sso:oliaLink penn:DT ;
      sso:posTag "DT" ;
      sso:stem "a" ;
      str:anchorOf "a" ;
      str:referenceContext
              nif:offset_0_46 .

penn:VBG
      a       owl:Thing .

nif:offset_9_12
      a       sso:Word , str:String ;
      sso:lemma "NLP" ;
      sso:oliaLink penn:NNP ;
      sso:posTag "NNP" ;
      sso:stem "nlp" ;
      str:anchorOf "NLP" ;
      str:referenceContext
              nif:offset_0_46 .

nif:offset_45_46
      a       sso:Word , str:String ;
      sso:lemma "." ;
      sso:oliaLink penn:fullStop ;
      sso:posTag "." ;
      sso:stem "." ;
      str:anchorOf "." ;
      str:referenceContext
              nif:offset_0_46 .

nif:offset_13_23
      a       sso:Word , str:String ;
      sso:lemma "specialist" ;
      sso:oliaLink penn:NN ;
      sso:posTag "NN" ;
      sso:stem "specialist" ;
      str:anchorOf "specialist" ;
      str:referenceContext
              nif:offset_0_46 .

penn:IN
      a       owl:Thing .

nif:offset_4_6
      a       sso:Word , sso:StopWord , str:String ;
      sso:lemma "be" ;
      sso:oliaLink penn:VBZ ;
      sso:posTag "VBZ" ;
      sso:stem "i" ;
      str:anchorOf "is" ;
      str:referenceContext
              nif:offset_0_46 .

str:referenceContext
      a       owl:ObjectProperty .

str:Context
      a       owl:Class .

penn:DT
      a       owl:Thing .

nif:offset_0_46
      a       sso:Sentence , str:String , str:Context ;
      str:anchorOf "Gil is a NLP specialist working for Tagmatica." ;
      str:referenceContext
              nif:offset_0_46 .

Planner programs

http://en.wikipedia.org/wiki/Planner_(programming_language)

http://docs.jboss.org/drools/release/5.5.0.Final/drools-planner-docs/html_single/index.html

http://drools.46999.n3.nabble.com/What-s-the-difference-between-Drools-and-other-constraints-solvers-td4019299.html

2013-01-12

The property skos:subject is a sub-property of dc:subject.

Scala fold operator

Discovered in http://www.artima.com/pins1ed/working-with-lists.html

scala> val words = List("the", "quick", "brown", "fox")
words: List[String] = List(the, quick, brown, fox)

scala> words map (_.length)
res4: List[Int] = List(3, 5, 5, 3)

scala> words map (_.toList.reverse.mkString)
res5: List[String] = List(eht, kciuq, nworb, xof)

scala> words filter (_.length == 3)
res6: List[String] = List(the, fox)

scala> ("" /: words) (_ +" "+ _)
res7: String = " the quick brown fox"

Problems with SKOS RDF definition in EulerGUI

The official URI : http://www.w3.org/2004/02/skos/core#

redirects to : http://www.w3.org/TR/skos-reference/skos.rdf

and we get this in the console:

HTTP response Code: 303
See Other
redirect : getHeaderField("Location") http://www.w3.org/TR/skos-reference/skos.rdf redirectCount: 1
SourceFactory.makeN3URLConnection(): http://www.w3.org/TR/skos-reference/skos.rdf
HTTP response Code: 301
Moved Permanently
SourceFactory.addSource(): new URL: http://www.w3.org/TR/skos-reference/skos.rdf
[ERROR] - 2013-01-12 12:42:05,470 [addN3SourceInNewThread http://www.w3.org/2004/02/skos/core#] deductions.runtime.swing.TemporaryFrame (TemporaryFrame.java:<init>:50) 
 TemporaryFrame.TemporaryFrame(): http://www.w3.org/TR/skos-reference/skos.rdf is HTML
and HTML is not interpretable as RDF.

EulerGUI bug or serveur issue ?

Server maybe ; content type is :

text/html; charset=iso-8859-1

But this works :

wget --header='Accept: application/rdf+xml, text/xml' -O- --save-headers http://www.w3.org/TR/skos-reference/skos.rdf |less
 ...
Content-Type: application/rdf+xml; qs=0.9

So the header sent by EulerGUI is maybe wrong or misleading :

"text/n3" + ", application/n3" + ", text/rdf+n3" + ", text/turtle" + 
", application/rdf+xml, text/xml" + 
", text/plain" + 
", text/xhtml" + 
", text/html"

To test : GRASP, FRED ...

http://anchakor.github.com/GRASP/

https://github.com/Anchakor

Thesis : mud.cz/sw/GRASP_thesis.pdf

Testing SQUALL on Debian 6.0.6

Difficult to run Ubuntu 2012.10 version on Debian 6.0.6 :

squall2sparql: /lib/libc.so.6: version `GLIBC_2.14' not found (required by squall2sparql)

Run any library or software without human action

Be able to run any library or software without human action implies : download, possibly build and get dependencies, find arguments or create web service call, create input file, possibly link to existing application, etc.

There is also the issue of finding an application according to semantic criteria.

This is particularly important in the perspective of AGI, because an AGI agent would like to try different algorithms, and also use existing libraries to extends its capabilities regarding GUI, network, data sources, networking, ...

Rebuilding opencog

cd ~/src/opencog/bin/
make
make test
# errors !!!
opencog/server/cogserver -c opencog/lib/opencog.conf 
Listening on port 17001

and in another console:


telnet localhost 17001
help
scm

Now, refering to http://wiki.opencog.org/w/Cookbook , I enter the 3 LISP blocks of data. stv means "simple truth values". This command lists the data:

(cog-incoming-set (ConceptNode "artist"))

A technical overview of the project, with many links : http://wiki.opencog.org/w/About_OpenCog

AtomSpace is what I would call the (rich) metomodel of OpenCog.

2013-01-11

<jmvanel> Hi all

<jmvanel> 40Gb in one file in eXist , no problem ?

<jmvanel> what would be the load time ?

http://activate-framework.org/get-started/

COMMIT : FEATURE : in button add N3 Source from URL, understand standard prefixes, e.g. dbpedia:Jimi_Hendrix ( use first project prefixes, then try EulerGUI internal well knows prefixes)

new snapshot !

EulerGUI Problem on Windows

When clicking on eulergui-add-uri-to-project in editor

java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, C:\Users\emmanuel\.eulergui\n3_cache\owl-subclass-assertions-to-rules.n3_4598956369806187845.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, C:\Users\emmanuel\.eulergui\n3_cache\variableSubstitution.n3_992525031694713770.n3, 
--wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, C:\Users\emmanuel\.eulergui\n3_cache\swrl-n3-rules.n3_4468179446289387811.n3, "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3", "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3", "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3", 
"file://C:\Users\emmanuel\AppData\Local\Temp\eg-8110989493576146573.n3", --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3, C:\Users\emmanuel\.eulergui\n3_cache\swrl-n3-rulesQ.n3_711187949712486807.n3, 
--query, "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3"]
at n3_project.helpers.EyeHelper.reasonExternalProlog(EyeHelper.java:61)
at eulergui.project.Project.reasonExternalProlog(Project.java:554)
at eulergui.gui.tools.SWRLTranslator.runTranslatorProject(SWRLTranslator.java:112)
at eulergui.gui.tools.SWRLTranslator.n3SourceAdded(SWRLTranslator.java:55)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(ProjectChangeSupport.scala:71)
at eulergui.project.ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(ProjectChangeSupport.scala:71)
at scala.collection.mutable.LinkedHashSet.foreach(LinkedHashSet.scala:87)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.scala:71)
at eulergui.project.Project.addN3Source(Project.java:333)
at eulergui.project.Project.addN3Source(Project.java:312)
at eulergui.project.SourceFactory.addSource(SourceFactory.scala:156)
at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)

Probably solved ...

2013-01-10

http://www.swi-prolog.org/build/unix.html

Measuring eye, accelerate it

Tests of --yabc

I confirm (of course) Jos' assertions. The inference (reasoning) time remains constant, and the networking time (mostly including compiling Prolog and N3 rules bases) is greatly reduced.

I see that --yabc is a way to generate an executable that includes both pre-compiled Prolog and N3 rules bases, including rules and facts.

# single (ordinary) run

% eye --swipl --nope test-facts.n3 test-relations-100000.n3 --query test-query.n3 
Id: euler.yap 5877 2013-01-06 18:30:06Z josd
SWI-Prolog 6.3.7 (x86_64-linux): Jan 11 2013, 10:15:24
starting 113 [msec cputime] 112 [msec walltime]
GET file:///home/jmv/src/eulersharp/trunk/2009/12dtb/test-facts.n3 SC=2
GET file:///home/jmv/src/eulersharp/trunk/2009/12dtb/test-relations-100000.n3 SC=300001
GET file:///home/jmv/src/eulersharp/trunk/2009/12dtb/test-query.n3 SC=1
networking 56625 [msec cputime] 78949 [msec walltime]
#Processed by Id: euler.yap 5877 2013-01-06 18:30:06Z josd
#eye --swipl --nope test-facts.n3 test-relations-100000.n3 --query test-query.n3

@prefix : <http://eulersharp.sourceforge.net/2009/12dtb/test#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix var: <http://localhost/var#>.
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
@prefix r: <http://www.w3.org/2000/10/swap/reason#>.
@prefix n3: <http://www.w3.org/2004/06/rei#>.

:TestVariable a :A2.

TC=299999 TP=599998 BC=0 BP=300000 PM=0 CM=0 FM=0 AM=0
#ENDS 18308 [msec] TC=299999 TP=599998 BC=0 BP=300000 PM=0 CM=0 FM=0 AM=0
reasoning 18308 [msec cputime] 18376 [msec walltime]

# make an image

% eye --swipl --nope --yabc /tmp/image test-facts.n3 test-relations-100000.n3
Id: euler.yap 5877 2013-01-06 18:30:06Z josd
SWI-Prolog 6.3.7 (x86_64-linux): Jan 11 2013, 10:15:24
starting 113 [msec cputime] 112 [msec walltime]
GET file:///home/jmv/src/eulersharp/trunk/2009/12dtb/test-facts.n3 SC=2
GET file:///home/jmv/src/eulersharp/trunk/2009/12dtb/test-relations-100000.n3 SC=300001
networking 56041 [msec cputime] 78796 [msec walltime]

# single run using the image

/tmp/image -- --query test-query.n3
Id: euler.yap 5877 2013-01-06 18:30:06Z josd
SWI-Prolog 6.3.7 (x86_64-linux): Jan 11 2013, 10:15:24
starting 644 [msec cputime] 641 [msec walltime]
GET file:///home/jmv/src/eulersharp/trunk/2009/12dtb/test-query.n3 SC=1
networking 251 [msec cputime] 270 [msec walltime]
#Processed by Id: euler.yap 5877 2013-01-06 18:30:06Z josd
#eye -- --query test-query.n3

@prefix : <http://eulersharp.sourceforge.net/2009/12dtb/test#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix var: <http://localhost/var#>.
@prefix e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#>.
@prefix r: <http://www.w3.org/2000/10/swap/reason#>.
@prefix n3: <http://www.w3.org/2004/06/rei#>.

:TestVariable a :A2.

TC=299999 TP=599998 BC=0 BP=300000 PM=0 CM=0 FM=0 AM=0
reasoning 18248 [msec cputime] 18376 [msec walltime]

#ENDS 18248 [msec] TC=299999 TP=599998 BC=0 BP=300000 PM=0 CM=0 FM=0 AM=0

Response by Jos

Hi Jean-Marc,

This was the topic of much work during the past 6 months and I can state that we have 1/ and 3/ realized via the --yabc switch.

Here is an example using swipl:

# single run

$ eye --swipl --nope http://eulersharp.sourceforge.net/2009/12dtb/test-facts.n3 http://eulersharp.sourceforge.net/2009/12dtb/test-relations-100000.n3 --query http://eulersharp.sourceforge.net/2009/12dtb/test-query.n3 > /dev/null
Id: euler.yap 5877 2013-01-06 18:30:06Z josd
SWI-Prolog 6.3.7 (x86_64-linux): Dec 25 2012, 20:30:22
starting 95 [msec cputime] 215 [msec walltime]
GET http://eulersharp.sourceforge.net/2009/12dtb/test-facts.n3 SC=2
GET http://eulersharp.sourceforge.net/2009/12dtb/test-relations-100000.n3 SC=300001
GET http://eulersharp.sourceforge.net/2009/12dtb/test-query.n3 SC=1
networking 36014 [msec cputime] 54323 [msec walltime]
reasoning 10608 [msec cputime] 10608 [msec walltime]

# make an image

$ eye --swipl --yabc /tmp/image --nope http://eulersharp.sourceforge.net/2009/12dtb/test-facts.n3 http://eulersharp.sourceforge.net/2009/12dtb/test-relations-100000.n3
Id: euler.yap 5877 2013-01-06 18:30:06Z josd
SWI-Prolog 6.3.7 (x86_64-linux): Dec 25 2012, 20:30:22
starting 69 [msec cputime] 68 [msec walltime]
GET http://eulersharp.sourceforge.net/2009/12dtb/test-facts.n3 SC=2
GET http://eulersharp.sourceforge.net/2009/12dtb/test-relations-100000.n3 SC=300001
networking 36083 [msec cputime] 56557 [msec walltime]

# single run using the image

$ /tmp/image -- --query
http://eulersharp.sourceforge.net/2009/12dtb/test-query.n3 > /dev/nullId: euler.yap 5877 2013-01-06 18:30:06Z josdSWI-Prolog 6.3.7 (x86_64-linux): Dec 25 2012, 20:30:22starting 405 [msec cputime] 399 [msec walltime]
GET http://eulersharp.sourceforge.net/2009/12dtb/test-query.n3 SC=1networking 140 [msec cputime] 191 [msec walltime]reasoning 10821 [msec cputime] 10821 [msec walltime]

So you can see that the networking time is improved from 54323 msec to 191 msec which is 284 times. However, the starting time is now a bit slower, from 215 msec to 399 msec.

This is a non stable feature for the YAP windows version of EYE.

Kind Regards,

Tests of --yabc

CONCLUSION : Not really working with SWI-Prolog 5.10.4 !

# single (ordinary) run

cd ~/src/eulersharp/trunk/2009/12dtb
eye --swipl --nope test-query.n3 test-relations-100000.n3 --query test-query.n3 
Id: euler.yap 5877 2013-01-06 18:30:06Z josd
SWI-Prolog 5.10.4 (amd64): Aug  8 2012, 16:04:40
 ...
networking 54250 [msec cputime] 73285 [msec walltime]
 ...
reasoning 1280 [msec cputime] 1299 [msec walltime]

eye --swipl --nope --yabc /tmp/image test-facts.n3 test-relations-100000.n3  
 ...
networking 55130 [msec cputime] 72990 [msec walltime]

# single run using the image

/tmp/image -- --query test-query.n3

2013-01-09

Ideas for intelligent agents

Measuring eye, accelerate it

I use the graph.axiom.n3 rule base for measurements .

% cd ~/src/eulersharp/trunk/2003/03swap/
% time /tmp/eye/linux/bin/yap -l /tmp/eye/euler.yap -g main -- --nope graph.axiom.n3 rpo-rules.n3 --query graph.filter.n3
 ...
% YAP execution halted
/tmp/eye/linux/bin/yap -l /tmp/eye/euler.yap -g main -- --nope graph.axiom.n3  0,08s user 0,02s system 96% cpu 0,104 total

I see 2 factors of progress:

  1. the Eye prolog rule base could be pre-compiled
  2. an instance of the Yap engine could stay in memory, and the client application could call it via HTTP or sockets. More probably HTTP, as my current target for client application is .Net and Windows.
  3. the N3 prolog rule base could be pre-compiled

Regarding point 1. , this paragraph in Yap doc. is not clear enough :

http://www.dcc.fc.up.pt/~vsc/Yap/documentation.html#Saving

The difference between save_program and save is not clear.

However I see here how to restore a pre-compiled saved state :

http://www.dcc.fc.up.pt/~vsc/Yap/documentation.html#Run

I use save_program/2 to save:

% /tmp/eye/linux/bin/yap -l /tmp/eye/euler.yap
...
save_program("jmv.save", main).

% ls -l jmv.save
-rwxr-xr-x 1 jmv jmv 2008450  9 janv. 18:47 jmv.save

Then reload:

% time /tmp/eye/linux/bin/yap jmv.save  -- --nope graph.axiom.n3 rpo-rules.n3 --query graph.filter.n3
 ...
/tmp/eye/linux/bin/yap jmv.save -- --nope graph.axiom.n3 rpo-rules.n3 --query  0,02s user 0,01s system 91% cpu 0,026 total

Regarding point 2. , it seems that the paragraph "Just running Euler via RESTfull webservice" in

http://eulersharp.sourceforge.net/README

is now obsolete.

Regarding point 3, I see nothing special in the EYE documentation.

CONCLUSION: a 4 time acceleration by pre-compiling Eye itself ! And with some work (point 2), it's possible to gain another large factor.

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

Misc.

gnome-disks

<jmv> port 3010 is active; how to see it in nmap :

nmap -p 3030 -T4 oem-laptop

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

Andy Seaborne's Fuseki explanations :

The current accept negotiation in Fuseki is based on

application/rdf+xml, text/turtle, application/turtle, application/x-turtle, application/n-triples, text/plain

that's the set checked, respecting q= against the Accept header.

It does not include text/n3. That could be added but it will be treated as Turtle.

Turtle is not a strict subset of N3 currently. The prefix names are broader that N3 defines, and there are differences in the treatment of numbers - small things but they break data exchange.

Generally in Jena, N3 is treated as Turtle.

"Accept: text/turtle" is to be preferred.

r.write(byteArrayOutputStream, "TTL");

There is no strict, compliant N3 parser that covers the beyond-Turtle and beyond RDF features of N3. The "beyond-Turtle but still RDF" features are just a matter of writing the parser; the "beyond RDF" features are fundamental change to Jena (formulae/graph literals). They are not interoperable with other systems.

You can't create N3-beyond-RDF with CONSTRUCT.

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

jmvanel> new doc in eulergui/html/server-sparql-dbpedia.html

<jmvanel> Setting up a DBPedia SPARQL mirror with Jena

bigdata GettingStarted

It's based on Sesame API :( , not Jena .

Hopefully this could be used to access Sesame or bigdata repository through Jena API :

http://sourceforge.net/projects/jenasesamemodel/

JSM conforms to the Jena Model API. Internally, it operates on a Sesame local repository.

( referenced in http://jena.apache.org/about_jena/contributions.html )

<jmvanel> How could my EulerGUI project be referenced in http://jena.apache.org/about_jena/contributions.html ?

2013-01-07

<rszeno> jmvanel, something you might be interested http://anchakor.github.com/GRASP/

<rszeno> see http://chatlogs.planetrdf.com/swig/2013-01-08.html#T19-32-30

<jmvanel> merci

Idea for Semantic Web

A tool for facilitating creation of a N3/Turtle data file format.

<rszeno> imo try/catch/finaly is a stupid invention

<jmvanel> I throw sugar blocks and I catch them in mugs :)

<jmvanel> 1 meter or more :)

<rszeno> yes, but this cps

<jmvanel> cps = causes problems of stupitidy ?

<rszeno> no, continuation passing style, :)

<rszeno> exceptions are a primitive form of cps

<jmvanel> haaaaaa

<rszeno> :)

http://en.wikipedia.org/wiki/Continuation-passing_style

FIX Problems after Revision 3412

COMMIT

in table view, for URI ( that is, RDF resources), a cell value is a button that adds the URI to current project

(makes sense for Browsable graphs servers like dbpepia, or ontology URI's )

(N3SourceTableView.java)

I wonder if there is a LOD about the victims in Syria .

gocr-tk depends on xli and ???, but that's not declared in Debian package

Adding a JButton to the Cells of a Jtable

http://www.devx.com/getHelpOn/10MinuteSolution/20425

Thread [AWT-EventQueue-0] (Suspended (exception NullPointerException))
NameSpace.getNameResolver(String) line: 1510
BSHAmbiguousName.getName(NameSpace) line: 45
BSHAmbiguousName.toObject(CallStack, Interpreter, boolean) line: 59
BSHAllocationExpression.objectAllocation(BSHAmbiguousName, BSHArguments, CallStack, Interpreter) line: 91
BSHAllocationExpression.eval(CallStack, Interpreter) line: 62
BSHPrimaryExpression.eval(boolean, CallStack, Interpreter) line: 102
BSHPrimaryExpression.eval(CallStack, Interpreter) line: 47
Interpreter.eval(Reader, NameSpace, String) line: 644
Interpreter.eval(String, NameSpace) line: 738
Interpreter.eval(String) line: 727
BeanShell$MyBeanShellFacade(BeanShellFacade<T>)._eval(T, NameSpace, String) line: 148
BeanShell$MyBeanShellFacade(BeanShellFacade<T>).eval(T, NameSpace, String) line: 113
BeanShell.eval(View, NameSpace, String) line: 369
ServiceManager$Descriptor.getInstance() line: 295
ServiceManager.getService(String, String) line: 238
ServiceManager$ServiceFoldHandlerProvider.getFoldHandler(String) line: 348
FoldHandler.getFoldHandler(String) line: 131
Buffer(JEditBuffer).propertiesChanged() line: 1411
Buffer.propertiesChanged() line: 988
Buffer(JEditBuffer).setMode(Mode) line: 1825
Buffer(JEditBuffer).setMode(String) line: 1802
TextEditor.displayEditor(ProjectGUI, N3Source) line: 351
EditorManagement.openJavaEditor(N3Source) line: 163
EditorManagement.doOpenEditor(N3Source) line: 130
EditorManagement.reallyDoOpenEditor(ProjectGUI, N3Source) line: 83
EditorManagement$1.actionPerformed(ActionEvent) line: 52
JButton(AbstractButton).fireActionPerformed(ActionEvent) line: 2018
AbstractButton$Handler.actionPerformed(ActionEvent) line: 2341
DefaultButtonModel.fireActionPerformed(ActionEvent) line: 402
DefaultButtonModel.setPressed(boolean) line: 259
BasicButtonListener.mouseReleased(MouseEvent) line: 252
AWTEventMulticaster.mouseReleased(MouseEvent) line: 289
JButton(Component).processMouseEvent(MouseEvent) line: 6505
JButton(JComponent).processMouseEvent(MouseEvent) line: 3321
JButton(Component).processEvent(AWTEvent) line: 6270
JButton(Container).processEvent(AWTEvent) line: 2229
JButton(Component).dispatchEventImpl(AWTEvent) line: 4861
JButton(Container).dispatchEventImpl(AWTEvent) line: 2287
JButton(Component).dispatchEvent(AWTEvent) line: 4687
LightweightDispatcher.retargetMouseEvent(Component, int, MouseEvent) line: 4832
LightweightDispatcher.processMouseEvent(MouseEvent) line: 4492
LightweightDispatcher.dispatchEvent(AWTEvent) line: 4422
ProjectGUI(Container).dispatchEventImpl(AWTEvent) line: 2273
ProjectGUI(Window).dispatchEventImpl(AWTEvent) line: 2719
ProjectGUI(Component).dispatchEvent(AWTEvent) line: 4687
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 723
EventQueue.access$200(EventQueue, AWTEvent, Object) line: 103
EventQueue$3.run() line: 682
EventQueue$3.run() line: 680
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: 87
EventQueue$4.run() line: 696
EventQueue$4.run() line: 694
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 693
EventDispatchThread.pumpOneEventForFilters(int) line: 244
EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 163
EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 151
EventDispatchThread.pumpEvents(int, Conditional) line: 147
EventDispatchThread.pumpEvents(Conditional) line: 139
EventDispatchThread.run() line: 97

2013-01-05

COMMIT

- remove the extra useless table button in the case of a SPARQL SELECT query

- WIP : in table view, URI's will be hyperlinks

Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 327 in ButtonsForN3Source))
ButtonsForN3Source.display(SourceFilesView, N3Source, boolean) line: 327
ButtonsForN3Source.<init>(SourceFilesView, N3Source, boolean) line: 201
SourceFilesView.doAddButtonForFile(N3Source, boolean) line: 112
ProjectGUI_Updater.n3SourceAdded(Project, N3Source) line: 37
ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(ProjectListener) line: 71
ProjectChangeSupport$$anonfun$fireAddN3Source$1.apply(Object) line: 71
LinkedHashSet<A>.foreach(Function1<A,U>) line: 87
ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 71
Project.addN3Source(N3Source, boolean) line: 333
Project.addN3Source(N3Source) line: 312
SPARQLServiceInputAction$1.doInBackground() line: 125
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

Measuring eye

oem-laptop: ~/src/eulersharp/trunk/2003/03swap/ % time /tmp/eye/linux/bin/yap -l /tmp/eye/euler.yap -g main -- --nope graph.axiom.n3 rpo-rules.n3 --query graph.filter.n3
 ...
% YAP execution halted
/tmp/eye/linux/bin/yap -l /tmp/eye/euler.yap -g main -- --nope graph.axiom.n3  0,08s user 0,02s system 96% cpu 0,104 total

EG should send header : Accept-Encoding: gzip

Why wouldn't EG send anyway header : Accept-Encoding: gzip ?

janv. 02 12:55:49 <rszeno>yes,

janv. 02 12:56:39 <jmvanel>It would be a few lines of code to handle ;

wget -O- --save-headers http://downloads.dbpedia.org/3.8/en/mappingbased_properties_en.ttl.bz2 | less
TTP/1.1 200 OK
Date: Fri, 04 Jan 2013 19:44:01 GMT
Server: Apache/2.2.14 (Ubuntu)
Last-Modified: Wed, 25 Jul 2012 13:45:53 GMT
ETag: "3180a57-ae7cf63-4c5a7b2928640"
Accept-Ranges: bytes
Content-Length: 182964067
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: application/x-bzip2

Content-Type: text/turtle
Content-Encoding: bzip2

2013-01-03

Reading Jos' article

Jos' article http://arxiv.org/pdf/1210.4405v2.pdf

Semantic integration and analysis of clinical data

Hong Sun, Kristof Depraetere, Jos De Roo, Boris De Vloed,

Giovanni Mels, Dirk Colaert

SPARQL query

Data Definition Ontology (DDO). We generate DDOs from the local database schemas with a one-to-one

mapping

data flow not clear

we use a query generator using predefined DDO SPARQL query templates to retrieve data from the connected data sources.

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

Found a stupid EG bug on W$ , thanks to Eric.

http://callimachusproject.org/docs/1.0/meeting-notes-tutorial.docbook?view

Negation in Drools

<conan> PeterHilton I found this in a unit test

<conan> rule "create student"

<conan> when

<conan> $student : Person( age < 26, this not isA Student )

<conan> then

<conan> Student s = don( $student, Student.class );

<conan> s.setSchool("Masaryk University");

<conan> update( $student );

<conan> end

<PeterHilton> conan: no - because I switched back to Java-declared beans once I worked out what I was doing wrong there. I didn't really want to use DRL-declared beans.

<PeterHilton> conan: aha, thanks - 'this not isA…' looks like what I need

<conan> https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/factmodel/traits/TraitTest.java

<conan> lots of unit tests to follow there

<conan> drl files are here, https://github.com/droolsjbpm/drools/tree/master/drools-compiler/src/test/resources/org/drools/factmodel/traits

SPARQL & dbPedia : How to cope with multiple properties for the same concept

Probably not very efficient ... should try a BINDING maybe .

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia-owl:  <http://dbpedia.org/ontology/>
PREFIX dbpprop:  <http://dbpedia.org/property/>

SELECT
 (str(?subject) as ?id_event)
 (str(?name) as ?title_event)
 (str(?date) as ?start_event)
 (str(?place) as ?lieux_id)
 (str(?abstract) as ?desc_event)
WHERE {
        ?subject a dbpedia-owl:Event .
     ?subject rdfs:label ?name .
      FILTER ( lang(?name) = "fr" )      ?subject ?place_prop ?place .
      FILTER (
              ?place_prop = dbpedia-owl:place ||
              ?place_prop = dbpedia-owl:location ||
              ?place_prop = dbpedia-owl:territory
      )
      ?subject ?date_prop ?date .
      FILTER (
        ?date_prop = dbpedia-owl:date ||
        ?date_prop = dbpprop:year
      )
      ?subject dbpedia-owl:abstract ?abstract .
      FILTER ( lang(?abstract) = "fr" )
}
LIMIT 3000

2013-01-02

Le sujet de #opencog est : OpenCog, PLN, MOSES, GraphPlanner ... opencog@googlegroups.com for questions not answered here.

add generate_sql_insert.xslt , a generic XSLT transform from a SPARQL SELCT result to SQL INSERT statement.

stackoverflow.com/questions/3627401/gzipinputstream-to-string

http://search.cpan.org/~mirod/XML-Twig-3.42/Twig_pm.slow

dbPedia statistics

PREFIX dbpprop:  <http://dbpedia.org/property/>
SELECT ( count(?date) as ?count_date )
WHERE {
     ?subject dbpprop:year ?date .
}

127588

PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>
SELECT ( count(?date) as ?count_date )
WHERE {
     ?subject dbpedia-owl:date ?date .
}

10566

Berlinale 1984 http://dbpedia.org/resource/34th_Berlin_International_Film_Festival

dbpedia-owl:location is used , not dbpedia-owl:place

Quatrième Guerre anglo-néerlandaise http://dbpedia.org/resource/Fourth_Anglo-Dutch_War

dbpedia-owl:territory is used !!!

Grand Prix automobile d'Europe 2005 http://dbpedia.org/resource/2005_European_Grand_Prix

http://jena.sourceforge.net/ARQ/Tutorial/

2013-01-01

We welcome the opportunity that the Holiday Season offers to say thank you and to wish you a Happy and Prosperous New Year 2013.

IDEA for SPARQL in EulerGUI: I could add a pseudo prefix to hold information about a default endpoint for this query.

David ‏@ziodave

#wordlift is proudly providing a #SPARQL end-point to #WordPress blogs (thanks to #ARC2 https://github.com/semsol/arc2/wiki …) http://yfrog.com/nymfkklj

Retweeté par Dan Brickley

<jmvanel> From zero to machine learning in #R in 150 slides http://j.mp/VwYr85

<jmvanel> Retweeté par Dan Brickley

<jmvanel> Dan is worth following !!

http://www.google.fr/search?q=support+vector+machine

http://www.tristanfletcher.co.uk/SVM%20Explained.pdf

% svn up --force src/main/scala/deductions
Skipped 'src/main/scala/deductions' -- Node remains in conflict
Résumé des conflits :
  Chemins omis : 1
oem-laptop: ~/src/eulergui_test/eulergui/ % svn revert --depth=infinity src/main/scala/          
'src/main/scala/deductions' réinitialisé
'src/main/scala/deductions/runtime' réinitialisé
'src/main/scala/deductions/runtime/package-info.java' réinitialisé
'src/main/scala/deductions/runtime/Java2N3.scala' réinitialisé
'src/main/scala/deductions/runtime/swing' réinitialisé
'src/main/scala/deductions/runtime/swing/DBPediaComboBox.scala' réinitialisé
'src/main/scala/deductions/runtime/ObjectProperties2N3.scala' réinitialisé

Using TDB from the distribution

After nice answer from Andy S. :

I guess you refer to this :

http://www.apache.org/dist/jena/binaries/

but here TDB is not present .

because everything, including TDB, is in the file:

apache-jena-2.7.4.zip

Rather than several distributions, the standalone zip (tar.gz) combines them all.

It's a zip that includes the jena modules, including TDB (not SDB, not Fuseki) and scripts and javadoc and dependent jars.

export PATH=$HOME/src/apache-jena-2.7.4/bin:$PATH
cd ~/data/dbpedia.org_3.8/
bunzip2 labels_en.ttl.bz2
tdbloader2 --loc ../tdb94 labels_en.ttl
 ...
 12:38:28 -- TDB Bulk Loader Finish
 12:38:28 -- 1833 seconds

Lots if warnings and bad IRI 's :

WARN [line: 2632090, col: 1 ] Bad IRI: <http://dbpedia.org/resource/Friuli‑Venezia_Giulia> Code: 56/COMPATIBILITY_CHARACTER in PATH: TODO

<jmvanel> Currently waiting an answer about TDB on users@jena.apache.org mailing list : http://jena.markmail.org/search/#query:+page:1+mid:4jc7ueofjhppwtw3+state:results

Creating a very small TDB database:

$HOME/src/apache-jena-2.7.4/bin/tdbloader2 --loc tdbSmall /home/jmv/src/eulergui/examples/book.n3
 18:40:49 -- TDB Bulk Loader Start
 18:40:49 Data phase
INFO  Load: /home/jmv/src/eulergui/examples/book.n3 -- 2013/01/01 18:40:51 CET
INFO  Total: 12 tuples : 0,25 seconds : 48,78 tuples/sec [2013/01/01 18:40:52 CET]
 18:40:52 Index phase
 18:40:52 Index SPO
 18:40:52 Build SPO
 18:40:53 Index POS
 18:40:53 Build POS
 18:40:55 Index OSP
 18:40:55 Build OSP
 18:40:57 Index phase end
 18:40:57 -- TDB Bulk Loader Finish
 18:40:57 -- 8 seconds

2012-12-31

Just found a bug in EG release candidate ! :(((

<jmvanel> I added the datatype in the SPARQL result table,

<jmvanel> and now there is a NPE

<rszeno> 'found' is a good new, :)

<jmvanel> yes better find it myself !

17:40:08 [SwingWorker-pool-4-thread-5] [error] SwingWorker-pool-4-thread-5: Caused by: java.lang.NullPointerException
17:40:08 [SwingWorker-pool-4-thread-5] [error] SwingWorker-pool-4-thread-5:  at eulergui.project.SPARQLToN3Converter.setColumnsAndDatatypes(SPARQLToN3Converter.java:255)
17:40:08 [SwingWorker-pool-4-thread-5] [error] SwingWorker-pool-4-thread-5:  at eulergui.project.SPARQLToN3Converter.doSelectQuery(SPARQLToN3Converter.java:204)
17:40:08 [SwingWorker-pool-4-thread-5] [error] SwingWorker-pool-4-thread-5:  at eulergui.inputs.N3SourceFromSPARQLSource.doUpdate(N3SourceFromSPARQLSource.java:122)

EulerGUI Revision : Release Candidate

EulerGUI Revision 3402 : uploaded a Release Candidate.

Next release : 1.13 or 2.0 ? depending on migrating to new N3 OWL format for projects

Twitted!

Fixed a bug in #EulerGU related to SPARQL: in the table for SELECT queries, columns can be sorted according to datatype Uploaded http://t.co/ALVBG4Kg

Fixed a bug related to new SPARQL feature: in the displayed table for SELECT queries, columns can be sorted according to datatype (e.g. numerics)

Jena + Freebase dump

Reported by Andy Seaborne

If you want to parse the Freebase dump, try this:

http://people.apache.org/~andy/Freebase20121223/Notes.txt

It takes about 90 minutes on my home desktop machine to fix and parse the data.

To load it, get a very large machine - it has been reported [1] that a previous dump has been loaded into TDB.

Andy

[1] http://lists.freebase.com/pipermail/freebase-discuss/2012-December/010169.html

2012-12-30

back home in Paris

Fixing EulerGUI

Fixing N3 rules from OWL

Thread [main] (Suspended (breakpoint at line 1239 in Project))
Project.addProjectListener(ProjectListener) line: 1239
ProjectGUI.addDefaultProjectListeners(Project) line: 956
ProjectGUI.setProject(Project) line: 949
ProjectGUI.initFromProject(Project) line: 155
ProjectGUI.<init>(Project) line: 146
ProjectGUI.newWindow(Project, boolean) line: 294
ProjectGUI.main(String[]) line: 239

Fails to load correctly:

eg http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3p

Loads correctly:

eg https://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3p

Why ? because cache was considered up-to-date, but actual local file was missing.

Thread [main] (Suspended)
CacheFacade.manageLocalCache(String) line: 53
ProjectFactory.readProjectFromURL(URL) line: 247
ProjectFactory.restoreXMLURL(URL, boolean) line: 229
ProjectFactory.restore(String, boolean) line: 58
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 415
ProjectFactory.restoreAny(URI, boolean) line: 394
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 62
ProjectGUI.main(String[]) line: 228

COMMIT

FIX : in CacheFacade.manageLocalCache() , in some cases it can happen that cacheUptoDate is true, but cachedFile is non existing : then need to download again the the URL

Results :

Tests in error: 
  testNamedDataset(unif.TestTripleStoreTDB): No dataset description for query
  testRDFList(unif.TestTripleStoreTDB): No dataset description for query
  testInsertPlainLiteral(unif.TestTripleStoreTDB): No dataset description for query
  testStoreRetrieveN3file(unif.TestTripleStoreTDB): No dataset description for query
  testSquall(eulergui.inputs.TestSPARQL)

Fixing ACE + OWL

Alas : this page has no origin date; but seems outdated !

wget -O- --save-headers https://www.assembla.com/wiki/show/scala-ide/With_Maven_CLI |less

https://www.assembla.com/wiki/show/scala-ide/With_Maven_CLI

Loaded ontology: Ontology(<file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/simple.ace.n3p>) [Axioms: 1 Logical Axioms: 1]
Exception in thread "main" java.lang.NoSuchMethodError: org.semanticweb.owlapi.model.OWLOntologyStorer.storeOntology(Lorg/semanticweb/owlapi/model/OWLOntology;Lorg/semanticweb/owlapi/io/OWLOntologyDocumentTarget;Lorg/semanticweb/owlapi/model/OWLOntologyFormat;)V
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.saveOntology(OWLOntologyManagerImpl.java:1073)
at eulergui.project.N3SourceFromOWL.convertToN3(N3SourceFromOWL.java:92)
at eulergui.project.N3SourceFromOWL.convertOWLToN3(N3SourceFromOWL.java:77)
at eulergui.project.N3SourceFromACE.convertToN3(N3SourceFromACE.java:29)
at eulergui.project.N3Source.manageN3Cache(N3Source.java:632)
at eulergui.project.N3Source.doUpdate(N3Source.java:434)
at eulergui.project.N3SourceFromRDF.prepare(N3SourceFromRDF.java:72)
at eulergui.project.N3Source.placeInProject(N3Source.java:360)
at eulergui.project.SourceFactory.addSource(SourceFactory.scala:115)
at eulergui.CommandLineArguments.makeProjectFromEulerCommandLine(CommandLineArguments.java:137)
at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:71)
at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:228)

[1]  + exit 1     eulergui examples/simple.ace

2012-12-25

2012-12-24

EulerGUI testing new connector to TDB directory

A SPARQL "service" URI starting with file:/ is now interpreted as a TDB directory.

This should be suggested to the Jena mailing list

file:///home/jmv/data/tdb/

Apparently TDB 0.9.4 inside EulerGUI is not compatible with latest TDB from SVN.

2012-12-23

My thoughts about AGI

importance of software engineering

importance of AGI "education"

----------

https://cwiki.apache.org/confluence/display/MAHOUT/Collections

proxmox : equivalent de vmware , vsphere

SELECT DISTINCT ?x1 WHERE { dbpedia:Buddy_Guy rdfs:label ?x1 . dbpedia:Buddy_Guy rdfs:comment ?x1 . }

Failed tests:   testDoUpdateBoolean(eulergui.inputs.TestSPARQL): contains Junior_Wells
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL): 0 >= 0

Tests run: 202, Failures: 2, Errors: 1, Skipped: 0

2012-12-20

Machine learning use cases

My rhynite prevents me to do anything productive.

<jmvanel> So I search things : "Machine learning use cases"

<jmvanel> never heard about http://mahout.apache.org/

<jmvanel> hehe , Mahout is the first project I see that presents a Doap RDF :

<jmvanel> http://svn.apache.org/repos/asf/mahout/trunk/doap_Mahout.rdf

<jmvanel> We don't have this in EG :((((( : should be generated from the Maven POM

Currently Mahout supports mainly four use cases:

Note that Quickstart presents other use cases:

Failed tests:   testSample(org.apache.mahout.cf.taste.impl.common.SamplingLongPrimitiveIteratorTest)
Tests run: 686, Failures: 1, Errors: 0, Skipped: 1

Big Data

Business

Data

Data Analysis

Data Mining

Data Mining Startups

Machine Learning

What are some potentially highly profitable use cases of data mining and machine learning?

Share

Sign in to read all of Quora.

Sign In with FacebookSign In with Twitter

Connecting helps us surface content that is relevant to you. We'll never post without your permission.

Sign Up with Email

Why do I need to sign in to read answers past the first one?

Quora is a knowledge-sharing community that depends on everyone being able to pitch in when they know something.

Google AdSense and other advertising networks compute probabilities of (not only) clicking on ads - see http://www.infoq.com/presentatio...

Automated Algorithmic trading on Money Markets - set of models pre-computed models are used to place trades in nano seconds. Large % of today's trades are made by computers

Retailers use data to optimize their inventory, marketing activities, product placement, pricing, targeting. See Walmart Supercentre, Amazon, Apple Inc.

Pharmaceutical companies to data mine possible drugs interactions (and many many more)

Movie industry to determine movie releases, consumer targeting, Netflix releases

All are multi-billion dollar businesses.

http://www.skytree.net/why-do-machine-learning-on-big-data/use-cases/

2012-12-19

<jmvanel> right now I'm wondering where in dbpedia dump are the dbpedia-owl:date triples ...

<jmvanel> I'll find out , with a long shell loop :

for f in *.bz2
do
  echo $f
  bzcat $f | grep ontology/date | wc
done

2012-12-18

Setting up a dbPedia mirror with Jena TDB

http://joernhees.de/blog/2010/10/31/setting-up-a-local-dbpedia-mirror-with-virtuoso/

wget -r -np -nd -nc -A'*.ttl.bz2' http://downloads.dbpedia.org/3.8/en/

$TDBROOT/bin/tdbloader2 --loc tdb_dbpedia \
instance_types_en.ttl          labels_en_uris_fr.ttl          mappingbased_properties_en.ttl \
instance_types_en_uris_fr.ttl  long_abstracts_en_uris_fr.ttl  mappingbased_properties_fr.ttl

2012-12-17

by looking at Jos' twits, I found he wrote an article about how he uses Euler

http://arxiv.org/abs/1210.4405

<rszeno> use greasemonkey if you want to clean up google url, :)

Complains about Jena

TODO EulerGUI / SPARQL

2012-12-15

<jmvanel> it's the first time I work with fiber connection , at 5Mb / s :))))

<jmvanel> good for downloading dbpedia !!!

http://downloads.dbpedia.org/3.8/en/

explanations about downloads are here:

http://wiki.dbpedia.org/Downloads38

LANG=fr
wget http://downloads.dbpedia.org/3.8/$LANG/mappingbased_properties_${LANG}.ttl.bz2

<jmvanel> tdb sources are on svn or github ?

<jmvanel> i have a working dir from git://git.apache.org/jena-tdb.git , but the site points to svn !?

http://jena.apache.org/documentation/tdb/tdb_download.html

<jmvanel> ok; indeed svn is more recently updated .

svn co https://svn.apache.org/repos/asf/jena/trunk/jena-tdb/

<jmvanel> it does not seem that "tdb" can load triples from standard input, at least with the commands

<jmvanel> But I see promising methods in com.hp.hpl.jena.tdb.TDBLoader

<jmvanel> I found a method to load from a stream

public void loadGraph(GraphTDB graph, InputStream in)

<jmvanel> however TestLoader has no test for inputstream, and it seems to load only N-Triples

http://jena.apache.org/documentation/tdb/java_api.html

This is very clear :

http://stackoverflow.com/questions/6981467/jena-arq-difference-between-model-graph-and-dataset

http://maven.apache.org/archetype/maven-archetype-plugin/usage.html

mvn archetype:generate

2012-12-14

contact AGI 2012

It was a fascinating conference in Oxford on Artificial General Intelligence #AGI http://agi-conference.org/2012/

2012-12-13

OpenCog : running

Starting : finally succeeded by running in directory bin/ :

oem-laptop: ~/src/w/opencog/bin/ % opencog/server/cogserver -c opencog/lib/opencog.conf 
Listening on port 17001
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::system::system_error> >'
  what():  close: Mauvais descripteur de fichier
zsh: abort (core dumped)  opencog/server/cogserver -c /home/jmv/src/w/opencog/lib/opencog.conf

Meeting Drools' developers

Mark Proctor & salaboy (Mauricio)

Drools core will be redesigned; it will be possible to reuse persistance engine, not only JPA; neo4j is considered

My use cases for machine learning with OpenCog

Hi all

Here some of my use cases that I want to try with OpenCog, or other machine learning tools :

- 1. music suggestions

- 2 contact management suggestions,

- 3 code and project analysis

Point 1, music suggestions is much like what Youtube, Deezer, etc do. Except that it will also select among the MP3's I have locally, and have knowledge of the tunes I heard with timestamp of hearing. As a bonus, if it could explain why it recommends a tune it would be nice.

Point 2, contact management suggestions, is a tool to help me manage my mails, contacts and agenda. My data are retrieved using connectors for IMAP and Google API's for agenda and contacts. Then the system should be able to make suggestions of mails to send, especially to business contacts.

Note that for point 2, the past mails are a training data. One advantage of this use case for AGI/AI is that the agent can do a little bit, like just suggesting a mail recipient at a particular moment, or more and more: suggesting subject, body, more and more accurately. The agent will compare its suggestions with what the human actually does. The agent can improve its understanding of mails and recipient categories by learning also from the web, dbPedia, etc.

Point 3, code and project analysis, is more ambitious. The intelligent agent should analyse test, code samples, examples, documentation, from an open source repository, to extract as much semantics as possible. I see mainly two domains of analysis :

- the application domain and features, expressed as dbPedia concepts, possibly further refined;

- from tests, code samples, and examples, grok a an understanding of API (Application Programming Interface) to use the application, library or framework

If API understanding is achieved, then it should be possible to generate code to connect a library to an application being developed. Think of a widget displaying a calendar filled with events. Code must be developed to transmit events back and forth between the application and the calender.

Note that for point 2, test, code samples, examples are a training data.

<jmv_> remind to mail to important contacts after some time, infer that some contacts are important by the frequence of mails I send , etc ...

---

mail #2

Input connector into OpenCog for Semantic Web data

For all the projects considered in preceding mail, it would be nice to have an input connector into OpenCog for Semantic Web data like dbPedia, and other Linked Open Data (LOD) [1] services. This means reading RDF and/or Turtle files or URL's, plus doing SPARQL [2] queries. The rationale is that the semantics is clean in these data sources, contrary to spreadsheet or relational databases, plus the growing quantity of data available, like government data [3] and LOD.

I saw that OpenCog has already done work for compatibility with Semantic Web ( in opencog/nlp/triples ), but here the accent is on data. An important thing is that all the identifiers in Semantic Web are URI's, not plain alphanumeric strings. I hope this is not a problem in OpenCog.

[1] Linked Open Data (LOD) http://linkeddata.org/

[2] SPARQL ???????

[3] government data : http://data.gov , http://data.gov.uk , http://data.gouv.fr , ?????????? ...

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

Additional details:

I can master the choice mechanism, and not delegate it to an opaque provider.

use rules to manage stuff like my contacts in relation with the mails I sent more or less recently :

2012-12-12

"Laurent ORSEAU" <Laurent.ORSEAU@agroparistech.fr>

jBPM5 - The Evolution of BPM Systems

at "The Skills Matter eXchange"; 116-120 Goswell Road - EC1V 7DP, London

demo: software release process

Q: compare with BonitaSoft ?

jBPM console

"we cannot have 2 release process"

jbpm.org

salaboy.com

ilesteban.????

G1 : new garbage collector in JVM

C2B2

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

Idea for ATTEMPTO : I could train a machine learner with a corpus of ACE texts, and afterwards it could also recognize sentences not matching the syntax.

TODO in EulerGUI doc.:

article on N3 as an all-purpose data exchange format

article on ????

Explore the OpenCog ecosystem

exploring OpenCog : my bug report : https://github.com/opencog/opencog/issues/61

The base is AtomSpace, a knowledge base with rich meta model.

Then there is PLN, a probabilistic reasonner and learner.

http://wiki.opencog.org/w/PLN

One way to learn is to evolve a program; here comes MOSES

Meta-Optimizing Semantic Evolutionary Search

http://wiki.opencog.org/w/MOSES

MOSES generates code in LISP, in a canonical form.

The code in launchpad has apparently all been migrated to GitHub :

http://bazaar.launchpad.net/~opencog-dev/opencog/trunk/files/head:/opencog/learning/moses/

The code is well organized; there a summary in opencog/README.

There is some Semantic Web stuff:

opencog/nlp/triples/README

Linas Vepstas blog (not continued) : http://blog.opencog.org/author/linasv/

http://wiki.opencog.org/w/OpenCog_shell

% bin/opencog/server/cogserver -c ../lib/opencog.conf 
Listening on port 17001

Alas, on client side it does not work as expected:

% telnet localhost 17001
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape characte is '^]'.
opencog> help
command "help" not found
opencog> agents-list
command "agents-list" not found
opencog> list
command "list" not found
opencog> scm
command "scm" not found

sudo apt-get install rlwrap

http://wiki.opencog.org/w/OpenCog_shell

and

http://wiki.opencog.org/w/Cookbook

are not hyperlinked at the first level in the wiki :( .

Links

Eray : http://www.academia.edu/746107/Teraflop-scale_Incremental_Machine_Learning

http://en.wikipedia.org/wiki/Intelligent_agent

https://www.vizify.com/jos-de-roo/year-on-twitter

Semantic integration and analysis of clinical data

Hong Sun, Kristof Depraetere, Jos De Roo, Boris De Vloed, Giovanni Mels, Dirk Colaert

(Submitted on 5 Oct 2012 (v1), last revised 24 Oct 2012 (this version, v2))

http://arxiv.org/abs/1210.4405

http://www.carboncopies.org/

2012-12-11

https://code.google.com/p/timemap/wiki/JsonFormat

http://www.aaai.org/ojs/index.php/aimagazine/article/view/2426

Eray's paper :

http://www.academia.edu/746107/Teraflop-scale_Incremental_Machine_Learning

AGI 2012 4th day

http://www.futuretech.ox.ac.uk/

<jmv_> had a small discussion with with Ben Goertzel ; he liked my use cases :)

<jmv_> I'd like to try , OpenCog with my use cases

rszeno> nice, :) i suppose opencog export owl

<jmv_> probably no :(

<jmv_> I'll ask , also about import OWL + rules

Autonomous technology , Steve Omohundro

Self aware Software

US drone, Iron dome ( Israel ); cyber warfare; self driving cars;

rational

aproximately rational agent

-----------

WBE == Whole Brain Emulation

Ethics and impact of brain emulation

Trends and scenarios in AI, Andrzej Skolimowski

foresight != forecast

boring !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Predicting AGI

"AI winter"

65 paper by Dreyfus "computers can't cope with ambiguity"

many AGI designs have the potential unexpected dangerous behavior

AGI & ethics

"footbridge" dilemna http://en.wikipedia.org/wiki/Trolley_problem

frame problem for morality

Pannel discussion

"strong physicalism"

http://www.carboncopies.org/

J. Bach:

mind == reward maximizer? flight of birds, feathers

"virtual robots"

productive benchmarks : benchmark for now

development perspective; funding

children need a rich environment, "ecchtract" information

common platform, practical applications, genius machines, understand creativity

Ben : try to get semantics from the web

JMV's ideas for AGI :

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

http://www.pt-ai.org/questionnaire-future-progress-artificial-intelligence-2012?ug=AGIIMP4J5L1X8R2X4Y3D2283J4O3A8L8Y2

With my background Good Old AI and software engineering, here are my comments.

Questions are over simplified regarding the variety of intelligences that can be imitated: it's obvious that car driving is more easy to achieve than, say, musicianship or mathematic theory making.

As "scaffoldings", some efforts can pay in software engineering (be able to interoperate between tools, either at input formats, semantic API's), and genetic algos:

selection according to several criteria corresponding to each skill desired

have ways to hybridize AGI's engines

It seems to me like a naïve goal to reproduce the man. Think of cars, the first ones looked like horse carriage.

2012-12-10

Goal Oriented LEarning Meat-architecture

----------

http://dbpedia.org/page/Battle_of_Waterloo

rdf:type 
    owl:Thing
    gml:_Feature
    dbpedia-owl:Event
    dbpedia-owl:MilitaryConflict
    http://schema.org/Event
    yago:BattlesInvolvingFrance
    yago:BattlesInvolvingNassau
    yago:ConflictsIn1815
    yago:BattlesOfTheNapoleonicWars
    http://umbel.org/umbel/rc/ConflictEvent
    yago:BattlesInvolvingHanover
    yago:BattlesInvolvingTheNetherlands
    yago:BattlesInvolvingPrussia
    yago:BattlesInvolvingTheUnitedKingdom
    http://umbel.org/umbel/rc/Event
    yago:HundredDays
georss:point     50.67916666666667 4.406944444444444
geo:lat     50.679165 (xsd:float)
geo:long     4.406944 (xsd:float)
dbpedia-owl:date     1815-06-18 (xsd:date)
dbpedia-owl:place 

    dbpedia:Waterloo,_Belgium

dbpedia-owl:result 

    Decisive Coalition victory

dbpedia-owl:strength 

    Anglo-allies: 68,000
    Prussians: 50,000
    118,000
    72,000
dbpprop:combatant 

    United Kingdom
    Hanover
    Brunswick
    French Empire
    United Netherlands
    Nassau
    Seventh Coalition:

dbpprop:commander 

    Napoleon I
    Gebhard von Blücher
    Duke of Wellington
is foaf:primaryTopic of     http://en.wikipedia.org/wiki/Battle_of_Waterloo

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

book : Internet delusion

kornai.com/Drafts/agi12.pdf

wirehead ?

GewIrth

Installing OpenCog from sources

General remark : we need a expert system to build software! I would take as input whatever web page gives instructions.

git clone git://github.com/opencog/opencog.git
sudo add-apt-repository https://launchpad.net/~opencog-dev/+archive/ppa
sudo apt-get install libboost-dev cmake guile-1.8-dev libgsl0-dev libcurl4-gnutls-dev libexpat1-dev  libsdl1.2-dev libsdl-gfx1.2-dev unixodbc-dev libxerces-c2-dev libxmlrpc-c-dev 
cd opencog
    mkdir bin
    cd bin
    cmake -DCMAKE_BUILD_TYPE=Release ..
    make
make test
# Running the server
bin/opencog/server/cogserver &
# in another terminal, try loading the example XML file: tests/server/atomSpace.xml
xterm -e 'telnet localhost 17001'
# Scheme shell: start by typing ```scm```in the opencog server shell; see src/guile/README.

Error:

CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1194 (message):
  Unable to find the requested Boost libraries.

  Boost version: 1.49.0

  Boost include path: /usr/include

  The following Boost libraries could not be found:

          boost_date_time
          boost_filesystem
          boost_regex
          boost_serialization
          boost_signals
          boost_system
          boost_thread

  No Boost libraries were found.  You may need to set BOOST_LIBRARYDIR to the
  directory containing Boost libraries or BOOST_ROOT to the location of Boost.

I had to do this, which is not mentioned in the README :

sudo apt-get install libboost-all-dev

But there are problems further down the road:

 ~/src/w/opencog/bin/ % make test
[  2%] Built target smob
[  2%] Built target opencog_atom_types
[  6%] Built target util
[ 15%] Built target atomspace
[ 15%] Built target persist
[ 16%] Built target xml
[ 19%] Built target server
[ 19%] Built target dimensionalembedding
[ 19%] Generating DimEmbedUTest.cpp
/bin/sh: 1: /usr/bin/cxxtestgen.py: not found
make[3]: *** [tests/learning/dimensionalembedding/DimEmbedUTest.cpp] Erreur 127
make[2]: *** [tests/learning/dimensionalembedding/CMakeFiles/DimEmbedUTest.dir/all] Erreur 2
make[1]: *** [CMakeFiles/test.dir/rule] Erreur 2
make: *** [test] Erreur 2

It appears that /usr/bin/cxxtestgen.py is replaced by:

/usr/bin/cxxtestgen

indeed

% ls -l /usr/bin/cxxtest*         
lrwxrwxrwx 1 root root 27 juin  18 05:09 /usr/bin/cxxtestgen -> ../share/cxxtest/cxxtestgen

A simple workaround is (as there are references to cxxtestgen.py in many places ) :

sudo ln -s /usr/bin/cxxtestgen /usr/bin/cxxtestgen.py

Final result:

95% tests passed, 5 tests failed out of 93

Total Test time (real) = 154.76 sec

The following tests FAILED:
 32 - BasicSaveUTest (Failed)
 55 - MathUTest (Failed)
 60 - RESTfulTest (Failed)
 72 - procedure_repositoryUTest (Failed)
 92 - feature_selectionUTest (Failed)
Errors while running CTest

But I can't start the server:

 % bin/opencog/server/cogserver -c tests/server/atomSpace.xml              
[ERROR] invalid configuration entry (line 2) (/home/jmv/src/w/opencog/opencog/util/Config.cc:206)

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

My bug report : https://github.com/opencog/opencog/issues/61

On Ubuntu 12.10, to successfuly build I had to do this, which is not mentioned in the README :

sudo apt-get install libboost-all-dev

which corresponds to Boost libraries.

So, altogether the dependencies gathering step was :

sudo add-apt-repository https://launchpad.net/~opencog-dev/+archive/ppa

sudo apt-get install libboost-all-dev cmake guile-1.8-dev libgsl0-dev libcurl4-gnutls-dev libexpat1-dev libsdl1.2-dev libsdl-gfx1.2-dev unixodbc-dev libxerces-c2-dev libxmlrpc-c-dev

AGI 2012 3rd day

<jmvanel> interesting conf by Ben's father

<jmvanel> "minimizing risks in in developing AGI"

Interview with CHREST guys

CHREST tutorial

<jmvanel> http://www.chrest.info/tutorial.zip

CHREST == CHunk Hierarchy REtrieval ?

CHunk == basic units

LTM, immediate mem 5STM)

attention fixes part of ...

templates

STM == 4 chinks : directs eye

------

learning : 240 000 utterances

trie data structure used

symbolic cognitive ...

Patterns

------

jmvanel> CHREST is an old english tool

<rszeno> aha, :)

<jmvanel> good at learning language and images

<jmvanel> and chess positions

<rszeno> i didn't know the name but i know the method

<rszeno> is used in many tools

<rszeno> if i'm not wrong one of jos coworkers have some papers about this method applied to images

<jmvanel> you have pointers on most subjects ! :)

<jmvanel> alas CREST is quite closed in terms of model and rule re-use

<jmvanel> I've asked if it's possible to re-use ontologies or pure Prolog, for example

jmvanel> they presented results on : baby learning sentences from mother;

had lunch with 2 CHREST guys ( including a frenchman )

2012-12-09

AGI conf links

http://wiki.opencog.org/w/Getting_Started

http://wiki.opencog.org/w/OpenCogAtomTypes

http://cogsci.uni-osnabrueck.de/~kkuehnbe/

Tarek R. Besold, Kai-Uwe Kühnberger,

Marco Schorlemmer & Alan Smaill (eds.)

Proceedings of the Workshop

“Computational Creativity, Concept Invention,

and General Intelligence”

http://cogsci.uni-osnabrueck.de/en/system/files/01-2012.pdf

http://cogsci.uni-osnabrueck.de/~c3gi/2012/c3gi_pre-proceedings_20120803.pdf

http://www.flov.gu.se/english/contact/staff/claes-strannegard/

https://github.com/sfdc-hhildebrand/Ouroboros/wiki/System-Model ????

http://www.examachine.net/blog/

AGI 2012 2nd day

jveness.info

Peter Sunehag : optimistic AIXI

general reinforcement learning

http://wiki.lesswrong.com/wiki/AIXI

Laurent Orseau, agents with modifiable memories

read-write acces to memory by the environment !

the neuralizer problem : can you trust your own memory?

Potapov

MDL/MML ?

Javier Insa, Measuring social intelligence

does not mention animals !

SARSA (reenforcemnt learning ) : works well

IBM: robots

can ask clarifying questions

"add nouns to grammar"

Q: guess a name by elimination?

vetoes actions based on DB (e.g. sensible to Aspirin)

video on youtube

still missing : add initiative; impro, experimental learning

Costello, Noisy reasoners

peoples's estimates has an S curve ( but below real P in average)

Serge Thill, Emotions, etc

"cognition is grounded"

homestatic

Leslie Smith, perception of time

how can a artificial system "give rise to a first person experience" ?

duration : 18Hz to 3s

KuehnBerger, Adbel Fattah, creativity, Cognitive Mechanism, and Logic

http://www.academia.edu/1929361/On_the_Feasibility_of_Concept_Blending_in_Interpreting_Novel_Noun_Compounds

analogy-making, and concept blending

http://cogsci.uni-osnabrueck.de/~c3gi/2012/c3gi_pre-proceedings_20120803.pdf

HDTP == Heuristic Driven Thery Projection

many sorted FOL?

anti-unification !

Knuth Thompson, Stupidity & Orobouros model

pattern matching & constraint satisfaction

Alas no implementation (personal comm.)

Claes Strannegard, transparent neural networks

http://www.flov.gu.se/english/contact/staff/claes-strannegard/

all is labelled

SENOR ---->MOTOR

MIN

fire together == wire together

Ebbington rule : makes me think of pheromone paths of ants

imaginary activity == intermediary results

implementations in Haskell and C#

Wojciech Skaba, AGINAO project

self-programming ?

program generator ==> building blocks --> int *prog(int ...)

Paul Hemeren, representing action meaning via force dimension

A Framework for Representing Action Meaning in ...- Mindmakers

www.mindmakers.org/attachments/download/.../paper_67.pdf

Embodied intelligence == AGIE

nice videos

convex domains in kinematic space :)))))))))))

ex : push , move

give book : convex ?????

force vectors : differenciate hit and push

Abram Demski, Prior probabilities

inductive assumption

bounded rationality

Goldbach conjecture

Chris McGregor, fractal analogies for GI

What's the fractal for real world ?

the odd one : novelty

nice images : cats & owl

? Steve Matthiews, intelligent theory of cost for partial metric spaces

Non zero self distance !!!!!!!!!!!!!!!!

scotch topology ????????????????

taboo of denotational semantics??

Daniel Dewey, representation theorem for decision about causal models

predict consequence of one action

Linus Gisslen, Modular value decomposition

MDP

JMV: Questions to experts

Experts:

2012-12-08

http://linas.org/

http://linas.org/agi.html

AGI 2012 1rst day

http://www.mindmakers.org/projects/agiconf-2012/wiki/Schedule

Hanson

http://www.hansonrobotics.com/

Bina48 : Bayesian network; "feelings"

Robot says "tell me what do you think my intelligence comes from?"

JMV: it's like when cars appeared, they looked like horse cars; think about telephone interaction

www.GENI.ai : no content !

https://www.assembla.com/spaces/glue_ai/wiki

not much content ! mainly a pom.xml

https://www.assembla.com/code/glue_ai/subversion/nodes/trunk/extern_maven?rev=8#

uses ask.com, Drools, Scala, RDF, ...

JMV: eat your dog food principle

René Thom ( théorie des catastrophes )

emes == emergent memes

Hanson Robotics - Email: info@hansonrobotics.com - Tel: 214-927-1300

computational Compassion & Ethical AI

http://en.wikipedia.org/wiki/Three_Laws_of_Robotics

Man has created god to his image, and now some robotic researchers want to create robots to man's image ( or, even, to what is trendy ! ).

Matt Chaman, opencog

Superintelligence control

JMV : singleton ? question of how mankind will control ( question of democracy )

tripwire

JMV : limit the AGI by "bureaucratic" procedures : the AGI will have to present an inquiry if it wants to access more that

MicroPsi 2, by Joshua Bach (Berlin)

spreading activation networks

https://github.com/policecar/micropsi2

JMV: does the system create new nodes at runtime?

hoteaven

micropsi.com

Q : JMV : comparison with Jason ?

"micropsi getting started"

Pei Wang

relative rationality

<jmvanel> he writes better than he talks .

Attention mechanisms for AGI , E Nivel

humanobs.org

A. Oltramari - ACT-R

http://act-r.psy.cmu.edu/actr6/

Scone == reasoner

Homine : ontology; uses WordNet , FrameNet

computer vision + all the above

CHREST, Peter Lane

chrest.info : combines perception and interpretation

Debate:

symbol vs subsymbolic?

Ben Goertzel, creator of OpenCog, etc

http://wp.novamente.net/

OpenCog == hypergraph

DeSTIN Itamar Arel

https://github.com/opencog/opencog/blob/master/README

LinkParser == LinkGrammar ?

http://wiki.opencog.org/w/Building_OpenCog

http://wiki.opencog.org/w/The_Open_Cognition_Project

Paul Rosenbloom (SOAR) Sigma

http://cs.usc.edu/~rosenblo/

graphical models

grand unified

reinforcement learning

deep blending of rules and statistical

Ben : people are not as broad as OpenCog

2012-12-07

Failed tests:   testRunDrools(eulergui.drools_engine.TestReasonning): check Pattern Triple Handler,(..)
  test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>

Tests in error: 
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Any javax.swing.JFrame
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testFocusLost(deductions.runtime.TestRulesForUserEvents): 0

Tests run: 202, Failures: 2, Errors: 8, Skipped: 0

TODO EulerGUI

- SPARQL or N3 query generator wizard from a resource :s . in a browsable graph : checkbox for each triple :s ?P ?O , + create contain constraint (?), create variable, navigate to other URI;

COMMIT

- When Entering URL for N3 source, also allow for N3 abbreviated term with well-known prefix, e.g. dbpedia:Jimi_Hendrix

- ProjectGUI_Updater , SWRLTranslator, N3ConversionRefesher, etc were subscribed twice in ProjectChangeSupport.listeners.:

- add "xsd", "fn" in importantPrefixes (appearing in new files)

- fix adding """ wrappers to N3 strings when necessary (WIP) + new methods used in eulergui_mail module

TODO : Failed tests: test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>

Tests run: 202, Failures: 1, Errors: 0, Skipped: 0

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

jBPM5 - The Evolution of BPM Systems

Wednesday, December 12, 2012, by Mauricio Salatino and Esteban Aliverti

http://www.meetup.com/JBoss-User-Group/events/85267232/

My meetup in London , in need of a location

<jmvanel> I've set a meetup in London , in need of a location : http://www.meetup.com/LondonSWGroup/events/94447932/

<jmvanel> twitted

<jmvanel> Nothing in twiter about ATTEMPTO : https://twitter.com/search/realtime?q=%23ATTEMPTO&src=hash

Knowledge representation with Controlled English, ontologies and rules

I'll present ATTEMPTO controlled English (ACE) and EulerGUI

ACE is a controlled natural language, i.e. a rich subset of standard English designed to serve as knowledge representation language. ACE appears perfectly natural, but — being a controlled subset of English — is in fact a formal (logic) language.

The ATTEMPTO tools are:

- command line tool

- AceWiki , an collaborative Web interface

- ACE View , a Protégé plugin

- ACE rule engine

- EulerGUI

I'm the main developper of EulerGUI.

EulerGUI has nice features to explore the Semantic Web and vocabularies.

The EulerGUI Integrated Development Environment (IDE) and framework allows one to develop and run rules in N3 logic language, applied to data and models in various formats converted in N3 syntax (Notation 3).

There are 4 reasoning engines: Euler proof engine , CWM , Drools, and FuXi

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

<jmvanel> I can now talk in french to Google Translate !

<jmvanel> thought : I should stop entering my contact data in a non semantic way in Google contacts !

<jmvanel> indeed I think of my own application :) ; see my post in deductions-fr !

https://sites.google.com

Saturday I'll be at AGI Artificial (General Intelligence) conf in Oxford http://agi-conference.org/2012/

How can an agent learn from its experience?

2012-12-06

TODO

Set(eulergui.project.ProjectState@26657102,
eulergui.gui.controller.ApplicationKB@4dde4dff,

eulergui.gui.tools.SWRLTranslator@6d3af84f,
eulergui.gui.controller.ProjectGUI_Updater@7852b5d6, 
eulergui.gui.controller.N3ConversionRefesher@7e203250, 
eulergui.gui.fcm.FCMProjectListener@63471c6f, 
eulergui.gui.controller.PersistenceListener@2cbe7925,
 
eulergui.gui.tools.SWRLTranslator@6a1adbaf,
eulergui.gui.controller.ProjectGUI_Updater@94cf495, 
eulergui.gui.controller.N3ConversionRefesher@1b4d66f8, 
eulergui.gui.fcm.FCMProjectListener@76a331c8, 
eulergui.gui.controller.PersistenceListener@54197e51)

Two stacks are adding the listeners :

Thread [main] (Suspended (breakpoint at line 947 in ProjectGUI))
ProjectGUI.addDefaultProjectListeners(Project) line: 947
ProjectGUI.setProject(Project) line: 941
ProjectGUI.initFromProject(Project) line: 151
ProjectGUI.<init>(Project) line: 142
ProjectGUI.newWindow(Project, boolean) line: 290
ProjectGUI.openLastProjectFromFileHistory() line: 260
ProjectGUI.main(String[]) line: 219

and

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 947 in ProjectGUI))
ProjectGUI.addDefaultProjectListeners(Project) line: 947
ProjectGUI.setProject(Project) line: 941
ProjectGUI$2.run() line: 359
Thread.run() line: 722

COMMIT

- add in EulerGUI tricks : Google refine, RDFa</a> extractor as a service

- FIX transportation example in rules-examples.html

[ape.exe, -text, If someone Q studies a subject S and S impacts an enterprise E and Q v:has-interest-in E then Q v:has-a-conflit-concerning S.
, -solo, owlxml, -uri, null]

Exception in thread "main" java.lang.NoSuchMethodError: org.semanticweb.owlapi.model.IRI.compareTo(Lorg/semanticweb/owlapi/model/OWLObject;)I
at uk.ac.manchester.cs.owl.owlapi.OWLObjectPropertyImpl.compareObjectOfSameType(OWLObjectPropertyImpl.java:279)
at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:199)
at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:69)
at uk.ac.manchester.cs.owl.owlapi.SWRLBinaryAtomImpl.compareObjectOfSameType(SWRLBinaryAtomImpl.java:96)
at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:199)
at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:69)
at java.util.TreeMap.compare(TreeMap.java:1188)
at java.util.TreeMap.put(TreeMap.java:531)
at java.util.TreeSet.add(TreeSet.java:255)
at java.util.AbstractCollection.addAll(AbstractCollection.java:334)
at java.util.TreeSet.addAll(TreeSet.java:312)
at java.util.TreeSet.<init>(TreeSet.java:160)
at uk.ac.manchester.cs.owl.owlapi.SWRLRuleImpl.<init>(SWRLRuleImpl.java:105)
at uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl.getSWRLRule(OWLDataFactoryImpl.java:1255)
at org.coode.owlapi.owlxmlparser.SWRLRuleElementHandler.createAxiom(SWRLRuleElementHandler.java:67)
at org.coode.owlapi.owlxmlparser.AbstractOWLAxiomElementHandler.endElement(AbstractOWLAxiomElementHandler.java:98)
at org.coode.owlapi.owlxmlparser.OWLXMLParserHandler.endElement(OWLXMLParserHandler.java:942)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.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 org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.coode.owlapi.owlxmlparser.OWLXMLParser.parse(OWLXMLParser.java:87)
at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:210)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:889)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:837)
at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:853)
at eulergui.project.N3SourceFromOWL.convertOWLToN3(N3SourceFromOWL.java:76)
at eulergui.project.N3SourceFromACE.convertToN3(N3SourceFromACE.java:28)
at eulergui.project.N3Source.manageN3Cache(N3Source.java:632)
at eulergui.project.N3Source.doUpdate(N3Source.java:434)
at eulergui.project.N3SourceFromRDF.prepare(N3SourceFromRDF.java:72)
at eulergui.project.N3Source.placeInProject(N3Source.java:360)

[16:30] <rszeno> you usualy find mixed app

[16:30] <rszeno> for example identica

[16:30] <rszeno> it use foaf for users profiles

[16:31] <Abdennour> Nice, THIS is a concrete application

[16:31] <Abdennour> to bad it's not famous

[16:31] <Abdennour> too*

[16:31] <rszeno> are many used daily but as far as i know all are private stuff

[16:32] <rszeno> new york times, the site use rdf too

[16:32] <rszeno> i try to remember the public one only, :)

[16:33] <rszeno> weird, :)

[16:33] <rszeno> i forget this, you will like it, foafpress

[16:33] <rszeno> http://foafpress.org/

[16:33] <Abdennour> Let's see

[16:34] <rszeno> entirely rdf

[16:35] <Abdennour> It seems appealing, and it's in php

[16:35] <rszeno> the main idea is to not to have something to use daily, at least at that stage

[16:36] <rszeno> but to build a network with open linked data in a machine readable format

[16:36] <Abdennour> I see

[16:37] <rszeno> when you have sources of data on the net about every useful piece of information you can build a custom interface, instant, to solve a given problem

[16:38] <rszeno> for example you don't go to oslo every day

[16:39] <rszeno> once you want to go you just need to find info about trip, climate, weather, routes, whatever you need

[16:39] <rszeno> after that you can forget about it

[16:39] <Abdennour> Well that's already a big thing

[16:39] <rszeno> not realy

[16:40] <rszeno> you already have on the net a lot of data

[16:40] <Abdennour> Yeah but the point of access of data are search engine like google

[16:40] <rszeno> you need only some general tools to aggregate, filter, infere

[16:40] <rszeno> no

[16:40] <Abdennour> If you can have an interface for machine to get data it's nice

[16:41] <rszeno> probably i didn't explain to well, :)

[16:41] <Abdennour> Or I'm too dense :P

[16:41] <rszeno> linked data is linked

[16:42] <rszeno> if you have a data source with countries, it will contain links to capitals, probably administrative information

[16:43] <rszeno> and each link point to another link related with him

[16:43] <rszeno> and so on

[16:43] <Abdennour> yeah like a graph

[16:43] <rszeno> it's a graph

[16:44] <rszeno> with subgraph ...

[16:45] <rszeno> you think you can answer to your classmates now? :)

[16:45] <Abdennour> Yeah kind of ^^

[16:46] <rszeno> probably sem web is not silver bulet, like usual, :)

[16:47] <rszeno> eulergui, your teacher tools is such a tool

[16:47] <rszeno> i don't know if he explain about it

[16:48] <Abdennour> We tried it but to be honest it's not very intuitive to us

[16:48] <Abdennour> maybe because we start

[16:49] <rszeno> well is something new, a new philosophy, people expect to see something closer to what they seen before

16:49] <rszeno> this is why is hard to understand from start

[16:50] <Abdennour> People tend to understand better through example

[16:50] <rszeno> yes, true

[16:51] <rszeno> but for this, to build example, you need to have something very stable, else is confusing

[16:51] <Abdennour> Yup

[16:52] <rszeno> only old technologies are very stable

[16:52] <rszeno> this one have at most 12 years

[16:53] <rszeno> 7 for sure, i discover it 7 years ago

[16:54] <Abdennour> It needs some big actor like google to get a boost :P

[16:55] <rszeno> no, google is a silos of information

[16:56] <rszeno> more damage then good things

[16:57] <rszeno> this must be decentalized or to not be at all

[16:58] <rszeno> the point is to publish brute information not interfaces to access it

[16:58] <rszeno> interface is user business

[16:59] <rszeno> is like i know from few minutes and we start to talk

[16:59] <rszeno> just change information

[17:00] <rszeno> each of us, you and me, we have our own 'interface'

[17:00] <Abdennour> true but without standard people won't use it

[17:01] <Abdennour> I mean if everyone have his own interface, how can we make a machine access information through different sources ?

[17:01] <rszeno> you don't need a standard

[17:01] <rszeno> rdf

[17:01] <rszeno> rdf is self descriptive

[17:02] <rszeno> is a subject predicate object thing, a statement, a triple

[17:02] <Abdennour> yeah i understand

[17:03] <rszeno> using triple you can describe things but also describe triple, see ontologies

[17:03] <rszeno> concepts, ideas, abstractions

[17:03] <rszeno> you build the 'standard', the protocol, at run time

[17:03] <rszeno> on going

[17:04] <Abdennour> It can become very complex ^^"

[17:04] <Abdennour> Moreover if everyone add his own namespace how do we figure out all ?

[17:05] <rszeno> by discovering things

[17:06] <rszeno> same way you do when you go in an unknown place

[17:06] <rszeno> you start to ask around looking for answer to solve your problem

[17:06] <rszeno> a namespace doesn't make sense if doesn't carry information

[17:07] <rszeno> a url is a name, not only a namespace

[17:08] <rszeno> http://jmvanel.free.fr/jmv.rdf#me

[17:09] <Abdennour> So the main concern to have linked data is to have valid uri :P

[17:09] <rszeno> this name identify your teacher

[17:10] <rszeno> if you read it soon or later you will find me, :)

[17:11] <rszeno> i'm egocentic so i don't mention others, :)

[17:11] <Abdennour> lol !

[17:12] == CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has joined #eulergui

[17:12] <Abdennour> Why do you have multiple foaf profile ?

[17:13] <rszeno> me, :)

[17:13] <Abdennour> yes

[17:13] <rszeno> not really multiple, is owl:sameAs there

[17:13] <Abdennour> oh ok !

[17:14] <rszeno> are not many tools to test the logic of foaf today

[17:14] <rszeno> in fact i don't know to be one, :)

[17:14] <rszeno> was something few years ago

[17:14] <Abdennour> You live in romania ? ^^

[17:14] <rszeno> yes

[17:15] <rszeno> timisoara

[17:15] <rszeno> you can use geolocation to point directly to my house, :)

[17:16] <Abdennour> I have some classmates who will go to Prague this night

[17:16] <Abdennour> It's a little near

[17:16] <rszeno> yes, :)

[17:17] <rszeno> http://goossens.web.cern.ch/goossens/sweb-stack.gif

[17:17] <rszeno> this is how probably will work

[17:18] <rszeno> some levels are work in progress, some are not even started

[17:18] <Abdennour> Digital signature ?

[17:18] <rszeno> read, write, trusted web

[17:18] <rszeno> yes, webid

[17:18] <rszeno> authentication, authorisation

[17:19] <rszeno> needed for write, sometime for read

[17:21] <rszeno> you will find this picture in may places but in most of them you will find some particular point of view, wrong imo

[17:21] <rszeno> for example this one: http://kimmicblog.files.wordpress.com/2012/01/layer-cake-copy.jpg

[17:22] <Abdennour> What's different in this one ?

[17:23] <rszeno> this guy already 'know', that querying: sparql is the silver bullet which will solve any problem

[17:23] <Abdennour> ahh ok !

[17:23] <rszeno> this is a wrong point of view

[17:23] <Abdennour> He put aside RDQL

[17:24] <rszeno> self desc. doc. is more than anything called 'query'

[17:24] <rszeno> is a wider pov

[17:25] <rszeno> doesn't matter rdql or not

[17:26] <rszeno> you can use informations in may ways, rules are the most general way

[17:26] <rszeno> infering things is more then simple filtering

2012-12-05

https://plus.google.com/112399767740508618350/posts/RwvAFV2cAe2

RDFa extractor as a service

http://www.w3.org/2012/pyRdfa/extract?uri=http%3A%2F%2Fshop.oreilly.com%2Fproduct%2F9780596516499.do&format=turtle&rdfagraph=output&vocab_expansion=false&rdfa_lite=false&embedded_rdf=true&space_preserve=true&vocab_cache=true&vocab_cache_report=false&vocab_cache_refresh=false

http://www.w3.org/2012/pyRdfa/extract?uri=http://shop.oreilly.com/product/9780596516499.do

PENDING: how to design forms semantically? Is it clean to use ad-hoc classes, since

?X a ad-hoc_class ; p v .

constrains ?X to belong to p's domain, and v to belong to p's range.

It is not enough to specifiy a form by giving an ad-hoc class C1 subclassOf C, because all properties of C will be properties of C.

As a simple definition, one can give an arbitrary list of properties for the form's fields :

f a eg:Form ; hasProperties ( p1, p2, p3 ).

But that's not enough; the form's fields can can mandatory or not , etc.

Re-use Xform would probably be good.

http://www.w3.org/TR/vocab-dcat/

11. Building a business application backed by Linked Data <<<< NEW by jmvanel

<jmv> never saw this before : http://ontologi.es/

<rszeno> is tobyink site

<jmvanel> there are even some N3 rules :) :

<rszeno> yes and acl

<jmvanel> http://ontologi.es/like#

rszeno> is old stuff

http://trueg.wordpress.com/about-me/

http://trueg.wordpress.com/tag/sparql/

TODO ???? EulerGUI : add in default prefixes in editor:

prefix afn: <http://jena.hpl.hp.com/function#>

Details on the Virtuoso bif: and sql: functions can be found in the "Calling SQL from SPARQL" section of the documentation at http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsqlfromsparql

Basically, "bif" are Built In Functions either predefined (like contains) or user defined which can be call within SPARQL with the bif:<functiona-name> prefix. Likewise "sql" are the predefined SQL PL functions that can be called with SPARQL.

2012-12-04

http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTab

http://protege.cim3.net/cgi-bin/wiki.pl?SWRLDroolsTab

Google refine : tabular data tidying, and RDF export

Google refine seems a nice tool; and it seems to have an RDF export as well. Moreover it has an interesting architecture mixing Web and local application .

http://www.youtube.com/watch?v=B70J_H_zAWM

http://openrefine.org/ ; an extended RDF export through plugin http://refine.deri.ie/ RDF Refine - a Google Refine extension for exporting RDF

Count persons in dbpedia

SELECT (count(?A) as ?count) WHERE { ?A a dbpedia-owl:Person }

39582868^^http://www.w3.org/2001/XMLSchema#integer

SELECT DISTINCT (count(?A) as ?count_french) 
WHERE {
  ?A a dbpedia-owl:Person ;
  dbpedia-owl:birthPlace 
  # dbpedia:United_States ; # 
  dbpedia:France
}

541889^^http://www.w3.org/2001/XMLSchema#integer

Same with United_States : 2293132 .

SELECT * WHERE { ?A a dbpedia-owl:Person } LIMIT 1000

Living persons born in France:

SELECT DISTINCT (count(?A) as ?count_french) 
WHERE {
  ?A a dbpedia-owl:Person ;
  dbpedia-owl:birthPlace dbpedia:France .
  FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} )
}

4585

Same thing grouped by class and ordered :

SELECT DISTINCT ?CLASS (count(?A) as ?count) 
WHERE {
?A a dbpedia-owl:Person ;
dbpedia-owl:birthPlace # dbpedia:United_States ; # 
dbpedia:France .
FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} )
?A a ?CLASS
} GROUP BY ?CLASS
ORDER BY DESC(?count)

Notethat several classes are assigned to the same person, and that inference has been added in the database (Thing, Agent, schema.org/Person ... ).

http://www.w3.org/2002/07/owl#Thing 4585^^http://www.w3.org/2001/XMLSchema#integer
http://xmlns.com/foaf/0.1/Person 4585^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Person 4585^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Agent 4585^^http://www.w3.org/2001/XMLSchema#integer
http://schema.org/Person 4585^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Athlete 3150^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/Person100007846 3048^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/LivingPeople 2935^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/SoccerPlayer 2382^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/FrenchFootballers 1640^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/LiguE1Players 916^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/LiguE2Players 836^^http://www.w3.org/2001/XMLSchema#integer
http://umbel.org/umbel/rc/SoccerPlayer 385^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Cyclist 295^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/FrenchExpatriateFootballers 290^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Artist 272^^http://www.w3.org/2001/XMLSchema#integer
http://umbel.org/umbel/rc/Cyclist 256^^http://www.w3.org/2001/XMLSchema#integer

Trying not writing type in select answer; but this does not sort :

SELECT DISTINCT ?CLASS (str(count(?A)) as ?count) 
WHERE {
?A a dbpedia-owl:Person ;
dbpedia-owl:birthPlace # dbpedia:United_States ; # 
dbpedia:France .
FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} )
?A a ?CLASS
} GROUP BY ?CLASS ?count
ORDER BY DESC(xsd:decimal(?count))

Not writing type in select answer; this does sort , but we have an extra column :

SELECT DISTINCT ?CLASS (str(count(?A)) as ?count_string) (count(?A) as ?count)
WHERE {
?A a dbpedia-owl:Person ;
dbpedia-owl:birthPlace # dbpedia:United_States ; # 
dbpedia:France .
FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} )
?A a ?CLASS
} GROUP BY ?CLASS ?count
ORDER BY DESC(?count)

Try to get people younger than 80 :

?A dbpedia-owl:birthDate ?NAISS .
FILTER( fn:years-from-duration( "2012-12-05"^^xsd:dateTime - ?NAISS) < 80 )

alas Virtuoso :

Virtuoso 22003 Error SR087: Non numeric argument(s) to arithmetic operation.

Links : answers on semanticweb

ILP == Inductive Logic Programming

http://www.doc.ic.ac.uk/~shm/ilp.html

https://www.google.fr/search?q=sparql+application+framework

http://answers.semanticweb.com/

http://markwatson.com/opencontent_data/book_java.pdf

2012-12-03

transactions, integrity

http://agi-conference.org/2012/

search administration+dataset+tools+sparql+1.1+databases

TODO EulerGUI

2012-12-02

def qsort[T <% Ordered[T]](list:List[T]):List[T] = {
 list.match({
  case Nil => Nil;
  case x::xs =>
   val (before,after) = xs.partition({ i => i.<(x) });
   qsort(before).++(qsort(after).::(x)));
  });
}

Results :

Failed tests:   testRunDrools(eulergui.drools_engine.TestReasonning): check Pattern Triple Handler,(..)
  test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>

Tests in error: 
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Any javax.swing.JFrame
  testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait for "getText() Component Chooser "rdfs:label="Agent""(..)
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  testFocusLost(deductions.runtime.TestRulesForUserEvents): 0

Tests run: 202, Failures: 2, Errors: 13, Skipped: 0

regex pattern verbalizer : does not seems to exist

_:mess74051 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> "<http://jmvanel.free.fr/ontology/java_projection.owl#"com.sun.mail.imap.IMAPMessage">" .

Learning Scala

instanceOf is as much a bad smell in Scala as in Java , but there is match :

triples2.foreach { x => outFileWriler.print( 
     x match {
       case t: Triple => t. toStringSafe()
       case _ => toString }
    ) }

My first usage of yield, to extract a Scala sequence out of a Java API. The flatMap is convenient to concatenate lists .

val multipart = message.getContent().asInstanceOf[Multipart]
val multiparts = for( p <- 0 until multipart.getCount() ) yield multipart.getBodyPart(p)
multiparts .flatMap ({ x : BodyPart => Java2N3.properties2N3( x, id, prefix = mailSemwebPrefix)._1 } ).toList

Mavenize project having non standard directory for sources

To add in a non Maven project having non standard directory for sources

  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.1</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals><goal>add-source</goal></goals>
            <configuration>
              <sources><source>src</source></sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-eclipse-plugin</artifactId>
        <version>2.8</version>
        <configuration>
          <buildOutputDirectory>classes-eclipse</buildOutputDirectory>
          <downloadSources>true</downloadSources>
          <downloadJavadocs>false</downloadJavadocs>
        </configuration>
      </plugin>
    </plugins>
</build>

2012-12-01

javamail multipart encoding charset 7bit quoted-printable

The problem in bblfish's rww-play

https://travis-ci.org/read-write-web/rww-play

oem-laptop: ~/src/rww-play/ % Play20/play         
[info] Loading project definition from /home/jmv/src/rww-play/project
[info] Set current project to RWWeb (in build file:/home/jmv/src/rww-play/)
       _            _
 _ __ | | __ _ _  _| |
| '_ \| |/ _' | || |_|
|  __/|_|\____|\__ (_)
|_|            |__/

play! 2.1-SNAPSHOT (using Java 1.7.0_09 and Scala 2.10.0-RC1), http://www.playframework.org

> Type "help play" or "license" for more information.
> Type "exit" or use Ctrl+D to leave this console.

[RWWeb] $ run  -Dhttps.port=8443 -Dhttps.trustStore=noCA

followup :

[info] Updating {file:/home/jmv/src/rww-play/}RWWeb...
[info] downloading http://repo.typesafe.com/typesafe/snapshots/play/play_2.10/2.1-SNAPSHOT/play_2.10-2.1-SNAPSHOT.jar ...
[info] [SUCCESSFUL ] play#play_2.10;2.1-SNAPSHOT!play_2.10.jar (32177ms)
[info] downloading http://repo.typesafe.com/typesafe/snapshots/play/play-test_2.10/2.1-SNAPSHOT/play-test_2.10-2.1-SNAPSHOT.jar ...
[info] [SUCCESSFUL ] play#play-test_2.10;2.1-SNAPSHOT!play-test_2.10.jar (1743ms)
[info] Done updating.
--- (Running the application from SBT, auto-reloading is enabled) ---

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/jmv/src/rww-play/Play20/repository/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.7.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/jmv/src/rww-play/Play20/repository/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
[info] play - Listening for HTTPS on port /0:0:0:0:0:0:0:0:8443

https://localhost:9000

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

The symptom:

[15:18:51] Jean-Marc Vanel: value certs is not a member of play.api.mvc.RequestHeader
[15:19:02] Jean-Marc Vanel: In /home/jmv/src/rww-play/app/org/www/play/auth/AuthN.scala at line 25.

NOT Found !!!

2012-11-29

http://airccse.org/journal/ijwest/current2012.html

COMMIT

- upgrade Scala to 2.10.0-RC3

- add missing dependency to org.scala-lang:scala-swing:2.10.0-RC3

- Java2N3.scala : only generate N3 property if toStringRedeclared

- add DBPediaComboBox.scala, JSONParser.scala (WIP)

@puffnfresh I like this music generation process !

now we have to imagine the correspondance between

- the grid and the current sound,

- the change and duration of the sound when the game steps

NERD - Named Entity Recognition and Disambiguation framework

announce a major upgrade of NERD - a Named Entity Recognition and Disambiguation framework (http://nerd.eurecom.fr). The NERD framework unifies the annotation of 10 entity extractors (http://nerd.eurecom.fr/documentation#extractors) using the NERD ontology (http://nerd.eurecom.fr/ontology) which provides a rich set of axioms aligning the taxonomies of these extractors. The NERD ontology is composed of two layers: a core layer of 10 main classes, based on a core schema used by the NLP community, and an extended layer composed of 75 classes which correspond to more fine-grained entity types that these extractors can recognize.

Trying bblfish's Play rww

https://localhost:8443/test/webid/hello+world

programmableweb.com apis

This is a nice site, but it's a bit like CKAN, there is no SPARQL :

http://www.programmableweb.com/apis

( for CKAN , there is a SPARQL , but not much ion it, one has to rely on JSON :( )

2012-11-28

Greasemonkey

<jmvanel> what is greasemonkey?

<rszeno> an extension for ffox but work with few other browsers

<rszeno> can be used to *fix* the web, :)

<rszeno> https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/

<rszeno> http://www.greasespot.net/

<rszeno> is use it to build extensions/add-on's for ffox

<rszeno> i start with greasemonkey scripts to do what i want then i move code, javascript, in a dir in .mozilla/firefox/.../extensions/ and add few new files, tweek/test/fix problems and i get an add-on

<jmvanel> one more thing that you don't share :(

<rszeno> if you want to try the best place to start is http://commons.oreilly.com/wiki/index.php/Greasemonkey_Hacks

<jmvanel> installed greasemonkey

<rszeno> yes, proud of this, :)

<jmvanel> For now my worry is In ubuntu 12.10 how to change default application for calendar in system parameters

je rebondis sur ce sympathique message avec le lien vers mes slides : http://fr.slideshare.net/dgalichet/demystifying-scala-type-system

gnome-terminal \
  --tab --title=eulergui--working-directory=$HOME/src/eulergui --active \
  --tab --title=audio-dam--working-directory=$HOME/bizz/taxochronos/src/audio-dam/ui-swing \
  --tab --title=eulersharp --working-directory=$HOME/src/eulersharp \
  --tab --title=deductions--working-directory=$HOME/src/deductions \
  --tab --title=ACE-in-GF--working-directory=$HOME/src/ACE-in-GF &

2012-11-28

http://www.scalanlp.org/

https://github.com/non/spire#readme

Hi again

I suppose that you have good arguments on this very important subject.

I keep telling people that for classical business applications, to gain flexility and compatibility with Open linked data, it's possible and even better to use semweb databases instead of the usual SQL.

Another argument is that with a framework based on rules and semweb like EulerGUI, there is no need of ORM, or RDF to object Mapping, a,d no need to generate code fir business classes.

I admit that I was blown away to hear even some LOD specialists say that to make a simple app., they go to SQL, partly by the strength of habit.

For me it is so obvious and not too complicated, that I did not test that so far.

But it was in my roadmap.

So just a question.

Is the force of habit, and the slope of the facility, or

Do you foresee any difficulties?

Say, to fix ideas, create an app. Web that will make

CRUD on FOAF data type.

To avoid security problems, say that SPARQL is based

on the same machine as the application. Web and its port is filtered to

outside.

Or SPARQL is based in the same process as the web server.

I'll try that ...

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

integrity to maintain the consistency of your data (primary key,

> Foreign key cascade delete etc ...).

This is an interesting debate, I do not have time to move

now, but this weekend yes.

The concepts of primary key and foreign key, they were due to URI.

The primary key is a URI in subject position that connects

naturally all the triples with that URI in subject position.

The foreign key, it is more complicated, because even if the ontology

specifies a functional property, or a cardinality> = 1,

deposits SPARQL does not impose not always. Sure, you can:

- Rotate generic scripts that will be out of

reports, or create nodes "blanks" to fill the gaps

- Rely on applications, also how many apps I

SQL-based exploit the capabilities of SQL really that?!

For cascade delete, I do not know.

I do not know if we really need to destroy the triplets

referenced immediately.

--

Jean-Marc Vanel

Déductions SARL - Consulting, services, training,

Rule-based programming, Semantic Web

http://deductions-software.com/

+33 (0)6 89 16 29 52

chat : irc://irc.freenode.net#eulergui

cd ~/src/eulergui/
linkchecker html/documentation.html
 ...
That's it. 1591 links checked. 126 warnings found (71 ignored or duplicates not printed). 106 errors found.
Stopped checking at 2012-11-28 16:47:50+002 (7 minutes, 21 seconds)

http://jena.apache.org/images/jena-logo/jena-logo-small.png

COMMIT

documentation.html : fix many of the bad links found with linkchecker

Introduction at meetup / 78-Hackers

http://www.meetup.com/78-Hackers/members/19188881/

What applications are you thinking about/working on?

Which technologies are you most into?

Intéressé par : le Web Sémantique, l'intelligence Artificielle et la Logique Formelle, les moteurs à base de règles (Drools, JRules) le traitement du langage naturel la modélisation, le développement piloté par les modèles, Scala

How can this group be of the most value to you?

j'aime ces rencontres technologiques

Editable comboBox in Scala

Added comment here:

http://devandwhateverelse.blogspot.fr/2010/05/scala-swing-combobox-part-2.html

To make the comboBox editable, I changed comboBox declaration this way:

  val comboBox = new ComboBox(List(OS("Ubuntu", "10.04"), snowLeopard, OS("Windows", "7"))) {
  implicit def editor(c: ComboBox[OS]): ComboBox.Editor[OS] =
  new ComboBox.BuiltInEditor(this)(
      s => OS(s,"no version"), // could split s with a possible comma separator
      os => os.name) {}
makeEditable();
//    renderer = Renderer(_.name)
    renderer = Renderer(_.toString)
  }

It took me quite some time to figure out the editor defintion.

But, after entering "Solaris" in the box, it gets transformed thus:

OS(OS(Solaris,no version),no version)

In fact OS.toString() is called too. And it must play well with the 2 functions given to ComboBox.BuiltInEditor.

And I guess that these 2 functions show be inverse of one another.

2012-11-27

git remote -v

http://www.seemy.com/fr/products

http://soundview.co/research/#wrap

Build banana-rdf (Semantic Web fw in Scala) in eclipse

Added this a the end of project/plugins.sbt :

+addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")

like explained here :

https://github.com/typesafehub/sbteclipse#readme

This generates the 6 eclipse projects :

jena/.project
ldp/.project
plantain/.project
rdf/.project
rdf-test-suite/.project
sesame/.project

I also did this:

./sbt doc

I don't know how to run the tersts in eclipse ! But this works:

./sbt test
 ...
[error] Could not run test org.w3.banana.plantain.LDPSTest: java.lang.IllegalArgumentException: Class is not an accessible org.scalatest.Suite: org.w3.banana.plantain.LDPSTest
 ...
[info] Passed: : Total 85, Failed 0, Errors 0, Passed 85, Skipped 0
java.lang.RuntimeException: Tests unsuccessful
at scala.sys.package$.error(package.scala:27)
at scala.Predef$.error(Predef.scala:123)
at sbt.Tests$.showResults(Tests.scala:192)
at sbt.Defaults$$anonfun$testTasks$6.apply(Defaults.scala:296)
 ...
[error] (plantain/test:test) Tests unsuccessful
[error] Total time: 208 s, completed 27 nov. 2012 19:36:23

It's not clear what is the added value compared to using directly Java API .

Nice Vim plugin : Highlight several words

Nice Vim plugin : Mark : Highlight several words in different colors simultaneously.http://stackoverflow.com/a/7772282/1141737

Fix rules-documentor.n3 rule base for URI with no #

This is the case of FOAF

Added this in rules-documentor.n3, to generated a plausible label:

  _:o e:optional { ( ?URI "#" ) fn:substring-after ?LABEL . } .
  _:p e:optional { ( ?URI "/" ) fn:substring-after ?LABEL . } .

it's in deductions, but EulerGUI uses the file from Subversion, so no need to upgrade EG.

This was not detected :

:x a foaf:NonExistingClass .

cd ~/src/deductions/n3_nojs/
eg ~/src/eulergui/examples/blankNotation.n3 ~/ontologies/rdf.n3
rules-documentor.n3 --query rules-documentorQ.n3

2012-11-26

<S11001001> jmvanel: then write lower: (A => B) => A PartialFunction B as a pimp on => and write {case partialbits} andThen (identity _).lower or whatever it is

<S11001001> orElse I think

<jmvanel> S11001001, thanks , but this goes far above my current level of consciousness :)

http://www.google.fr/search?q=scala+iamp+javamail

com.sun.mail.imap.IMAPBodyPart@7732e17e

Pattern matching and case classes in Scala:

def simplifyTop(expr: Expr): Expr = expr match {
case UnOp("-", UnOp("-", e))
=> e
// Double negation
case BinOp("+", e, Number(0)) => e // Adding zero
case BinOp("*", e, Number(1)) => e // Multiplying by one
case _ => expr 
}

2012-11-25

http://blog.typesafe.com/free-pdf-from-typesafe-scala-for-the-impatien-64715

Shell commands from Scala interpreter :

scala> import sys.process._
import sys.process._

scala> "echo hello world" #> new java.io.File("/tmp/example.txt") !
res0: Int = 0

scala> "ls" !

http://thoughts.inphina.com/2011/03/05/getting-started-maven-archetype-for-scala/

Developing a IMAP connector for EulerGUI

http://www.oracle.com/technetwork/java/javamail/faq/index.html#examples

https://github.com/zcox/jetray#readme

http://oscaf.sourceforge.net/nmo.html

See below IMAP importer to TDB via JavaMail

IMAPN3Connector

xmllint --format pom.xml > pom2.xml
mv pom2.xml pom.xml  

first run:

[exec] 1: =?ISO-8859-1?Q?L'=E9quipe_Gmail?= <gmail-noreply@google.com>Gmail est différent des autres systèmes de messagerie. Voici ce que vous devez savoir.
java.lang.NullPointerException
at deductions.runtime.Java2N3$$anonfun$properties2N3$1.apply(Java2N3.scala:36)
at deductions.runtime.Java2N3$$anonfun$properties2N3$1.apply(Java2N3.scala:34)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:105)
at deductions.runtime.Java2N3$.properties2N3(Java2N3.scala:34)
at eulergui.eulergui_mail.IMAPN3Connector$$anonfun$importFromIMAP$1.apply(IMAPN3Connector.scala:39)
at eulergui.eulergui_mail.IMAPN3Connector$$anonfun$importFromIMAP$1.apply(IMAPN3Connector.scala:34)
at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:105)
at eulergui.eulergui_mail.IMAPN3Connector$.importFromIMAP(IMAPN3Connector.scala:34)
at eulergui.eulergui_mail.IMAP2TDB$delayedInit$body.apply(IMAP2TDB.scala:13)
at scala.Function0$class.apply$mcV$sp(Function0.scala:40)
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.App$$anonfun$main$1.apply(App.scala:71)
at scala.collection.immutable.List.foreach(List.scala:309)
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32)
at scala.App$class.main(App.scala:71)
at eulergui.eulergui_mail.IMAP2TDB$.main(IMAP2TDB.scala:5)
at eulergui.eulergui_mail.IMAP2TDB.main(IMAP2TDB.scala)

2012-11-24

Developing a IMAP connector for EulerGUI

http://maven.apache.org/guides/getting-started/index.html#How_do_I_make_my_first_Maven_project

new Scala class Java2N3, that will be used by JavaMail connector ( Java2N3 will replace ObjectProperties2N3.scala )

Upgrading subclipse (eclipse)

http://subclipse.tigris.org/update_1.8.x/

Failed to load JavaHL Library.
These are the errors that were encountered:
no libsvnjavahl-1 in java.library.path
no svnjavahl-1 in java.library.path
no svnjavahl in java.library.path
java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

/usr/lib/jni/libsvnjavahl-1.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped

On Debian 6.0.6 I added this in eclipse.ini

-Djava.library.path=/usr/lib/jni

And I could reconnect to my SVN working directory.

2012-11-23

http://www.w3.org/wiki/Search_engines

http://www.cs.umd.edu/projects/plus/SHOE/search/

http://www.bestechvideos.com/2012/05/30/railscasts-354-squeel

https://github.com/ernie/squeel

http://didier-martin.com/

http://blog.muhuk.com/2012/03/16/installing-subversion-1-7-on-debian-squeeze-via-apt.html#.UK-sk5sTGRY

IMAP importer to TDB via JavaMail

Use generic Java properties to N3 translator, or just insert the Java object in KB, and rely on rules to convert to pure (non-Java) triples?

If the Java object is not intended to be called by rules, it's better to use generic Java properties to N3 translator.

TODO: generic Java properties to N3 translator:

Exploring dbPedia's graphs

See below Exploring named graph in SPARQL database

CONSTRUCT { ?s ?p ?v .
} WHERE {
  GRAPH <http://dbpedia.org/schema/property_rules#>
  { ?s ?p ?v . }

That's all there is in GRAPH <http://dbpedia.org/schema/property_rules#> :

<http://dbpedia.org/ontology/wikiPageWikiLink> owl:equivalentProperty <http://dbpedia.org/property/wikilink>.
<http://dbpedia.org/ontology/wikiPageRedirects> owl:equivalentProperty <http://dbpedia.org/property/redirect>.
<http://dbpedia.org/ontology/deathPlace> owl:equivalentProperty <http://dbpedia.org/property/deathPlace>.
<http://dbpedia.org/ontology/wikiPageRevisionID> owl:equivalentProperty <http://dbpedia.org/property/revisionId>.
<http://dbpedia.org/ontology/birthDate> owl:equivalentProperty <http://dbpedia.org/property/birth>.
<http://xmlns.com/foaf/0.1/givenName> owl:equivalentProperty <http://xmlns.com/foaf/0.1/givenname>.
<http://dbpedia.org/ontology/wikiPageDisambiguates> owl:equivalentProperty <http://dbpedia.org/property/disambiguates>.
<http://dbpedia.org/ontology/birthPlace> owl:equivalentProperty <http://dbpedia.org/property/birthPlace>.
<http://dbpedia.org/ontology/deathDate> owl:equivalentProperty <http://dbpedia.org/property/death>.
<http://dbpedia.org/ontology/wikiPageID> owl:equivalentProperty <http://dbpedia.org/property/pageId>.
<http://purl.org/dc/terms/subject> owl:equivalentProperty <http://www.w3.org/2004/02/skos/core#subject>.
<http://dbpedia.org/ontology/wikiPageExternalLink> owl:equivalentProperty <http://dbpedia.org/property/reference>.

2012-11-22

https://data.fm/

http://mappings.dbpedia.org

The data on data.semanticweb.org is available in two flavours:

* There are rdf/xml dumps for each conference and workshop in the repository. All those dumps are available at http://data.semanticweb.org/dumps/ .

* The URIs of the named graphs also work as an alias to that graph's data dump.

* There is a SPARQL repository which contains all data for all conferences and workshops:

http://data.semanticweb.org/sparql

TODO EulerGUI

2012-11-21

Created an account on https://www.getrefinder.com

df ==> /dev/sda1 182863100 157542596 16031544 91% /
% time zip  musicbrainz_ngs_dump.rdf.ttl.zip musicbrainz_ngs_dump.rdf.ttl
  adding: musicbrainz_ngs_dump.rdf.ttl (deflated 89%)
zip musicbrainz_ngs_dump.rdf.ttl.zip musicbrainz_ngs_dump.rdf.ttl  630,42s user 25,67s system 78% cpu 13:53,82 total
oem-laptop: ~/data/ % ls -ltr mus*
-rw-r--r-- 1 jmv jmv 25719386678 juin  16  2011 musicbrainz_ngs_dump.rdf.ttl
-rw-rw-r-- 1 jmv jmv  2902391619 nov.  21 20:29 musicbrainz_ngs_dump.rdf.ttl.zip

Fuseki 2.5

./fuseki-server --verbose --loc=/home/jmv/data/tdb /test1

http://localhost:3030/test1/query?query=select+*+where+{+%3FS+%3FP+%3FO+.+}+LIMIT+20&output=text&stylesheet=%2Fxml-to-html.xsl

Mail to SquirrelRDF authors

Damian Steer, davide.eynard@usi.ch

After playing with the SquirrelRDF tool to access to my IMAP mailbox in Google, I came to the conclusion that, although the mapping of IMAP and SPARQL is smart, it's more a research than a usable product.

First, it's not obvious to port it to latest Jena.

Second, in most cases it downloads all the mailbox before applying the query terms.

It would be nice to take into account all SPARQL filters, and LIMIT modifier, but that would quite a lot a work.

And third, as my goal is to make an intelligent agent that manages my mails and contacts, that's not what I need.

What I need is more a simple connector that mirrors the IMAP box into a local TDB database, with a simple vocabulary directly related to the IMAP fields. So the SPARQL queries will occur on the local IMAP mirror. Maybe that has already been done; anyway it's 2 or 3 days of work at most. Maybe the Gnowsis Email project can be re-used , but tha URL mentionned in the report "An IMAP plugin for SquirrelRDF" , https://www.getrefinder.com/about/content/apps , is no more active.

2012-11-20

Setting Log4j by configuration

In the main :

System.setProperty( "log4j.configuration", "/log4j.properties" );
BasicConfigurator.configure();

In log4j.properties ("stdout" has no special meaning ) :

log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=   %5p\t[%d] [%t] (%F:%L)\n     \t%m%n\n

IMAP to RDF with SquirrelRDF

Continued from earlier 2012-??.

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

Mail sent to Davide Eynard (should have sent to Damian Steer).

I think of reusing your code inside my GUI and framework EulerGUI [1] .

I would like to retrieve my Google mails to implement a Semantic management of contacts.

Are you aware of some users ?

I'm trying to compile the svn head .

This class is not in ARQ 2.5.0 :

com.hp.hpl.jena.sparql.engine.main.Stage

I could not take the abstract class

com.hp.hpl.jena.graph.query.Stage

Also StageList is not found .

There are 88 errors in eclipse, after doing

mvn eclipse:eclipse

Attached is the Maven pom.xml I have made .

Kind regards

[1] http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html

2012-11-19

Lost 6 days of blog by a sudden stop of Ubuntu while editing in Amaya :((( !

Translated SourceFactory in Scala with scalagen

Scalagen is a Java to Scala conversion tool. Convert via the command line like this:

mvn com.mysema.scalagen:scalagen-maven-plugin:0.1.3:main -DtargetFolder=target/scala

Or, simpler:

mvn scalagen:main
# and to convert test sources
mvn scalagen:test

Translated SourceFactory in Scala ( with scalagen and 2 manual corrections )

Failed tests:   test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>

Tests in error: 
  testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)

/home/jmv/src/eulergui/src/main/scala/eulergui/project/SourceFactory.scala:77: error: reassignment to val
[INFO]       url = openConnection.getURL
[INFO]           ^
[ERROR] /home/jmv/src/eulergui/src/main/scala/eulergui/project/SourceFactory.scala:95: error: recursive value looksLikeXMLStart needs type
[INFO]     val looksLikeXMLStart = looksLikeXMLStart(firstLine)

2012-11-13

<ontologiae> jmvanel: do you know http://amine-platform.sourceforge.net/

Progol

Manual of preceding version:

http://www.doc.ic.ac.uk/~shm/Software/progol4.5/man/tutorial4.4.ps

Inductive Logic Programming: Theory and methods

Stephen Muggleton, Luc de Raedt

http://www.sciencedirect.com/science/article/pii/0743106694900353

An Introduction to Progol - Dottorato di ricerca

by S Roberts - 1997

http://dottorato.di.uniba.it/dottoratoXXVI/dm/Progol.pdf

Experiments

I was able give Progol the output of Euler with eye --pcl :

cd ~/src/eulergui/examples/
eye --pcl kings_of_France.n3 > /tmp/k.pl
cd ~/src/progol5_0/source/
 ./progol /tmp/k.pl
CProgol Version 5.0

[Testing for contradictions]
[No contradictions found]
[No observables found]

No very satisfying, but it's good that Progol accepts Prolog with atoms betweens '' like:

'<http://dbpedia.org/property/father>'(
'<http://dbpedia.org/resource/Louis_Joseph,_Dauphin_of_France>',
'<http://dbpedia.org/resource/Louis_XVI_of_France>').

Hopefully the type and mode declarations for Progol can be obtained from ontology.

Before doing more with semantic web data, I run the example in Introduction to Progol by S Roberts :

eastbound(train1).
modeh(1,eastbound(+train))?
train(train1).
eastbound(train2). train(train2).
eastbound(train3). train(train3).
listing(eastbound/1)?
nextcar(train1,car1_1).
nextcar(train2,car2_1).
nextcar(train3,car3_1).
modeb(1,nextcar(+train,-car))?
car(car1_1).
car(car2_1).
car(car3_1).
modeb(1,shape(+car,#shape))?
shape(car1_1,circle).
shape(car2_1,circle).
shape(car3_1,circle).
shape(circle).

% negative examples:
:-eastbound(train4).
:-eastbound(train5).
:-eastbound(train6).

train(train4). train(train5). train(train6).
nextcar(train4,car4_1).
nextcar(train5,car5_1).
nextcar(train6,car6_1).
car(car4_1).
car(car5_1).
car(car6_1).
shape(car4_1,square).
shape(car5_1,square).
shape(car6_1,square).
shape(square).

% the big question
generalise(eastbound/1)?

it did not find the complete rule, only half of it:

eastbound(A) :- nextcar(A,B).

instead of :

eastbound(A) :- nextcar(A,B), shape(B,circle).

Posted here : https://aiguy.wordpress.com/2012/06/09/more-on-progol

A Brute Force Approach to Solving the Knight’s Tour Problem using Prolog

Robert Borrell , Wells Fargo Bank, Phoenix, Arizona, USA

I develop EulerGUI, a GUI tool for semantic web and rules, and I'd like to generate the mode and type from ontologies.

My use cases are : recover rules to :

2012-11-12

<jmvanel> this morning had a meeting with a guy working in identity management ; will probably work for them.

I dream of a browser plugin that will turn my navigation into N3

TODO

Trying C# in Euler

I was able to compile and run it on Ubuntu 12.10, after instaling mono-gmcs :

oem-laptop: ~/src/eulersharp/trunk/2004/01swap/src/Eulersharp/ % gmcs *.cs output/*.cs -r:System.Web 
 ...
Parser.cs(379,9): warning CS0219: The variable `start' is assigned but its value is never used
Compilation succeeded - 29 warning(s)

% ls -l *.exe
-rwxrwxr-x 1 jmv jmv 121344 nov.  12 18:48 AssemblyInfo.exe

% ./AssemblyInfo.exe
Version: 1.5.97
Usage: Euler [--step count] [--debug] [--trace] axiom ... [--nope] [--think] [--filter|--query] lemma

Also, I changed this at line 58 in AssemblyInfo.cs :

// [assembly: AssemblyKeyFile("C:/sfcvs/2004/01swap/common/data/key.snk")]
[assembly: AssemblyKeyFile("../../common/data/key.snk")]

However the result is empty for a simple case:

cd ~/src/eulergui/examples
svn info 
  https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/examples

AssemblyInfo.exe --nope --think BloodPressure.n3 --query catch_allQ.n3

Empty output , just prefixes !

Response by Jos:

This one is in the category "Previous engines" see http://eulersharp.sourceforge.net/README

and will remain so for the time being.

I recommend to (web)invoke the "Current engine" http://eulersharp.sourceforge.net/README#eye

Progol

Inductive logic programming :

http://en.wikipedia.org/wiki/Inductive_logic_programming

http://www.doc.ic.ac.uk/~shm/ilp.html

Looking at Progol : http://www.doc.ic.ac.uk/~shm/progol.html

Progol is by Stephen Muggleton

cd ~/src/progol5_0/source/
make progol

wc *c *h
 13915  36436 370418 total

2012-11-11

https://sourceforge.net/projects/n3editor/?source=recommended

https://sourceforge.net/projects/eulergui/files/eulergui/1.12/stats/timeline

Updated here about EG : http://stackoverflow.com/questions/5332937/desktop-sparql-client-for-jena-tdb

Trying Echo3 web fw example

svn co  https://svn.nextapp.com/svn/echo3/trunk echo3
cd echo3
ant dist
export ECHO3_LIB_HOME=$HOME/src/echo3/dist/lib
export SERVLET_LIB_JAR=$HOME/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar 
cd src/server-java-examples/numberguess
ant war
sudo cp war/NumberGuess.war  /var/lib/jetty/webapps/
sudo /etc/init.d/jetty start
sudoedit /etc/default/jetty
sudo /etc/init.d/jetty start

http://localhost:8080/NumberGuess/app

IMAP to RDF with SquirrelRDF

By Dr. Davide Eynard, PhD

Post-Doctoral Fellow and Lecturer

Università della Svizzera Italiana (University of Lugano)

Faculty of Communication Sciences

Institute of Communication Technologies

http://davide.eynard.it/2009/04/25/squirrelrdf-imap-is-out/

www.hpl.hp.com/techreports/2007/HPL-2007-161.pdf

svn co https://jena.svn.sourceforge.net/svnroot/jena/SquirrelRDF/trunk SquirrelRDF

cd lib
ln -s  ~/.m2/repository/org/apache/jena/jena-core/2.7.3/jena-core-2.7.3.jar .
ln -s  ~/.m2/repository/org/apache/jena/jena-arq/2.9.3/jena-arq-2.9.3.jar .

Mail sent to Davide Eynard (should have sent to Damian Steer). Continued on 2012-11-20

Semantic web based application framework

local links on "Semantic web based application framework"

Semantic management of contacts

Translated from my fr blog:

One idea I have is to make a semantic task manager with business rules. We can reuse existing tools, such as Google Calendar, and add annotations according to Semantic Web technologies to tasks, emails, contacts (provided that Google provide URI for this). Must be able to recover the data via web services or IMAP. Then you can add annotations as:

:contact1 :a :Partner .
:meeting1 a :Meeting ; :about :PartnerRelationship .

cf in french :

deductions-fr group :

Significant classes in ontology

CalendarEntry <|--- Visit, TelephoneCall, Encounter
EMail
EmployeeTitle, Company <|--- ITServices
properties : followUp
Contact <|--- Partner, Customer, Technical, Advisor (possible or actual), Candidate
Expectancy <|--- Contract, Partnership
Offer <|--- Training, Coaching, KnowledgeEngineering, Development

Rules

Features

Google API's

http://code.google.com/intl/fr-FR/apis/contacts/

http://code.google.com/apis/calendar/

http://code.google.com/intl/fr-FR/apis/tasks/

TODO EulerGUI

Trying thedatahub.org with N3

http://docs.ckan.org/en/latest/linked-data-and-rdf.html

This works:

curl -L -H "Accept: text/n3" http://thedatahub.org/dataset/gold-prices 

CKAN itself in thedatahub : http://thedatahub.org/dataset/ckan

I wonder what is the status of http://semantic.ckan.net/sparql/

Statistics:

SELECT (COUNT(?x) AS ?count) WHERE { ?x ?p ?o }

Result for dbpedia:

277551061^^http://www.w3.org/2001/XMLSchema#integer

Result for http://semantic.ckan.net/sparql/

720923^^http://www.w3.org/2001/XMLSchema#integer

Conclusion: http://semantic.ckan.net/sparql/ is useless : it does not contain the SPARQL endpoints, and not much data , as can be seen from this query :

CONSTRUCT {
<http://thedatahub.org/dataset/data-incubator-musicbrainz> ?P ?V .
} WHERE {
<http://thedatahub.org/dataset/data-incubator-musicbrainz> ?P ?V .
}

EulerGUI 1.12 announcements

On deductions-fr group

Bonjour

Je suis heureux d'annoncer la livraison 1.12 de EulerGUI, un outil de développement et un cadriciel pour le Web sémantique et les règles, sous licence LGPL, en Java.

Les améliorations concernent essentiellement des nouvelles fonctionnalités du client graphique pour le Web sémantique, et des corrections pour SPARQL. La liste complète est la suivante:

- Nouvel outil: si toutes les propriétés et les classes ne sont pas déclarées, générer un squelette d'ontologie pour les déclarations manquantes

- Nouvel outil: SPARQL 1.1 update : saisir du texte SPARQL et le serveur dans une fenêtre spécifique avec jEdit pour le texte SPARQL

- Une nouvelle source N3: Attempto Anglais Contrôlé

- Une nouvelle source N3: Squall : Anglais Contrôlé pour SPARQL

- Impression du temps de téléchargement dans la console pour SPARQL

- Améliorer la génération de Graphviz pour les faits et les règles

- Dans le champ de saisie d'une URL, la touche retour déclenche l'action

- Mises à niveau des bibliothèques : Euler: 2012-11, Drools 5.0 Beta1

Cadriciel

Cellule des tableaux N3: gérer les types XSD, représenter des propriétés objet sous forme d'hyperliens

FIX

- SPARQL: en cas d'erreur de syntaxe ou de temps limite, etc, montrer une fenêtre d'avertissement

- moteur Drools/N3 : CORRECTIF _:d kb:retract (?S ?P false ).

Télécharger:

ttps://sourceforge.net/projects/eulergui/

Documentation :

http://eulergui.sourceforge.net/documentation.html

Présentations, tutorials, vidéos :

http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L5890

on Semantic Web <semantic-web@w3.org>

[Announce] EulerGUI 1.12 - sent to semantic-web, eulergui-user

I am pleased to announce the release 1.12 of EulerGUI, a development tool and a framework for the Semantic Web and rules, under LGPL, in Java.

The improvements mainly concern new features in Semantic Web client GUI, and SPARQL fixes. The full list is :

GUI

- New tool: if all properties and classes are not declared, generate a skeleton ontology for missing declarations

- New tool: SPARQL 1.1 Update: enter SPARQL text and endpoint in a specific window with jEdit for SPARQL text

- new N3 source: ATTEMPTO Controled English parser

- new N3 source: Squall Controled English for SPARQL

- print download time in console for SPARQL

- enhance Graphviz generation for facts and rules

- in field for entering an URL, return key triggers action

- library upgrades : Euler 2012-11, Drools 5.0-Beta1

Framework

N3 table cell: manage XSD types, represent Object properties as hyperlinks

FIX

- SPARQL: in case of error, syntax, or timeout, etc, show a warning popup

- Drools/N3 engine : FIX _:d kb:retract ( ?S ?P false ) .

Download:

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

Documentation :

http://eulergui.sourceforge.net/documentation.html

Presentations, tutorials, videos, screenshots

http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L5890

Full Change Log :

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

Remote debug with eclipse

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000 \
   -jar target/eulergui-1.12-jar-with-dependencies.jar

In eclipse remote Java application , select "Socket attach" .

rww-play

oem-laptop: ~/src/rww-play/ % git pull --verbose 
remote: Counting objects: 109, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 65 (delta 35), reused 58 (delta 28)
Unpacking objects: 100% (65/65), done.
From git://github.com/read-write-web/rww-play
   502c2ce..97d6906  master     -> origin/master
fatal: Not a git repository: /home/jmv/src/w/rww-play/.git/modules/Play20

2012-11-10

TODO : put it in EG manual "Comparison of EulerGUI with TopBraid Composer"

2012-11-09

Upgraded to Java 1.7 09 :

Java(TM) SE Runtime Environment (build 1.7.0_09-b05)

10th ESWC 2013 - Semantics and Big Data

May 26-30, 2013, Montpellier, France.

http://2013.eswc-conferences.org/

==== *Second Call for Workshops and Tutorials* ====

ESWC 2013 invites the submission of tutorial and workshop proposals on all topics related to semantic technologies and neighboring fields.

The workshops and tutorials will take place on 26th and 27th of May, 2013.

=== Time Schedule ===

Proposals due: Nov 23, 2012 - 23:59 Hawaii Time

Notification of acceptance: Dec 7, 2012 - 23:59 Hawaii Time

Workshop and Tutorial days: May 26 and May 27, 2013

=== More Information ===

http://2013.eswc-conferences.org/important-dates/call-workshops

http://2013.eswc-conferences.org/important-dates/call-tutorials

Testing Jena Fuseki update + EulerGUI

Bob Ducharme did this too :) :

http://www.snee.com/bobdc.blog/2011/04/getting-started-with-sparql-up.html

 % ./fuseki-server --verbose --update --loc=/home/jmv/data/tdb /test1
15:33:13 INFO  Server               :: TDB dataset: directory=/home/jmv/data/tdb
15:33:14 INFO  Server               :: Dataset path = /test1
15:33:14 INFO  Server               :: Fuseki 0.2.6-SNAPSHOT 2012-11-01T09:09:12+0000
15:33:14 INFO  Server               :: Started 2012/11/02 15:33:14 CET on port 3030

Launching an update from EulerGUI,

PREFIX foaf:  <http://xmlns.com/foaf/0.1/>
INSERT DATA { <http://myprofile-project.org/XXXX#me> a foaf:Person ;
}

with this server URI:

http://localhost:3030/test1/update

I get this on the Fuseki console :

18:31:42 INFO  Fuseki               :: [1] POST http://localhost:3030/test1/update
18:31:42 INFO  Fuseki               :: [1]   Host                 localhost:3030
18:31:42 INFO  Fuseki               :: [1]   Content-Length       954
18:31:42 INFO  Fuseki               :: [1]   Content-Type         application/sparql-update
18:31:42 INFO  Fuseki               :: [1]   User-Agent           Apache-HttpClient/4.1.2 (java 1.5)
18:31:42 INFO  Fuseki               :: [1]   Connection           keep-alive
18:31:42 INFO  Fuseki               :: [1] Update = PREFIX  dc:   <http://purl.org/dc/elements/1.1/> PREFIX  dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX  e:    <http://eulersharp.sourceforge.net/2003/03swap/log-rules#> PREFIX  foaf: <http://xmlns.com/foaf/0.1/> PREFIX  void: <http://rdfs.org/ns/void#> PREFIX  list: <http://www.w3.org/2000/10/swap/list#> PREFIX  javam: <http://java.sun.com/method#> PREFIX  log:  <http://www.w3.org/2000/10/swap/log#> PREFIX  javap: <http://java.sun.com/predicate#> PREFIX  rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX  eg:   <http://eulergui.sourceforge.net/engine.owl#> PREFIX  string: <http://www.w3.org/2000/10/swap/string#> PREFIX  dbpedia: <http://dbpedia.org/resource/> PREFIX  owl:  <http://www.w3.org/2002/07/owl#> PREFIX  rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX  java: <http://java.sun.com/class#> PREFIX  dbpprop: <http://dbpedia.org/property/>  INSERT DATA {   <http://myprofile-project.org/XXXX#me> rdf:type foaf:Person . } 
18:31:43 INFO  Fuseki               :: [1] 204 No Content

Then I checked the database content with this user web interface : http://localhost:3030/sparql.tpl and the catch-all query :

construct { ?S ?P ?O } where { ?S ?P ?O } 

Work fine :) BUT !!!!!!!!!! no N3 or Turtle from Fuseki !!!!!!!!!

EulerGUI release 1.12 : DONE

Fixing test suite in EulerGUI

Results :

Failed tests:   testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700

Tests in error: 
  testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*"

Release :

DISPLAY=:1 mvn release:prepare
DISPLAY=:1 mvn release:perform

<jmvanel> release is well on the way : https://eulergui.svn.sourceforge.net/svnroot/eulergui/tags/eulergui-1.12

<jmvanel> meanwhile , reading "Programming in Scala"

[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 50:01.994s

Upgraded to Ubuntu 2012.10

<jmvanel> have to upgrade my svn directories

<jmvanel> it seems that my HDMI Ubuntu bug is over :)

2012-11-08

markdown syntax : link

2012-11-07

jmvanel> just booked at http://agi-conference.org/2012/schedule/

http://stackoverflow.com/questions/8446218/how-to-see-an-html-page-on-github-as-a-normal-rendered-html-page-to-see-preview

EulerGUI release 1.12

rm test/new_source.n3

DISPLAY=:1 LANG=en mvn -f pom_jar.xml release:prepare -Dresume=false
[INFO] Checking dependencies and plugins for snapshots ...
There are still some remaining snapshot dependencies.
: Do you want to resolve them now? (yes/no) no: : ^C

% DISPLAY=:1 LANG=en mvn -f pom_jar.xml release:prepare -Dresume=false -DdryRun=true --debug
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7:22.169s
[INFO] Finished at: Wed Nov 07 12:29:14 CET 2012
[INFO] Final Memory: 13M/168M
[INFO] ------------------------------------------------------------------------

For release , revert to plain no-parent pom ( from Revision 3338 )

[INFO] Results :
[INFO] 
[INFO] Failed tests:   testStringUS(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...string, language=en-[us](..)
[INFO]   testAloneSubject(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..)
[INFO]   testListSubjectQVar(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..)
[INFO]   testPropertyList(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..)
[INFO]   testSimpleBracketBlocMakesJustOneTriple(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..)
[INFO]   testRootFormula(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#someName20(..)
[INFO] 
[INFO] Tests in error: 
[INFO]   testSquall(eulergui.inputs.TestSPARQL)
[INFO] 
[INFO] Tests run: 202, Failures: 6, Errors: 1, Skipped: 0
[INFO] 
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD FAILURE

On Debian:

[INFO] Failed tests:   testAloneSubject(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..)
[INFO]   testListSubjectQVar(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..)
[INFO]   testPropertyList(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..)
[INFO]   testSimpleBracketBlocMakesJustOneTriple(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..)
[INFO]   testRootFormula(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#someName20(..)
[INFO]   testStringUS(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...string, language=en-[us](..)
[INFO]   testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700

2012-11-06

https://github.com/taskify/taskify.github.com

svn export -r 3038 https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/pom_minimal.xml 
A    pom_minimal.xml
Fin d'exportation.
oem-laptop: /tmp/ % svn export -r 3038 https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/pom.xml      

COMMIT

- remove prints on the console

- doc. about Scala build

2012-11-05

http://www.w3.org/People/Berners-Lee/

Question EG IEC

<jmvanel> to manage versionning, what do you prefer : reification , or putting old triples in different named graphs ?

<jmvanel> 2 use cases: 1) evolution of an ontology

<jmvanel> 2) managing music tags: update tags from internet , or compute tempo

New feature in #EulerGUI : SPARQL 1.1 Update: enter SPARQL text and endpoint in a specific window

Download: http://sourceforge.net/projects/eulergui/files/eulergui/1.12/

COMMIT

- FIX TestN3FormatForProject

- upgrade Euler(sharp) to 2012-11

- update CHANGELOG

testSquall fails : normal on Ubuntu :( !

TEST Results :
Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
Tests run: 202, Failures: 0, Errors: 1, Skipped: 0
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15:49.167s
[INFO] Finished at: Mon Nov 05 11:57:47 CET 2012
[INFO] Final Memory: 42M/380M

Thread [AWT-EventQueue-0] (Suspended)
ApplicationKB.renameURI(String, String) line: 743
Project.setProjectURI(URI) line: 1447
SaveProjectAsN3LocalAction.actionPerformed(ActionEvent) line: 49
JMenu$1(AbstractButton).fireActionPerformed(ActionEvent) line: 2018

Configure gnome-terminal

cat ~/bin/jvm-terminals
gnome-terminal \
  --tab --title=eulergui  --working-directory=$HOME/src/eulergui --active \
  --tab --title=audio-dam --working-directory=$HOME/bizz/taxochronos/src/audio-dam/ui-swing \
  --tab --title=eulersharp  --working-directory=$HOME/src/eulersharp \
  --tab --title=deductions --working-directory=$HOME/src/deductions &

2012-11-04

COMMIT

- try to make RuleBasedApplicationStarter and ApplicationKB more thread safe

- extract class SaveProjectAsN3LocalAction

TODO: Failed tests: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700

test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>

TODO reestablish modification Checker for user preferences

bad N3 subject in internal KB, when adding an N3 source in a new (unsaved) project :

<file:/home/jmv/src/eulergui/> <http://www.w3.org/2002/07/owl#imports> <examples/plants.n3> .

2012-11-02

Le sujet de #dig est : Decentralized Information Group @ MIT http://dig.csail.mit.edu/

http://www.advogato.org/

webid Implementations

http://www.w3.org/2005/Incubator/webid/wiki/Implementations

https://github.com/stars

http://blog.webplatform.org/

construct { ?S ?P ?O } where { ?S ?P ?O }

Testing Fuseki

oem-laptop: ~/src/jena-fuseki-0.2.6-SNAPSHOT/ % ./fuseki-server --verbose --loc=/home/jmv/data/tdb
15:31:17 INFO  Server               :: TDB dataset: directory=/home/jmv/data/tdb
No dataset path name given

 % ./fuseki-server --verbose --loc=/home/jmv/data/tdb /test1
15:33:13 INFO  Server               :: TDB dataset: directory=/home/jmv/data/tdb
15:33:14 INFO  Server               :: Dataset path = /test1
15:33:14 INFO  Server               :: Fuseki 0.2.6-SNAPSHOT 2012-11-01T09:09:12+0000
15:33:14 INFO  Server               :: Started 2012/11/02 15:33:14 CET on port 3030

http://localhost:3030/test1/update

Testing SPARQL update

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:208)
at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:154)
at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:128)
at com.hp.hpl.jena.sparql.modify.UpdateProcessRemote.execute(UpdateProcessRemote.java:60)
at eulergui.gui.tools.LaunchSPARQLUpdate.launchUpdate(LaunchSPARQLUpdate.java:89)

Demo of dynamic N3 table

eg examples/table_app.n3p

Add this in N3 shell

<timbl> a foaf:Person ; foaf:name "Tim BL"; foaf:knows <http://jmvanel.free.fr>.

Then the table is updated with the triples about <timbl> .

tim bl pointers

Framework for Policy Aware Reuse of Content on the WWW

- 2009 - by Oshani Wasana Seneviratne.

http://dspace.mit.edu/bitstream/handle/1721.1/53327/550582069.pdf

http://aiti.mit.edu/accounts/37/

+ another on CNL ???

Discussion with Alex. Bertails

Drools, Jena rules : how to integrate in Banana ?

banana-rdf

https://dvcs.w3.org/hg/read-write-web/

See "to run the Web App" in README.markdown

Access the URL in EulerGUI:

LDP at TPAC

linked data platform Proposed spec.: http://www.w3.org/2012/ldp/hg/ldp.html ( older : http://www.w3.org/TR/ldp/#toc )

Participants

Arnaud Le Hors == chair person

http://www.w3.org/2012/ldp/wiki/F2F1#Day_2_-_November_2nd

Eric Gordon Prud'hommeaux http://www.w3.org/People/Eric/

Decentralized ACL != pure ACL

http://www.w3.org/2012/ldp/wiki/AccessControl

Is this relevant ?

I need examples of what one cannot do with SPARQL servers , and could do with LDP servers .

long discussion on composition , strong or not : containment or agreggation

test suite : UCR <cygri> example of UC&R: http://www.w3.org/TR/rdf-dawg-uc/

BDD ?

<betehess> http://en.wikipedia.org/wiki/Behavior-driven_development

HTTP vocabulary in RDF

<rgarcia> cygri: HTTP-in-RDF may be relevant for this

http://www.w3.org/2005/Incubator/webid/spec/

2012-11-01

http://semanticweb.com/spotlight-on-callimachus_b20500 ???

www.univ-valenciennes.fr/LAMIH-intra/site/specifique/publications/203569.pdf

LDP at TPAC

Linked Data Platform

http://www.w3.org/2012/ldp/wiki/Main_Page

* [ericP] (eric@team.irc.w3.org): Eric Prud'hommeaux
* [ericP] team.irc.w3.org :W3C Team IRC Server
* [ericP] @#sparql @#ldp @#rdf-wg @#sw-team @#hcls2 @#hcls
* [ericP] is connected via SSL (secure link)
* [ericP] inactif  00:00:37, ouverture de session : Tue Oct 16 02:22:36
* [ericP] Fin de la liste WHOIS.
* [ahaller2] (~ahaller2@public.cloak): Armin Haller
* [ahaller2] public.irc.w3.org :W3C Public IRC Server
* [ahaller2] #linkeddata #ldp
* [ahaller2] inactif  00:24:43, ouverture de session : Thu Nov  1 13:08:36
* [ahaller2] Fin de la liste WHOIS.
* [antonis] (~antonis@public.cloak): Antonis Loizou
* [antonis] public.irc.w3.org :W3C Public IRC Server
* [antonis] #ldp
* [antonis] inactif  01:20:52, ouverture de session : Thu Nov  1 09:10:28
* [antonis] Fin de la liste WHOIS.
* [ArnaudLH] (~alehors@public.cloak): Arnaud  Le Hors
* [ArnaudLH] public.irc.w3.org :W3C Public IRC Server
* [ArnaudLH] #ldp
* [ArnaudLH] inactif  00:01:25, ouverture de session : Thu Nov  1 08:49:51
* [ArnaudLH] Fin de la liste WHOIS.
* [Ashok_Malhotra] (~5bd9a8dc@public.cloak): [5bd9a8dc] CGI:IRC User
* [Ashok_Malhotra] public.irc.w3.org :W3C Public IRC Server
* [Ashok_Malhotra] #ldp
* [Ashok_Malhotra] inactif  00:00:39, ouverture de session : Thu Nov  1 13:31:17
* [Ashok_Malhotra] Fin de la liste WHOIS.
* [BartvanLeeuwen] (~bart@public.cloak): Bart van Leeuwen
* [BartvanLeeuwen] public.irc.w3.org :W3C Public IRC Server
* [BartvanLeeuwen] #ldp
* [BartvanLeeuwen] inactif  00:29:46, ouverture de session : Thu Nov  1 10:56:42
* [BartvanLeeuwen] Fin de la liste WHOIS.
* [bblfish] (~bblfish@public.cloak): Henry Story
* [bblfish] public.irc.w3.org :W3C Public IRC Server
* [bblfish] #ldp #webid
* [bblfish] inactif  00:08:10, ouverture de session : Thu Nov  1 16:52:00
* [bblfish] Fin de la liste WHOIS.
* [betehess] (bertails@team.cloak): Alexandre Bertails
* [betehess] team.irc.w3.org :W3C Team IRC Server
* [betehess] #ldp #webid #validator #sw-team @#mouettes #RDB2RDF
* [betehess] is connected via SSL (secure link)
* [betehess] inactif  00:06:02, ouverture de session : Thu Nov  1 08:55:55
* [betehess] Fin de la liste WHOIS.
* [cygri] (~cygri@public.cloak): Richard Cyganiak
* [cygri] public.irc.w3.org :W3C Public IRC Server
* [cygri] #ldp #gld #rdf-wg #RDB2RDF
* [cygri] inactif  00:09:30, ouverture de session : Thu Nov  1 13:07:58
* [cygri] Fin de la liste WHOIS.
* [davidwood] (~davidwood@public.cloak): David Wood
* [davidwood] public.irc.w3.org :W3C Public IRC Server
* [davidwood] #rdf-wg #ldp #swcg
* [davidwood] inactif  00:14:48, ouverture de session : Thu Nov  1 13:12:13
* [davidwood] Fin de la liste WHOIS.
* [develD] (~nrichter@public.cloak): Norman Richter
* [develD] public.irc.w3.org :W3C Public IRC Server
* [develD] #ldp
* [develD] inactif  00:54:52, ouverture de session : Thu Nov  1 16:05:34
* [develD] Fin de la liste WHOIS.
* [ivan] (ivan@team.cloak): Ivan Herman
* [ivan] team.irc.w3.org :W3C Team IRC Server
* [ivan] #ldp #sw-team #swcg #prov #rdfa #rdf-wg
* [ivan] is connected via SSL (secure link)
* [ivan] inactif  00:09:36, ouverture de session : Thu Nov  1 13:52:57
* [ivan] Fin de la liste WHOIS.
* [jmvanel] (~jmvanel@public.cloak): jmvanel
* [jmvanel] public.irc.w3.org :W3C Public IRC Server
* [jmvanel] #ldp #webid
* [jmvanel] is connecting from *@public.cloak 91.217.168.220
* [jmvanel] inactif  00:51:12, ouverture de session : Thu Nov  1 15:48:22
* [jmvanel] Fin de la liste WHOIS.
* [JohnArwe] (~johnarwe@public.cloak): JohnArwe
* [JohnArwe] public.irc.w3.org :W3C Public IRC Server
* [JohnArwe] #ldp
* [JohnArwe] inactif  01:46:51, ouverture de session : Thu Nov  1 15:13:41
* [JohnArwe] Fin de la liste WHOIS.
* [jonathandray] (~jonathandray@public.cloak): Jonathan Dray
* [jonathandray] public.irc.w3.org :W3C Public IRC Server
* [jonathandray] #ldp
* [jonathandray] inactif  00:50:57, ouverture de session : Thu Nov  1 16:09:16
* [jonathandray] Fin de la liste WHOIS.
* [krp] (~krp@public.cloak): Kevin Page
* [krp] public.irc.w3.org :W3C Public IRC Server
* [krp] #ldp
* [krp] inactif  00:39:32, ouverture de session : Thu Nov  1 16:13:51
* [krp] Fin de la liste WHOIS.
* [LeeF] (~lee@public.cloak): Lee Feigenbaum
* [LeeF] public.irc.w3.org :W3C Public IRC Server
* [LeeF] #ldp #rdf-wg #RDB2RDF #sparql
* [LeeF] inactif  02:43:26, ouverture de session : Thu Nov  1 14:17:10
* [LeeF] Fin de la liste WHOIS.
* [MacTed] (~Thud@public.cloak): That Guy There
* [MacTed] public.irc.w3.org :W3C Public IRC Server
* [MacTed] @#virtuoso @#swxg #egov #RDB2RDF #federated #webid #rdf-wg #rdfa #prov #gld @#unhosted #sparql #hcls #hcls2 #privacy #ldp #rww
* [MacTed] inactif  00:10:09, ouverture de session : Thu Nov  1 15:26:11
* [MacTed] Fin de la liste WHOIS.
* [nmihindu] (~nmihindu@public.irc.w3.org): localhost/127.0.0.1 - W3C Public qwebirc
* [nmihindu] public.irc.w3.org :W3C Public IRC Server
* [nmihindu] #ldp
* [nmihindu] inactif  00:56:44, ouverture de session : Thu Nov  1 16:03:57
* [nmihindu] Fin de la liste WHOIS.
* [oberger] (~oberger@public.cloak): Olivier Berger
* [oberger] public.irc.w3.org :W3C Public IRC Server
* [oberger] #webid #ldp
* [oberger] inactif  00:01:28, ouverture de session : Thu Nov  1 14:26:39
* [oberger] Fin de la liste WHOIS.
* [rgarcia] (~rgarcia@public.cloak): Raúl García Castro
* [rgarcia] public.irc.w3.org :W3C Public IRC Server
* [rgarcia] #ldp
* [rgarcia] inactif  00:34:54, ouverture de session : Thu Nov  1 16:03:17
* [rgarcia] Fin de la liste WHOIS.
* [roger] (~roger@public.irc.w3.org): localhost/127.0.0.1 - W3C Public qwebirc
* [roger] public.irc.w3.org :W3C Public IRC Server
* [roger] #ldp
* [roger] inactif  00:16:18, ouverture de session : Thu Nov  1 14:19:23
* [roger] Fin de la liste WHOIS.
* [RRSAgent] (rrsagent@team.irc.w3.org): Chat Logger
* [RRSAgent] team.irc.w3.org :W3C Team IRC Server
* [RRSAgent] #prov #ab #html-techs-tf #i18n #webfonts #xproc #signage #multimodal #indie-ui #ldp #eo #crypto #dap #mlw-lt @#ac #webappsec #tpac #css #html-wg
* [RRSAgent] is connected via SSL (secure link)
* [RRSAgent] inactif  00:02:05, ouverture de session : Tue Oct 16 02:22:46
* [RRSAgent] Fin de la liste WHOIS.
* [Ruben] (~ruben@public.cloak): Ruben Verborgh
* [Ruben] public.irc.w3.org :W3C Public IRC Server
* [Ruben] #ldp
* [Ruben] inactif  00:39:27, ouverture de session : Thu Nov  1 15:46:58
* [Ruben] Fin de la liste WHOIS.
* [sandro] (sandro@team.irc.w3.org): Sandro Hawke
* [sandro] team.irc.w3.org :W3C Team IRC Server
* [sandro] #tr #linkeddata #egov #gld #ldp #sw-team
* [sandro] is connected via SSL (secure link)
* [sandro] inactif  00:04:54, ouverture de session : Tue Oct 16 02:22:46
* [sandro] Fin de la liste WHOIS.
* [SteveBattle] (~Steve@public.cloak): Steve Battle
* [SteveBattle] public.irc.w3.org :W3C Public IRC Server
* [SteveBattle] #ldp
* [SteveBattle] inactif  00:04:11, ouverture de session : Thu Nov  1 13:08:59
* [SteveBattle] Fin de la liste WHOIS.
* [SteveS] (~sspeiche@public.cloak): Steve Speicher
* [SteveS] public.irc.w3.org :W3C Public IRC Server
* [SteveS] #ldp
* [SteveS] inactif  00:13:46, ouverture de session : Thu Nov  1 13:09:21
* [SteveS] Fin de la liste WHOIS.
* [svillata] (~svillata@public.irc.w3.org): localhost/127.0.0.1 - W3C Public qwebirc
* [svillata] public.irc.w3.org :W3C Public IRC Server
* [svillata] #ldp
* [svillata] inactif  00:26:34, ouverture de session : Thu Nov  1 16:03:57
* [svillata] Fin de la liste WHOIS.
* [timbl] (timbl@team.cloak): Tim Berners-Lee
* [timbl] team.irc.w3.org :W3C Team IRC Server
* [timbl] #ldp #ac #tpac-chat #tagmem
* [timbl] is connected via SSL (secure link)
* [timbl] inactif  00:15:30, ouverture de session : Thu Nov  1 13:21:16
* [timbl] Fin de la liste WHOIS.
* [tpacbot] (~nodebot@public.cloak): nodeJS IRC client
* [tpacbot] public.irc.w3.org :W3C Public IRC Server
* [tpacbot] #i18n #indie-ui #html-wg #webappsec #mlw-lt #ldp #crypto #dap
* [tpacbot] inactif  02:04:39, ouverture de session : Thu Nov  1 13:51:22
* [tpacbot] Fin de la liste WHOIS.
* [trackbot] (trackbot@team.cloak): TrackBot
* [trackbot] team.irc.w3.org :W3C Team IRC Server
* [trackbot] #tracker #html-media #wcag2ict #ldp #indie-ui #mediacap #crypto #mlw @#crm #mlw-lt #coremob #webid #hcg #webdocs @#test20111026 @#htmldata @#webschema #dntchairs #dnt #webappsec #council
* [trackbot] @#oilgaschem #eval #gld #webrtc #rd #prov #audio #webtv #rdf-wg #webevents #ogd #webperf @#newstd #webfonts #fx #rdfa #html-a11y #dap @#wpag @#ws-ra #geolocation #cg @#wsri @#mediaann
* [trackbot] #mediafrag @#tsdtf #webapps #egov #xmlsec @#pr-firm @#psig @#soap-jms @#awwsw #html-wg #ercimsys @#ws-policy-eds @#jltf @#owl @#sml-eds @#htmltest #exi @#rif @#ua #xslfo #math #eo @#au
* [trackbot] #sparql #wai-wcag #swcg @#voice #multimodal #tagmem @#forms #pf #i18n @#er #css #svg #ab @#w3t
* [trackbot] inactif  00:04:54, ouverture de session : Thu Nov  1 16:50:23
* [trackbot] Fin de la liste WHOIS.
* [webr3] (~nathan@public.cloak): webr3
* [webr3] public.irc.w3.org :W3C Public IRC Server
* [webr3] #ldp #identity #social #webid
* [webr3] inactif  01:22:35, ouverture de session : Mon Oct 29 15:04:32
* [webr3] Fin de la liste WHOIS.
* [Yves] (ylafon@team.irc.w3.org): The Fool on The Hill
* [Yves] team.irc.w3.org :W3C Team IRC Server
* [Yves] #tpac-chat #tpac #webapps #webidl #wam #wamt #monkeys #pirate #tagmem #mediafrag #ldp
* [Yves] is an IRC operator
* [Yves] is connected via SSL (secure link)
* [Yves] inactif  03:07:20, ouverture de session : Tue Oct 16 08:02:15

Testing EulerGUI

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended)
ApplicationKB.projectLoaded(Project) line: 394
ProjectChangeSupport.fireProjectLoaded(Project) line: 116
Project.prepare() line: 1131
ProjectFactory.prepareProject(Project, boolean) line: 335
ProjectFactory.prepareProject(Project, URL, boolean) line: 328
ProjectGUI$2.run() line: 368
Thread.run() line: 722

Testing Protégé

Protégé 4.2.0 build 276, OWL API 3.2.5 1957

Reading :

<http://bla> a owl:Ontology ;
<http://bla> owl:imports <plants.n3> .

Stack:

Error 4 Logged at Thu Nov 01 14:26:57 CET 2012
IllegalArgumentException: URI is not absolute
    java.net.URI.toURL(URI.java:1095)
    org.protege.editor.owl.model.io.WebConnectionIRIMapper.getDocumentIRI(WebConnectionIRIMapper.java:41)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.getDocumentIRIFromMappers(OWLOntologyManagerImpl.java:950)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:627)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadImports(OWLOntologyManagerImpl.java:1090)
    uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.makeLoadImportRequest(OWLOntologyManagerImpl.java:1118)
    org.coode.owlapi.rdfxml.parser.TPImportsHandler.handleTriple(TPImportsHandler.java:89)
    org.coode.owlapi.rdfxml.parser.OWLRDFConsumer.handleStreaming(OWLRDFConsumer.java:1700)
    org.coode.owlapi.rdfxml.parser.OWLRDFConsumer.statementWithResourceValue(OWLRDFConsumer.java:1655)
    uk.ac.manchester.cs.owl.owlapi.turtle.parser.OWLRDFConsumerAdapter.handleTriple(OWLRDFConsumerAdapter.java:87)
    uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleParser.parseObject(TurtleParser.java:362)
  

COMMIT

NOTE: I'm obliged to redirect System.err , because the errors in execution such as :

TemporaryFrame.TemporaryFrame(): java.net.UnknownHostException: data.fm: Nom ou service inconnu

are swallowed deep inside ARQ 's UpdateProcessRemote class , by a printStackTrace().

java.net.UnknownHostException: data.fm: Nom ou service inconnu
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866)
at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258)
at java.net.InetAddress.getAllByName0(InetAddress.java:1211)
at java.net.InetAddress.getAllByName(InetAddress.java:1127)
at java.net.InetAddress.getAllByName(InetAddress.java:1063)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:242)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:130)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:208)
at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:154)
at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:128)
at com.hp.hpl.jena.sparql.modify.UpdateProcessRemote.execute(UpdateProcessRemote.java:60)

TODO EulerGUI

2012-10-31

Thread [main] (Suspended (exception NullPointerException))
ProjectFactory.restoreN3ProjectInN3(URI) line: 301
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 407
ProjectFactory.restoreAny(URI, boolean) line: 391
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 62
ProjectGUI.main(String[]) line: 224
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
ClassReference.invokeMethod(String, Object[], Class[]) line: 137
ClassReference.startApplication(String[]) line: 101
TestN3FormatForProject(TestJemmy).launchEulerGUIWithArgument(String) line: 261
TestN3FormatForProject.test_read_newproject_n3p_n3() line: 49

Results :

Failed tests:   test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<3>

Tests in error: 
  testimportN3(eulergui.project.TestProjectWithSubProjects)
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Wait for "JComponent with tool tip "Open N3 result.*"" subcomponent to be displayed
  testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*"
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 202, Failures: 1, Errors: 5, Skipped: 0

COMMIT

FIX Graphviz generation :

- remove bad "" on nodes and links

- Implication edge for a rule is now bold ; edge is between nodes : TODO should be between subgraphs

- Implication Edges are now dashed for triples on consequent side of rules

TESTED with examples/family_kings.n3p

2012-10-30

Questions to Henry S

Regarding EulerGUI and WebId

Regarding your work with Play for a facebook like app

Trying SPARQL 1.1 update with data.fm

  1. In fact it could not work in EulerGUI for SPARQL 1.1 update
  2. and I don"t even know how to do SPARQL 1.1 update on an remote server with Jena ARQ !?!
N3SourceFromSPARQLSource.doUpdate(): file:/home/jmv/jmvanel.free.fr/data_fm_construct2.rq ; https://data.fm
Cause:
HttpException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Test SPARQL 1.1 https://data.fm/

PREFIX foaf: <http://xmlns.com/foaf/0.1/>

INSERT DATA { 
<http://jmvanel.free.fr/jmv.rdf#me>
      a       foaf:Person ;
      foaf:family_name "Vanel" ;
      foaf:givenname "Jean-Marc" ;
      foaf:homepage <file:/home/jmv/jmvanel.free.fr/> ;
      foaf:knows <http://sort-of.strangled.net/foaf.rdf#me> , <http://sort-of.crabdance.com/foaf.rdf#me> , <http://danbri.org/foaf.rdf#danbri> , <http://bblfish.net/people/henry/card#me> , <http://fcns.eu/people/andrei/card#me> , <http://moustaki.org/foaf.rdf#moustaki> , <http://www.agfa.com/w3c/jdroo/card.rdf#me> ;
     foaf:name "Jean-Marc Vanel" ;
      foaf:phone <tel:+33-689-162-952> ;
      foaf:schoolHomepage <http://www.ens-cachan.fr/> , <http://unice.fr> ;
      foaf:title "Mr" ;
      foaf:workInfoHomepage  <http://deductions-software.com> ;
      foaf:workplaceHomepage <http://deductions-software.com> .
}

http://graphite.ecs.soton.ac.uk/browser/?uri=http%3A%2F%2Fmelvincarvalho.com%2F

http://melvincarvalho.com/

My alarm clock : mplayer

sleep 8h 15m ; mplayer \
~/Musique/Jimi\ Hendrix\ -\ 1967\ -\ Axis-Bold\ As\ Love/02\ Up\ From\ The\ Skies.flac

Demo to Tim Berners Lee

eg ~/jmvanel.free.fr/jmv.rdf
cd ~/src/eulergui/examples
eg kings_of_France-genealogy_smart.rq 
eg family_kings.n3p  
eg book.n3

TODO in EulerGUI

Nice answer by Arnte Ranta on verbalizing GF

Nice answer by Arnte Ranta to my suggestion on verbalizing GF:

This is an idea with a lot of potential. One could have an abstract syntax for grammar rules, linearized to both GF code and to natural language verbalizations. The trick is to keep the verbalizations high-level enough - not paraphrasing all details of the code, but just capturing some general patterns.

There is a small example of the idea - but not very high level - in GF/examples/grammar-terms, see

https://github.com/GrammaticalFramework/GF/tree/master/examples/grammar-terms

A resource that would be great to have to extend it is a multilingual dictionary of grammar terms. Parts of it could perhaps be extracted from a source like Wikipedia. The use case I have in mind is an automatic generation of grammar documents for different languages in the RGL. Another case is grammar programming by voice.

At TPAC in Lyon - RWW

http://www.w3.org/community/rww/wiki/TPAC-Lyon-2012

identification , authentifition, authorization

philipp: we develop OntoWiki,

Content of http://www.w3.org/2005/Incubator/webid/tpac/group in EulerGUI :

<http://www.w3.org/2005/Incubator/webid/tpac/group#socWeb>
      a       foaf:Group ;
      foaf:member <https://my-profile.eu/people/gregoryB/card#me> , <https://my-profile.eu/people/pmaret/card#me> , <https://my-profile.eu/people/annbass/card#me> , <https://my-profile.eu/people/canary/card#me> , <https://my-profile.eu/people/cora1618/card#me> , <http://www.normanrichter.de/webid/norman#me> , <https://my-profile.eu/people/pfrischmuth/card#me> , <https://my-profile.eu/people/fwagner/card#me> , <https://my-profile.eu/people/betehess/card#me> , <https://my-profile.eu/people/jonathandray/card#me> .

An export as HTML in EulerGUI would be nice !

2012-10-29

GitHub/TEA-eboook

BananaBread : C++ ==> JavaScript

Kozea

@W3Training

W3C community group

TODO : FIX GraphvizFrame

http://jmvanel.free.fr/jmv.rdf#me

The bad stuff is output by rdfModel.getLocalN3().toString() ,

which is implemented as :

return IOManager.getLocalCache(this);

Stack:

16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: java.lang.RuntimeException: failed to GET /home/jmv/.eulergui/n3_cache/jmv.rdf#me_906479892813769583.rdf
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at euler.Euler.fromWeb(Euler.java:2360)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at euler.Euler.fromWeb(Euler.java:2420)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at euler.Euler.load(Euler.java:479)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at n3_project.helpers.N3toGraphviz.doGraphviz(N3toGraphviz.java:35)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.actions.GraphvizFrame.showGraphvizFrame(GraphvizFrame.java:23)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at eulergui.gui.actions.GraphvizFrame$1.actionPerformed(GraphvizFrame.java:44)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Component.processMouseEvent(Component.java:6505)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Component.processEvent(Component.java:6270)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Container.processEvent(Container.java:2229)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Component.dispatchEventImpl(Component.java:4861)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Container.dispatchEventImpl(Container.java:2287)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Component.dispatchEvent(Component.java:4687)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Container.dispatchEventImpl(Container.java:2273)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Window.dispatchEventImpl(Window.java:2713)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.Component.dispatchEvent(Component.java:4687)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue.access$000(EventQueue.java:101)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue$3.run(EventQueue.java:666)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue$3.run(EventQueue.java:664)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.security.AccessController.doPrivileged(Native Method)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue$4.run(EventQueue.java:680)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue$4.run(EventQueue.java:678)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.security.AccessController.doPrivileged(Native Method)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0:  at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

This exists :

jmv.rdf%23me_9192449597394896009.n3

but after this line:

file = URLDecoder.decode(file);

it becomes : jmv.rdf#me_9192449597394896009.n3 , which does not exist !!!

At TPAC in Lyon

IRC Config. for XChat : irc.w3.org/6665

http://www.w3.org/community/rww/wiki/TPAC-Lyon-2012

https://my-profile.eu/

<bblfish> http://tools.ietf.org/html/rfc6698

<bblfish> http://tools.ietf.org/wg/dane/

timbl:

http://dig.csail.mit.edu/2005/ajar/ajaw/Developer.html : rather github ???

<trueg> Get a bleeding edge build of Tabulator here: http://dig.csail.mit.edu/2007/tab/snapshot

My WebId is : http://jmvanel.free.fr/jmv.rdf#me

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

<betehess> RRSAgent, please generate minutes

<RRSAgent> I have made the request to generate http://www.w3.org/2012/10/29-webid-minutes.html betehess

% wget --server-response http://www.w3.org/2005/Incubator/webid/tpac/group
--2012-10-29 16:18:10--  http://www.w3.org/2005/Incubator/webid/tpac/group
Résolution de www.w3.org... 128.30.52.37
Connexion vers www.w3.org|128.30.52.37|:80...échec: Connexion terminée par expiration du délai d'attente.
Nouvel essai.

--2012-10-29 16:18:37--  (essai: 2)  http://www.w3.org/2005/Incubator/webid/tpac/group
Connexion vers www.w3.org|128.30.52.37|:80...connecté.
requête HTTP transmise, en attente de la réponse...
  HTTP/1.1 200 OK
  Date: Mon, 29 Oct 2012 15:18:38 GMT
  Server: Apache/2
  Content-Location: group.rdf
  Vary: negotiate,accept
  TCN: choice
  Last-Modified: Mon, 29 Oct 2012 12:57:26 GMT
  ETag: "491-4cd3236113980;4cd3236207bc0"
  Accept-Ranges: bytes
  Content-Length: 1169
  Cache-Control: max-age=21600
  Expires: Mon, 29 Oct 2012 21:18:38 GMT
  P3P: policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
  Access-Control-Allow-Origin: *
  Connection: close
  Content-Type: application/rdf+xml; qs=0.9
Longueur: 1169 (1,1K) [application/rdf+xml]
Sauvegarde en : «group»

http://data.fm/

http://test-rwwr.data.fm/

JSSE : librairie Java pour WebId

WebID Protocol Implementations - W3C Wiki

http://www.w3.org/wiki/WebID_Protocol_Implementations

LDP ?

Semantic Web Applications : links

Unsorted and unchecked

https://www.google.fr/search?client=ubuntu&channel=fs&q=easily+develop+semantic+web+applications

http://protegewiki.stanford.edu/wiki/BuildingSemanticWebApplications

http://code.google.com/p/fortunata/

http://www.sciencedaily.com/releases/2010/07/100721085348.htm

http://www.designforsemanticweb.com/

Callimachus : http://fr.slideshare.net/bhylandwood/rapid-semantic-web-application-development

http://semanticweb.com/developing-semantic-web-applications-current-tools-best-practices-and-future-directions_b11836

http://semanticweb.com/callimachus-semantic-web-apps-made-easy_b16443

http://answers.semanticweb.com/questions/13068/how-to-develop-the-semantic-web-application

http://incubator.apache.org/clerezza/

2012-10-27

COMMIT

- FIX : in N3TermHelper.getN3FromJavaTypedValue() and getJavaTypedValue() : URI is the Java type equivalent for an RDF resource (coherent with the N3TableModel)

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  testimportN3(eulergui.project.TestProjectWithSubProjects)
  testSimpleURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*|.*book\.n3_.*"
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 202, Failures: 0, Errors: 5, Skipped: 0

2012-10-26

A GF guy : http://blog.johnjcamilleri.com/category/academic/research/

Learning GF

-- in abstract syntax:
 IsQuestion : Item -> Quality -> Phrase ;

-- in concrete syntax:
IsQuestion item quality = {s =  "is" ++ item.s ++ quality.s ++ "?"} ;

Generate random phrase

Food> gr | l
that wine is boring
quel vino è noioso

I wonder why they have to use all the time this type that wraps a string:

SS : Type = {s : Str} ;

It's for extendibilty, for example to be able to add a number or gender.

http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc70

Installing GF syntax in gedit

http://www.grammaticalframework.org/doc/gf-editor-modes.html

 sudo cp gf.lang /usr/share/gtksourceview-3.0/language-specs/

( in ~/.local/share/gtksourceview-3.0/language-specs/ : does not work )

Question to the GF list

Refering to the "Hello World" grammar

http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html

I order to learn GF by example, I'd like to have a an utility program that takes a GF source as input, and makes some paraphrasing, more or less like the above tutorial does.

Maybe this could be implemented by a GF grammar! That would be a GF grammar for GF itself.

I acknowledge that the eclipse plugin does some comment on the GF source by tooltips. But for beginners in GF, more explanations would be needed.

Understanding ACE-in-GF

Is the Attempto directory really obsolete ?

Compiling the grammar and starting the gf interpreter:

make pgf_ontograph_40
gf TestAttempto.pgf

Note : make pgf_acewiki_aceowl also creates TestAttempto.pgf, but a smaller one .

Parsing to get the abstract syntax:

TestAttempto> p -lang=Ace -cat=Text "it is false that Mary is helped by nothing but travelers who X admires ." 
sText (falseS (vpS (pnNP mary_PN) (v2_byVP help_V2 (nothing_butNP (relCN (cn_as_VarCN traveler_N) (slashRS which_RP (termNP (var_Term X_Var)) admire_V2))))))

English ==> French translation

TestAttempto> p -lang=Ace "it is false that Mary is helped by nothing but travelers who X admires ." | l -lang=Fre

il est faux que Mary est aidée par seulement des voyageurs que X admire .

The reverse!

p -lang=Fre "il est faux que Mary est aidée par seulement des voyageurs que X admire ." | l -lang=Ace

it is false that Mary is helped by nothing but travelers who X admires .

NOTE: This works with my enhanced French TestAttemptoFre.gf:

aidée is feminine ;

with the original TestAttemptoFre ,

it should work with aidé.

Added in my enhanced French TestAttemptoFre.gf :

git diff words/ontograph_40/TestAttemptoFre.g
 ...
-lin mary_PN = mkPN "Mary" ;
-lin tom_PN = mkPN "Tom" ;
-lin lisa_PN = mkPN "Lisa" ;
-lin john_PN = mkPN "John" ;
-lin sue_PN = mkPN "Sue" ;
-lin bill_PN = mkPN "Bill" ;
+lin mary_PN = mkPN "Mary" feminine;
+lin tom_PN = mkPN "Tom" masculine;
+lin lisa_PN = mkPN "Lisa" feminine;
+lin john_PN = mkPN "John" masculine;
+lin sue_PN = mkPN "Sue" feminine;
+lin bill_PN = mkPN "Bill" masculine;

Compiling ACE-in-GF

bash make-pgf.bash
 ...
- compiling /home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoCat.gf... 
/home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoCat.gf:
   cannot unify the information
       lincat A = {s : ParamX.Degree => CommonRomance.AForm => Str;
                   isPre : Prelude.Bool} ;
       lindef A = \str_0 -> {s = table ParamX.Degree {
                                   q_A__0 => table CommonRomance.AForm {
                                               q_A__1 => str_0
                                             }
                                 };
                             isPre = Prelude.True} ;
   in module CatCat with
       lincat A = Syntax.A ;
   in module AttemptoCat
make: *** [pgf_acewiki_aceowl] Erreur 1

This worked as expected:

cd words/clex/
gvim  build.sh
chmod u+x build.sh
 ./build.sh
cd ../..
bash make-pgf.bash
gf ACE-0_0_2.pgf

But this failed:

export PATH=$HOME/.cabal/bin:$PATH

oem-laptop: ~/src/ACE-in-GF/ % make pgf_acewiki_aceowl
gf --version
Grammatical Framework (GF) version 3.3.3-darcs
No detailed version info available
Built on linux/x86_64 with ghc-7.4, flags: interrupt server
gf --make --path=present:grammars/acewiki_aceowl:words/acewiki_aceowl:lib/src/ace:lib/src/api --startcat=ACEText --optimize-pgf --mk-index words/acewiki_aceowl/TestAttemptoAce.gf words/acewiki_aceowl/TestAttemptoCat.gf words/acewiki_aceowl/TestAttemptoDut.gf words/acewiki_aceowl/TestAttemptoEng.gf words/acewiki_aceowl/TestAttemptoFin.gf words/acewiki_aceowl/TestAttemptoFre.gf words/acewiki_aceowl/TestAttemptoGer.gf words/acewiki_aceowl/TestAttemptoIta.gf words/acewiki_aceowl/TestAttemptoSpa.gf words/acewiki_aceowl/TestAttemptoSwe.gf words/acewiki_aceowl/TestAttemptoDan.gf words/acewiki_aceowl/TestAttemptoNor.gf words/acewiki_aceowl/TestAttemptoLav.gf words/acewiki_aceowl/TestAttemptoPol.gf words/acewiki_aceowl/TestAttemptoRon.gf words/acewiki_aceowl/TestAttemptoRus.gf
- compiling /home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoCat.gf...
/home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoI.gf:114:
  Happened in linearization of falseS
   no overload instance of mkS
   for
     Cl
   among
     Cl
     Tense Cl
     Ant Cl
     Pol Cl
     Tense Ant Cl
     Tense Pol Cl
     Ant Pol Cl
     Tense Ant Pol Cl
     Temp Pol Cl
     Conj S S
     Conj ListS
     Adv S
   with value type S
make: *** [pgf_acewiki_aceowl] Erreur 1


Error on my side or else ?

Compiling GF from sources

On Ubuntu

I had an old directory belonging to root : /home/jmv/.cabal/bin .

The first time:

cabal install
 ...
Registering httpd-shed-0.4...
Configuring json-0.4.4...
Building json-0.4.4...
Preprocessing library json-0.4.4...
[1 of 7] Compiling Text.JSON.Types  ( Text/JSON/Types.hs, dist/build/Text/JSON/Types.o )
[2 of 7] Compiling Text.JSON.Pretty ( Text/JSON/Pretty.hs, dist/build/Text/JSON/Pretty.o )
[3 of 7] Compiling Text.JSON.ReadP  ( Text/JSON/ReadP.hs, dist/build/Text/JSON/ReadP.o )

Text/JSON/ReadP.hs:104:22:
    Warning: A do-notation statement discarded a result of type b.
             Suppress this warning by saying "_ <- n",
             or by using the flag -fno-warn-unused-do-bind
[4 of 7] Compiling Text.JSON.Parsec ( Text/JSON/Parsec.hs, dist/build/Text/JSON/Parsec.o )

Text/JSON/Parsec.hs:112:22:
    Warning: A do-notation statement discarded a result of type b.
             Suppress this warning by saying "_ <- n",
             or by using the flag -fno-warn-unused-do-bind
[5 of 7] Compiling Text.JSON.String ( Text/JSON/String.hs, dist/build/Text/JSON/String.o )
[6 of 7] Compiling Text.JSON        ( Text/JSON.hs, dist/build/Text/JSON.o )

Text/JSON.hs:159:10:
    Illegal instance declaration for `MonadError String Result'
      (All instance types must be of the form (T a1 ... an)
       where a1 ... an are *distinct type variables*,
       and each type variable appears at most once in the instance head.
       Use -XFlexibleInstances if you want to disable this.)
    In the instance declaration for `MonadError String Result'
cabal: Error: some packages failed to install:
fst-0.9 failed during the building phase. The exception was:
ExitFailure 1
gf-3.3.3 depends on json-0.4.4 which failed to install.
json-0.4.4 failed during the building phase. The exception was:
ExitFailure 1

% ghc --version
The Glorious Glasgow Haskell Compilation System, version 7.4.1

In fact this was not installed:

cabal configure 
cabal update fst
cabal install

After that , it works, but it's rather long !

Installing library in /home/jmv/.cabal/lib/gf-3.3.3/ghc-7.4.1
Installing executable(s) in /home/jmv/.cabal/bin
Registering gf-3.3.3...
Installing [prelude] /home/jmv/.cabal/share/gf-3.3.3/lib/prelude
Installing [Present] /home/jmv/.cabal/share/gf-3.3.3/lib/present
Installing [AllTenses] /home/jmv/.cabal/share/gf-3.3.3/lib/alltenses
setupWeb
dist/build/gf/gf -make -s -optimize-pgf --gfo-dir=dist/build/gfo/foods --gf-lib-path=dist/build/rgl contrib/summerschool/foods/FoodsAfr.gf contrib/summerschool/foods/FoodsAmh.gf contrib/summerschool/foods/FoodsBul.gf contrib/summerschool/foods/FoodsCat.gf contrib/summerschool/foods/FoodsCze.gf contrib/summerschool/foods/FoodsDut.gf contrib/summerschool/foods/FoodsEng.gf contrib/summerschool/foods/FoodsEpo.gf contrib/summerschool/foods/FoodsFin.gf contrib/summerschool/foods/FoodsFre.gf contrib/summerschool/foods/FoodsGer.gf contrib/summerschool/foods/FoodsGle.gf contrib/summerschool/foods/FoodsHeb.gf contrib/summerschool/foods/FoodsHin.gf contrib/summerschool/foods/FoodsIce.gf contrib/summerschool/foods/FoodsIta.gf contrib/summerschool/foods/FoodsJpn.gf contrib/summerschool/foods/FoodsLav.gf contrib/summerschool/foods/FoodsMlt.gf contrib/summerschool/foods/FoodsMon.gf contrib/summerschool/foods/FoodsNep.gf contrib/summerschool/foods/FoodsPes.gf contrib/summerschool/foods/FoodsPor.gf contrib/summerschool/foods/FoodsRon.gf contrib/summerschool/foods/FoodsSpa.gf contrib/summerschool/foods/FoodsSwe.gf contrib/summerschool/foods/FoodsTha.gf contrib/summerschool/foods/FoodsTsn.gf contrib/summerschool/foods/FoodsTur.gf contrib/summerschool/foods/FoodsUrd.gf
/home/jmv/src/GF/contrib/summerschool/foods/FoodsAmh.gf:
   Warning: no linearization of Pizza
   Warning: no linearization of These
   Warning: no linearization of Those
/home/jmv/.cabal/share/gf-3.3.3/www/grammars/Foods.pgf
dist/build/gf/gf -make -s -optimize-pgf --gfo-dir=dist/build/gfo/letter --gf-lib-path=dist/build/rgl examples/letter/LetterEng.gf examples/letter/LetterFin.gf examples/letter/LetterFre.gf examples/letter/LetterHeb.gf examples/letter/LetterRus.gf examples/letter/LetterSwe.gf
/home/jmv/.cabal/share/gf-3.3.3/www/grammars/Letter.pgf

On Debian stable

Made a bug report on Google Code :

http://code.google.com/p/grammatical-framework/issues/detail?id=54

/home/jmv/src/w/GF/ % cabal install                              
Resolving dependencies...
cabal: dependencies conflict: base-3.0.3.2 requires syb ==0.1.0.2 however
syb-0.1.0.2 was excluded because json-0.7 requires syb >=0.3.3

%  ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.12.1


/home/jmv/src/w/GF/ % cabal upgrade base
Resolving dependencies...
cabal: fromFlag NoFlag. Use fromFlagOrDefault
oem-laptop: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/w/GF/ % cabal info base                            
* base             (library)
    Synopsis:      Basic libraries
    Latest version available: 4.6.0.0
    Latest version installed: 4.2.0.0

% cabal upgrade base
Resolving dependencies...
cabal: fromFlag NoFlag. Use fromFlagOrDefault

2012-10-25

https://dvcs.w3.org/hg/read-write-web/

<jmvanel> Très intéressant ce matin la prés. de http://fr.wikipedia.org/wiki/G%C3%A9rard_Berry

<jmvanel> the rpesentation

<jmvanel> presentation

<lcpvrr> what he spoke about ?

<rszeno> hi

* lcpvrr (~luc@LNantes-156-76-33-68.w82-127.abo.wanadoo.fr) a quitté #eulergui

<jmvanel> time and events

<jmvanel> he mentioned Hop http://hop.inria.fr/usr/local/lib/hop/2.3.1/weblets/home/articles/hop-lang/article.html

2012-10-24

Clean my Maven depot with older snapshots

This can help : <jmvanel> ( remove everything older than 10 days )

[jmvanel@shell-22005]~/eulergui_web/htdocs/maven2/eulergui/eulergui/1.12-SNAPSHOT% find . -ctime +10 -exec ls -l {} \; | less
find . -ctime +10 -exec rm {} \;  

2012-10-22

I found SquirrelRDF for IMAP connector to RDF;

<jmvanel> it's part of the Jena tools that were not moved to Apache ...

Keeping personal things personal: browser data

By this I mean that, even with Free Software, our information does not really belong to us. That is because we cannot take it from where it is, and use it elsewhere.

I'm using several browsers: Firefox, Chrome. Also, Im' using two Operating Systems. This makes 4 combinations.

The browser information is quadrupled.

It would be nice to share the information (history, passwords, form inputs, etc ) in a single place. In theory an RDF format would be excellent, but right now we don't have enough connectors !

I think browsers now use a lightweight SQL storage for user information.

On the RDF side, a common vocabulary should be chosen or developped. For history and favorites, RSS, the format for site syndication seems apropriate.

I think this is one more use case for for EulerGUI framework !

2012-10-21

Failed tests:   test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<3>

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  testimportN3(eulergui.project.TestProjectWithSubProjects)
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 202, Failures: 1, Errors: 4, Skipped: 0

Broken test_read_newproject_n3p_n3

Stack in test test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject) :

I think the trouble is that we are not supposed to load the subproject in this stack, because here only the GUI should be worked on.

java.lang.NullPointerException
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:196)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
at unif.TripleStoreDrools.store(TripleStoreDrools.java:71)
at eulergui.gui.controller.ApplicationKB.add_project_owl_imports(ApplicationKB.java:336)
at eulergui.gui.controller.ApplicationKB.n3SourceAdded(ApplicationKB.java:303)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:93)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1323)
at eulergui.project.ProjectChangeSupport.rethrowEventsForListener(ProjectChangeSupport.java:203)
at eulergui.project.Project.rethrowEventsForListener(Project.java:1465)
at eulergui.project.ProjectFactory.restoreAny(ProjectFactory.java:386)
at eulergui.project.Project.ensureIsLoaded(Project.java:1545)
at eulergui.gui.main.SubProjectsManagement.addButton(SubProjectsManagement.java:35)
at eulergui.gui.main.SourceFilesManagement.addButtonToOpenImportedProjects(SourceFilesManagement.java:138)
at eulergui.gui.main.SourceFilesManagement.addSourceActions(SourceFilesManagement.java:124)
at eulergui.gui.main.ProjectGUI.addMenus(ProjectGUI.java:567)
at eulergui.gui.main.ProjectGUI.getMenu(ProjectGUI.java:455)
at eulergui.gui.main.ProjectGUI.layoutFrame(ProjectGUI.java:478)
at eulergui.gui.main.ProjectGUI.initFromProject(ProjectGUI.java:153)
at eulergui.gui.main.ProjectGUI.<init>(ProjectGUI.java:142)
at eulergui.gui.main.ProjectGUI.newWindow(ProjectGUI.java:289)
at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:235)

COMMIT

FIX Broken test_read_newproject_n3p_n3 (eulergui.gui.TestN3FormatForProject) :

I think the trouble is that we are not supposed to load the subproject in this stack, because here only the GUI should be worked on.

TODO : sometimes project.getURI() was null, because the KB is not ready yet, and it populates project URI;

but there must be a simpler way to populate the GUI without needing the KB

(or start the KB quicker)

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

COMMIT

- skeleton ontology generation: not automatic anymore: launched by Tools menu

- Reorder Tools menu :

"Normal" user

Average user (Java apps framework)

Advanced user (Internal KB)

Rules by Zeno:

@prefix owl: <http://www.w3.org/2002/07/owl#>.
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
 
@forAll :x, :y, :z, :u .

# see: http://www.w3.org/TR/rdf-mt/#RDFSRules, entailment rule rdf2
{
:x rdfs:domain :y .
:z :x :u .
} => {
:z rdf:type :y .
} .

# see: http://www.w3.org/TR/rdf-mt/#RDFSRules, entailment rule rdf3
{
:x rdfs:range :y .
:z :x :u .
} => {
:u rdf:type :y .
} .

# http://chatlogs.planetrdf.com/swig/2012-09-20.html#T17-16-17
# - download http://paste.kde.org/553760/ content as x.n3
# - this file: y.n3
# with:
#
#   cwm -quiet x.n3 --filter=y.n3
#
# output will be:
#
#      @prefix : <#> .
#     
#     :ExampleCourse     a :Course .
#     
#     :ExampleDepartment     a :Department .
#     
#     :ExampleLecture     a :Lecture .
#     
#     :John     a :Professor .
#     

Comparison of EulerGUI with TopBraid Composer

Reference : http://topquadrant.com/products/TB_Composer.html

Here are the features that are deactivated in free edition of BT:

Define ontologies using a graphical editor it would be a lot of work to make something really ergonomic, and Protégé, after 20 years of existance, does this quite good;

Plus, for really complex OWL classes, Controled English is better than GUI

Create and execute Jena rules Desirable feature, but we have N3 rules
Import and convert to RDF data from XML, UML, Spreadsheets, RSS/Atom Feeds, and Relational Databases EulerGUI does not have RSS, and Relational Databases (although there are several wrapper for SQL db's)
Generate XML Schemas from RDF/OWL We have the feature, thanks to Gloze.
Roundtrip between XML and RDF/OWL (import – export)

We have the feature, thanks to Gloze, but Roundtrip is a questionable practice during a software project

Work with RDF databases We have wrapper API for TDB, but an internal TDB is not yet in GUI
Work with different reasoners and configure inference options We have 4 inference engines; and more to come
Run TopBraid Ensemble and other web applications developed for the TopBraid Live platform I don't know what are these products: TopBraid Ensemble, TopBraid Live platform, but we have the API and rule based framework
Generate arbitrary (e.g., HTML) documents from data in your ontology using an integrated semantic Java Server Pages engine We have some features, using log:format and log:outputString to generate templated output, but not enough documented

Define and execute RDF data processing chains (SPARQLMotion)

SPARQLMotion: I don't know what is this product; but there are pipelines in GUI and API

Generate business intelligence reports and inserted into web pages to drive semantically enriched web applications

Main missing feature: we plan not only "semantically enriched web applications" , but "semantic and rule based web applications"
Convert e-mails into OWL, supporting semantic analysis and classification of emails No e-mail connector, but there is at least a suitable library in Jena to reuse : SquirrelRDF an IMAP connector

The other notable features from BT free missing in EulerGUI are :

Feature Comments
Save RDF/XML, and N-Triples files Can be done by running CWM, and selecting and paste the console
Define ontologies using form-based editors form-based editors : is this just vocabularies ?

I doubt that it's convenient to enter OWL axioms in a form; prefer ATTEMPTO controled English

SPARQL Rules (SPIN) If I understand well SPIN, something equivalent is planned , link : backward_chaining_sparql
Constraint Checking to validate user input (using SPARQL Rules (SPIN)) in N3 table view, there is datatype validation ,

for generic user input validation something must be done; it used to work with exceptions in Javascript+Java framework

Merge and re-factor RDF data across different namespaces and data sources
merge ? refactor ? what does this mean ?

rename and URI suffix : could be done with stateful triplestore and rules, or Jena code

Prolog plugin in Euler

<rszeno> i'm talking about this http://eulersharp.sourceforge.net/2003/03swap/prolog.html

<rszeno> i bet jos want to use it with rif

<jmvanel> I didn't see this ; it's nice , as I understand it allows have the power of Prolog within N3 and EYE.

<rszeno> yes

AGI, etc

http://en.wikipedia.org/wiki/Ben_Goertzel

http://wp.goertzel.org/

Quoted from open-nars site http://code.google.com/p/open-nars/

What makes this system different from conventional reasoning systems is its ability to learn from its experience.

Related to this, what would be necessary is to go to next step: provide some reusable "experience", the equivalent of what we produce by hand as "rule base".

And there where I think interesting stuff begins.

jmvanel> Something like a global cross langage repository does not seems to exist :

<jmvanel> https://www.google.fr/search?q=rule+base+repository

https://www.google.fr/search?q=rule+base+logic+models+inference+expert+systems+%2Brepository

http://en.wikipedia.org/wiki/William_McCune

<jmvanel> He was my age , and he's dead :(

<jmvanel> He once kindly answered to a question.

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

<jmvanel> I don't believe in AGI , but I must say that it's bettter to have great ambitions and fail, than to have small ambitions and fail !

See below : Non-Axiomatic Reasoning System

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

Why is this URI appearing when generating skeleton ontology?

http://eulergui.sourceforge.net/rules/#

TODO eliminate this URI from skeleton ontology generation: http://www.w3.org/2003/g/data-view#

Semantic web based application framework

I'd like to make a semantic web based framework for creating applications managing semantic data, such as:

2012-10-20

I wonder why Dublin Core properties like :

created

are plain literal

Testing rules-documentor rule base

With RDFS also : OK

eye --nope \
~/src/deductions/n3_nojs/rules-documentor.n3 \
--wcache  'http://www.w3.org/2002/07/owl#' '/home/jmv/.eulergui/n3_cache/owl#_820021934678067316.n3' \
--wcache  'http://www.w3.org/2000/01/rdf-schema#' '/home/jmv/.eulergui/n3_cache/rdf-schema#_194091713274622538.n3' \
'http://www.w3.org/2000/01/rdf-schema#' \
'http://www.w3.org/2002/07/owl#' \
/home/jmv/src/eulergui/examples/book.n3 \
--query  ~/src/deductions/n3_nojs/rules-documentorQ.n3

% date --rfc-3339=seconds 
2012-10-20 10:47:39+02:00

eye --nope --wcache  http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentor.n3   /home/jmv/.eulergui/n3_cache/rules-documentor.n3_3645444284436385759.n3 --wcache  http://www.w3.org/2000/10/swap/reason#  /home/jmv/.eulergui/n3_cache/reason#_6093099883242864295.n3  --wcache  http://www.w3.org/1999/02/22-rdf-syntax-ns#  /home/jmv/.eulergui/n3_cache/22-rdf-syntax-ns#_1704865449098808065.n3  
--wcache  http://www.w3.org/2000/10/swap/log#  /home/jmv/.eulergui/n3_cache/log#_303426070996937170.n3  
--wcache  http://www.w3.org/2000/01/rdf-schema#  /home/jmv/.eulergui/n3_cache/rdf-schema#_194091713274622538.n3  
--wcache  http://www.w3.org/2004/06/rei#  /home/jmv/.eulergui/n3_cache/rei#_2172265562863617364.n3  
--wcache  http://eulersharp.sourceforge.net/2003/03swap/log-rules#  /home/jmv/.eulergui/n3_cache/log-rules#_3129547664454615318.n3  
--wcache  http://www.w3.org/2002/07/owl#  /home/jmv/.eulergui/n3_cache/owl#_820021934678067316.n3  http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentor.n3  http://www.w3.org/2000/10/swap/reason#  
http://www.w3.org/1999/02/22-rdf-syntax-ns#  
http://www.w3.org/2000/10/swap/log#  
http://www.w3.org/2000/01/rdf-schema#  
http://www.w3.org/2004/06/rei#  
http://eulersharp.sourceforge.net/2003/03swap/log-rules#  
http://www.w3.org/2002/07/owl#  /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/bbb3.n3  --wcache  http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentorQ.n3  /home/jmv/.eulergui/n3_cache/rules-documentorQ.n3_4024809405297772256.n3  
--query  http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentorQ.n3

2012-10-19

Sent mail on deductions.fr about contacts management : Gestion (sémantique?) des contacts : comment faites vous ?

Echo3 TableModel

Echo3 TableModel is similar to Swing TableModel :

http://echo.nextapp.com/content/echo3/doc/3.0/api/public/app/nextapp/echo/app/table/TableModel.html

but it does not implement Swing TableModel .

TODO, ideas for EulerGUI

Referencing EulerGUI on Wikipedia

<jmvanel> I should disclose my position as the main developer in the discussion page

<rszeno> probably is better to do it

<jmvanel> according to http://en.wikipedia.org/wiki/Wikipedia:Your_first_article#Are_you_closely_connected_to_the_article_topic.3F

<rszeno> if resists to bots cleanup will be ok, :)

<jmvanel> http://fr.wikipedia.org/wiki/Discussion:Notation3

<jmvanel> how often are bots working ?

<rszeno> mystbot added the link

<jmvanel> 1 per day ?

<jmvanel> mystbot ?

<rszeno> are async, from cmd line

<rszeno> yes is a linking bot

<rszeno> http://en.wikipedia.org/wiki/User:MystBot

http://en.wikipedia.org/wiki/Talk:Notation3

I should mention that I'm the main developer of EulerGUI, for which I just entered a link.

Jena sources, SquirrelRDF

Downloaded Jena-tdb from Git : http://git.apache.org/ .

SquirrelRDF is an IMAP to RDF connector.

But SquirrelRDF is not here , and I'm not sure where it is on sf.net .

Twit (on Identi.Ca)

FIXES:

- Web based project was broken;

- URL's having no content-type

- plain XML and XML Schema import

2012-10-18

Jon Harrop ‏@jonharrop

"Interactive Theorem Proving in Industry" by John Harrison, Intel. Mind-blowing stuff. http://events.inf.ed.ac.uk/Milner2012/slides/Harrison/harrison_slides.pdf

Retweeté par Pierre-Alexandr Voye

Ouvrir Répondre Retweeter Favori

16 h Jon Harrop ‏@jonharrop

"amplifying human intelligence" -- Robin Milner. What a great phrase! #fsharp #ocaml

Retweeté par Pierre-Alexandre Voye

Semantic Web Community Web Application (SAC=Semantic Application for Communities)

Or Semantic Application for Collaboration.

Semantic Collaborative site for many things

I'm looking for some kind of web application Open Source framework, backed by a SPARQL endpoint , of some kind : either CMS, or collaborative, or data input and display.

2012-10-17

EulerGUI, server or API, integrates with existing applications.

We will write a chapter of the Manual to explain how to do it in any application, Java applications for a start.

http://localhost:8080/eulergui_server/

http://www.w3.org/2001/sw/sweo/public/UseCases/

saw JSON triples , alias JTriples http://www.w3.org/wiki/JTriples

Flint SPARQL Editor v1.0 : one more example of a Semantic Web tool whose configuration is NOT in Turtle.

git://github.com/TSO-Openup/FlintSparqlEditor.git

http://echo.nextapp.com/site/echo3

Failed tests:   test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<3>

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Wait for "JComponent with tool tip "Open N3 result.*"" subcomponent to be displayed
  testSimpleURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*|.*book\.n3_.*"
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Post on "public-lod@w3.org : "Basic OWL editor/viewer?"

Hi Mike

If you're looking for a textual tool to write Turtle syntax, you can try EulerGUI.

It has additional goodies:

It's an executable Java jar.

There's a YouTube Video:

http://www.youtube.com/watch?v=x6ZgoiH1K9Y

Stable version:

http://sourceforge.net/projects/eulergui/

Snapshots:

http://eulergui.sourceforge.net/maven2/eulergui/eulergui/1.12-SNAPSHOT/?C=M;O=D

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

You might find our graphical OWL editor useful, especially if you are familiar with concept mapping.

COE (http://www.ihmc.us/groups/coe/) will display OWL as a concept map, allow you to edit the map graphically and output the result as legal OWL. We find it useful simply as a way to view OWL ontologies and quickly see what they contain.

Good luck.

Pat Hayes phayes@ihmc.us via listhub.w3.org

http://www.essepuntato.it/lode/owlapi/http://usefulinc.com/ns/doap#

Gloze in EulerGUI was broken

Due to Maven regression (bug report), Gloze in EulerGUI is now broken .

eg http://www.omg.org/spec/BPMN/20100501/BPMN20.xsd 

kompare /home/jmv/src/Gloze-1.01-beta2/src/java/com/hp/gloze/Gloze.java \
    /home/jmv/src/eulergui/src/main/java/com/hp/gloze/Gloze.java

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:628)
at eulergui.project.N3Source.doUpdate(N3Source.java:430)
at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:47)
at eulergui.project.N3Source.placeInProject(N3Source.java:356)
at eulergui.project.N3Source.prepare(N3Source.java:381)
at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:46)
at eulergui.project.SourceFactory.addSource(SourceFactory.java:173)
at eulergui.CommandLineArguments.makeProjectFromEulerCommandLine(CommandLineArguments.java:137)
at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:71)
at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:224)

Remedy:

  1. encapsulate filed "target"
  2. rename class Gloze into GlozeEulerGUI , and have it extend original Gloze

Exception in thread "addN3SourceInNewThread http://www.omg.org/spec/BPMN/20100501/BPMN20.xsd" java.lang.NoClassDefFoundError: com/ibm/icu/util/StringTokenizer
at com.hp.gloze.www_w3_org_2001_XMLSchema.union.get_memberTypes(union.java:121)
at com.hp.gloze.www_w3_org_2001_XMLSchema.union.defineType(union.java:213)
at com.hp.gloze.www_w3_org_2001_XMLSchema.simpleType.defineType(simpleType.java:209)
at com.hp.gloze.www_w3_org_2001_XMLSchema.attribute.toOWL(attribute.java:443)
at com.hp.gloze.www_w3_org_2001_XMLSchema.extension.toOWLComplexContent(extension.java:284)
at com.hp.gloze.www_w3_org_2001_XMLSchema.complexContent.toOWL(complexContent.java:99)
at com.hp.gloze.www_w3_org_2001_XMLSchema.complexType.toOWL(complexType.java:500)
at com.hp.gloze.www_w3_org_2001_XMLSchema.schema.toOWL(schema.java:1184)
at com.hp.gloze.www_w3_org_2001_XMLSchema.Include.toOWL(Include.java:112)
at com.hp.gloze.www_w3_org_2001_XMLSchema.schema.toOWL(schema.java:1160)
at com.hp.gloze.GlozeEulerGUI.xsd_to_owl(GlozeEulerGUI.java:589)
at com.hp.gloze.GlozeEulerGUI.runGloze(GlozeEulerGUI.java:814)
at eulergui.inputs.N3SourceFromXML_Gloze.convertToN3(N3SourceFromXML_Gloze.java:95)

At bonitasoft presentation

<jmv_> 90 employees , 1.5 m downloads

Test and FIX: skeleton ontology generation

When an N3 Source is saved, if all properties and classes are not declared, a new N3 file is added to project, with a skeleton ontology for missing declarations.

The generation rules look in the whole current projet for undeclared properties and classes in plain data triples (individuals), incomplete declarations and rules. The generation rules consider that a property or class is incomplete if it has no rdfs:comment , or if the comment has the (generated) value "???" .

For instance, from this book.n3 example:

@prefix     : <http://example.com#> .

:DiamondAge :writeBy :NealStephenson .
:Neuromancer :writeBy :WilliamGibson .
:NealStephenson a :scifiWriter .
:Neuromancer a :book .
:DiamondAge a :book .
:MazeOfDeath :writeBy :PhilipKDick .
:WilliamGibson a :scifiWriter .
:PhilipKDick a :scifiWriter .
:PlayerOfGames a :book .
:Ubik a :book .
:MazeOfDeath a :book .
:PlayerOfGames :writeBy :IainBanks .

this skeleton ontology is generated:

ns1:book
      a       owl:Class ;
      rdfs:comment "???" ;
      rdfs:label "book" .

ns1:writeBy
      a       rdf:Property ;
      rdfs:comment "???" ;
      rdfs:domain <http://my.com/xxx> ;
      rdfs:label "writeBy" ;
      rdfs:range <http://my.com/xxx> .

ns1:scifiWriter
      a       owl:Class ;
      rdfs:comment "???" ;
      rdfs:label "scifiWriter" .

CAVEAT: the generation rules currently do not guess the domain and range, they just output a placeholder for this.

2012-10-16

Evaluation and Report Language (EARL)

http://www.w3.org/WAI/intro/earl

Failed tests:   testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): inferred fact
  testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): initial fact
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells
  test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject)

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-3868589679634015805.n3 ; http://dbpedia.org/sparql
  testimportN3(eulergui.project.TestProjectWithSubProjects)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testTooltip(eulergui.gui.TestEulerGUITooltip): Wait for "getText() Component Chooser "tooltip.n3"(..)
  testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 201, Failures: 4, Errors: 19, Skipped: 0

Custom JPanel cell with JButtons in JTable

http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/

COMMIT

- now use DatatypeHelper.validate() in EditCellListener

- now ObjectProperty for column is associated to URI.class

- moved several methods to DatatypeHelper

- checked that URIRenderer.getTableCellRendererComponent() is actually called

- TESTED with N3TableModelTest

TODO : URIRenderer should display a link to the URI

TODO test if rdfDataType is an ObjectProperty, or value is a resource (URI)

TODO : tests

Results :

Failed tests:   testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): inferred fact
  testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): initial fact

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  testimportN3(eulergui.project.TestProjectWithSubProjects)
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Wait for "JComponent with tool tip "Open N3 result.*"" subcomponent to be displayed
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testTooltip(eulergui.gui.TestEulerGUITooltip): Wait for "getText() Component Chooser "tooltip.n3"(..)
  testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 201, Failures: 2, Errors: 19, Skipped: 0

COMMIT

- TEST (WIP) for updating or creating cells in N3 table, with a CellEditorListener

TODO multiple valued subject-predicate pair, typed datatypes, and resources (URI)

- stabilize Drools from version 5.5.0-SNAPSHOT to 5.5.0.Beta1

TODO: fix test suite: Tests run: 201, Failures: 2, Errors: 19, Skipped: 0

A Drools regression,

so trying 5.5.0.Beta1 ; http://www.jboss.org/drools/downloads

Thread [main] (Suspended (exception NullPointerException))
NamedEntryPoint.insert(Object, Object, boolean, boolean, Rule, Activation) line: 196
ReteooStatefulSession(AbstractWorkingMemory).insert(Object, Object, boolean, boolean, Rule, Activation) line: 903
ReteooStatefulSession(AbstractWorkingMemory).insert(Object) line: 847
TripleStoreDrools.store(ITriple) line: 71
ApplicationKB.add_project_owl_imports(Project, String) line: 336
ApplicationKB.n3SourceAdded(Project, N3Source) line: 303
ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 93
Project.rethrowEventsPlease(ProjectChangeSupport) line: 1323
ProjectChangeSupport.rethrowEventsForListener(Project, ProjectListener) line: 203
Project.rethrowEventsForListener(ProjectListener) line: 1465
ProjectFactory.restoreAny(String, boolean) line: 386
Project.ensureIsLoaded() line: 1545
SubProjectsManagement.addButton(Project) line: 35
SourceFilesManagement.addButtonToOpenImportedProjects() line: 138
SourceFilesManagement.addSourceActions(ProjectGUI) line: 124
ProjectGUI.addMenus() line: 567
ProjectGUI.getMenu() line: 455
ProjectGUI.layoutFrame() line: 478
ProjectGUI.initFromProject(Project) line: 153
ProjectGUI.<init>(Project) line: 142
ProjectGUI.newWindow(Project, boolean) line: 289
ProjectGUI.main(String[]) line: 235
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
ClassReference.invokeMethod(String, Object[], Class[]) line: 137
ClassReference.startApplication(String[]) line: 101
TestN3FormatForProject(TestJemmy).launchEulerGUIWithArgument(String) line: 256
TestN3FormatForProject.test_read_newproject_n3p_n3() line: 49
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
TestN3FormatForProject(TestCase).runTest() line: 168
TestN3FormatForProject(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
TestN3FormatForProject(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50
TestExecution.run(ITestReference[]) line: 38
RemoteTestRunner.runTests(String[], String, TestExecution) line: 467
RemoteTestRunner.runTests(TestExecution) line: 683
RemoteTestRunner.run() line: 390
RemoteTestRunner.main(String[]) line: 197

Tests in error: 
  testSquall(eulergui.inputs.TestSPARQL)
  testimportN3(eulergui.project.TestProjectWithSubProjects)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testTooltip(eulergui.gui.TestEulerGUITooltip): Wait for "getText() Component Chooser "tooltip.n3"(..)
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded
  testSimpleProjectLocal(eulergui.gui.TestJavaEditor): javax.swing.JDialog cannot be cast to org.gjt.sp.jedit.View
  testSimpleURLProject(eulergui.gui.TestJavaEditor): javax.swing.JDialog cannot be cast to org.gjt.sp.jedit.View
  testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded
  test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded

Tests run: 201, Failures: 1, Errors: 20, Skipped: 0

COMMMIT

- for updating or creating cells in N3 table, replace TableModelListener (also everytime a cell is filled) with a CellEditorListener

- Pave the way for an URI (RDF resource) cell renderer: add URI values in N3TableModel

2012-10-15

ArrayIndexOutOfBoundsException

https://dvcs.w3.org/hg/read-write-web/

2012-10-14

xclock -digital -update 1 &

http://www.moosetechnology.org/

Moose : meta- modélisation : permet d'analyser Java, JS, etc

./CogVM Pharo-1.4/Pharo-1.4.image  

2012-10-13

TODO : EulerGUI

OK : namespace for ACE N3 source

Issues with abbreviated N3 terms from dbPedia : dbpedia:B.B._King

@prefix dbpprop: <http://dbpedia.org/property/>.
@keywords is, of, a .
dbpedia:B.B._King is dbpprop:recordedBy of dbpedia:Worried_Life_Blues .

Using rapper to output GraphViz image from N3

sudo apt-get install raptor-utils
sudo apt-get install rasqal-utils 
rapper -i turtle  bb3.n3 -o dot > bb3.n3.dot
% dotty -V bb3.n3.dot
dotty version 96c (09-24-96)
lefty version 10 Mar 2005
graphviz version 2.26.3 (20100126.1600)
graph parser: syntax error near line 1
context: igraph >>>  { <<< 
dotty.lefty: cannot load graph
# output is for dot not dotty or natty
# <rszeno> is digraph
% dot -Tjpg bb3.n3.dot -o bb3.n3.jpg

2012-10-09

Semantic University currently includes over 30 lessons, and we're continually preparing new content. We're also looking for additional writers to contribute new lessons, so please contact me if you'd be interested.

Current lessons include:

The official Internet media type for JSON is application/json. The JSON filename extension is .json.

2012-10-08

FIX last file management ( for initializing file chooser )

COMMIT

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

java.lang.ClassNotFoundException: eulergui.gui.view.N3SourceTableView

We have a big problem, because the replacement of the rule base is happening here, because the rule base is recovered from cache. This is at odds with the presuppositions underlying RuleBasedApplicationStarter :

Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 266 in AbstractWorkingMemory))
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212
ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103
ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81
ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402
ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387
ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394
N3SourcetoDrools.newStatefulSession(RuleBase) line: 632
N3SourcetoDrools.<init>() line: 164
N3DroolsEngineFacade.<init>() line: 43
Project.initializeDrools() line: 939
Project.getTranslator() line: 994
ProjectFileManagement.addURIModificationChecker(ProjectGUI, Project) line: 681
ProjectGUI$3.run() line: 371
Thread.run() line: 722

Thread [main] (Suspended (breakpoint at line 266 in AbstractWorkingMemory))
owns: EulerGUI  (id=34)
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212
ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103
ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81
ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402
ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387
ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394
N3SourcetoDrools.newStatefulSession(RuleBase) line: 632
N3SourcetoDrools.setRuleBase(RuleBase) line: 1039
N3DroolsEngineFacade.setRuleBase(RuleBase) line: 180
Project.compiledRulebaseLoadedFromCache(String) line: 668
Project.translateN32Drools(boolean) line: 823
Project.prepareDrools(boolean) line: 797
Project.prepareDrools() line: 776
RuleBasedApplicationStarter.startFromProject(Project) line: 64
ApplicationKB.<init>() line: 153
ApplicationKB.instance() line: 141
OpenPreferencesAction.applyUserPreferences() line: 72
ProjectGUI.main(String[]) line: 216

AbstractWorkingMemory is instanciated twice for the internal KB :

eulergui.gui.main.ProjectGUI at localhost:55359
Thread [main] (Suspended (breakpoint at line 266 in AbstractWorkingMemory))
owns: EulerGUI  (id=34)
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212
ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103
ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81
ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402
ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387
ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394
N3SourcetoDrools.newStatefulSession(RuleBase) line: 632
N3SourcetoDrools.setRuleBase(RuleBase) line: 1039
N3DroolsEngineFacade.setRuleBase(RuleBase) line: 180
Project.compiledRulebaseLoadedFromCache(String) line: 668
Project.translateN32Drools(boolean) line: 823
Project.prepareDrools(boolean) line: 797
Project.prepareDrools() line: 776
RuleBasedApplicationStarter.startFromProject(Project) line: 64
ApplicationKB.<init>() line: 153
ApplicationKB.instance() line: 141
OpenPreferencesAction.applyUserPreferences() line: 72
ProjectGUI.main(String[]) line: 216

Thread [main] (Suspended (breakpoint at line 266 in AbstractWorkingMemory))
owns: EulerGUI  (id=34)
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246
ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212
ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103
ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81
ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402
ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387
ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394
N3SourcetoDrools.newStatefulSession(RuleBase) line: 632
N3SourcetoDrools.<init>() line: 164
N3DroolsEngineFacade.<init>() line: 43
Project.initializeDrools() line: 939
Project.prepareDrools(boolean) line: 795
Project.prepareDrools() line: 776
RuleBasedApplicationStarter.startFromProject(Project) line: 64
ApplicationKB.<init>() line: 153
ApplicationKB.instance() line: 141
OpenPreferencesAction.applyUserPreferences() line: 72
ProjectGUI.main(String[]) line: 216

COMMIT

TODO still non reproductible errors :

Failed tests:   testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700
Tests in error: 
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton
  testSimpleURLProject(eulergui.gui.TestJavaEditor)
  testURLProject(eulergui.gui.TestJavaEditor)

2012-10-07

net.sf.parser4j.parser.service.ParserException: must exist in parse state
at net.sf.parser4j.parser.service.ParseStackAction.reduce(ParseStackAction.java:199)
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.matchManagement(Parser.java:1044)
at net.sf.parser4j.parser.service.Parser.checkForMatch(Parser.java:926)
at net.sf.parser4j.parser.service.Parser.parse(Parser.java:286)
at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:178)
at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:156)
at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translateQuery(N3DroolsEngineFacade.java:215)
at eulergui.project.Project.searchFromString(Project.java:1047)
at deductions.runtime.KBHelpers.searchInKB(KBHelpers.java:29)
at eulergui.inference.AbstractInferenceEngine.getCWMPath(AbstractInferenceEngine.java:121)
at eulergui.inference.cwm.CwmInferenceEngineFactory.isInstalled(CwmInferenceEngineFactory.java:52)

Algorithm for area of a closed curve

Just use Green's theorem:

Area = 0.5*integral(x*dy - y*dx)

2012-10-06

ProjectGUI eulergui_test [Java Application]
eulergui.gui.main.ProjectGUI at localhost:42724
Thread [main] (Suspended (breakpoint at line 239 in ApplicationKB))
ApplicationKB.getProject() line: 239
KBHelpers.searchInKB(String, String, String) line: 29
AbstractInferenceEngine.getCWMPath() line: 121
CwmInferenceEngineFactory.isInstalled() line: 52
RunActionGeneric.<init>(InferenceEngineFactory, ProjectGUI) line: 48
InferenceManagement.addActions(ProjectGUI) line: 31
ProjectGUI.addMenus() line: 554
ProjectGUI.getMenu() line: 441
ProjectGUI.layoutFrame() line: 464
ProjectGUI.initFromProject(Project) line: 153
ProjectGUI.<init>(Project) line: 142
ProjectGUI.newWindow(Project, boolean) line: 288
ProjectGUI.openLastProjectFromFileHistory() line: 258
ProjectGUI.main(String[]) line: 218
Thread [modification Checker for user preferences] (Running)
/home/jmv/apps/jdk1.7.0/bin/java (6 oct. 2012 17:18:06)

Try to return as soon as possible in ApplicationKB.instance() , while stating a thread to start the internal KB:

Thread [main] (Suspended (breakpoint at line 102 in ApplicationKB))
owns: EulerGUI  (id=26)
ApplicationKB.<init>() line: 102
ApplicationKB.instance() line: 90
OpenPreferencesAction.applyUserPreferences() line: 72
ProjectGUI.main(String[]) line: 215

By comparison the current situation is :

ProjectGUI eulergui_test [Java Application]
eulergui.gui.main.ProjectGUI at localhost:40622
Thread [main] (Suspended (breakpoint at line 23 in ResultEditorAction))
owns: DefaultAgenda  (id=58)
ResultEditorAction.<init>() line: 23
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 57
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
Constructor<T>.newInstance(Object...) line: 525
Class<T>.newInstance0() line: 372
Class<T>.newInstance() line: 325
Rule_application_rules_n3_2_5230dd7664aa4b748627ca29597c57d9.defaultConsequence(KnowledgeHelper, String, FactHandle, String, FactHandle, ProjectGUI, FactHandle) line: 14
Rule_application_rules_n3_2_5230dd7664aa4b748627ca29597c57d9DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_application_rules_n3_2_5230dd7664aa4b748627ca29597c57d9DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1275
DefaultAgenda.fireNextItem(AgendaFilter) line: 1210
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1444
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 375
ApplicationKB.fireAllRules() line: 224
OpenPreferencesAction.applyUserPreferences() line: 77
ProjectGUI.populateWindow(Project, boolean) line: 345
ProjectGUI.newWindow(Project, boolean) line: 307
ProjectGUI.openLastProjectFromFileHistory() line: 258
ProjectGUI.main(String[]) line: 218
Thread [modification Checker for user preferences] (Running)
Thread [AWT-Shutdown] (Running)
Thread [AWT-EventQueue-0] (Running)
/home/jmv/apps/jdk1.7.0/bin/java (6 oct. 2012 10:21:53)

2012-10-05

COMMIT

when launching OWL reasonner, avoid generated files with suffix ".as.rules.n3"

(so one bad warning is avoided).

Is it possible to make CONTRUCT queries?

Pas directement, mais les "updates" en sont très proches.

% echo "for every man ?X that is the brother of the father of a person ?Y, ?X is the uncle of ?Y." | squall2sparql

INSERT { ?Y :uncle ?X . } WHERE { ?X a :man . ?Y a :person . ?Y :father ?x5 . ?x5 :brother ?X . }

Il suffit de remplacer le INSERT par CONSTRUCT.

Build Squall from OCAML sources

package camlp4-extra ocml et ocaml-libs sur Ubuntu

2012-10-03

FIX :

- crash in URL with N3 source from N3 string and URI starting with urn: : "unknown protocol: urn"

- issue with uri = "http://myURI/" ; resulted in <http://myURI/#x>

tested in RuleBasedApplicationStarterSample

COMMIT

FIX TripleStoreDrools.updateTriple() @param newvalue can be a plain (non N3) string

Tested in TableApp2

* TODO : in class EditCellListener implements TableModelListener

- when the model is updated by the application, should not fire

- in case of several triples per cell, nothing special is done (but #tableChanged(TableModelEvent) is called everytime, which results in several triples all identical)

samples.TableApp2 at localhost:35472
Thread [main] (Suspended)
owns: DefaultAgenda  (id=47)
EditCellListener.tableChanged(TableModelEvent) line: 54
N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296
N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275
N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667
TableModelFromN3.setValueInTableModel(ITriple) line: 89
TableModelFromN3.add(ITriple) line: 75
N3TableModel.addElement(ITriple) line: 146
N3TableModel.add(String) line: 114
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
DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133
DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100
DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93
DeferredMethodCall.assign(Object, List<Assignment>) line: 73
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_86b5e46b92ec4f45ac98ffe38f756c90.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_86b5e46b92ec4f45ac98ffe38f756c90DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_86b5e46b92ec4f45ac98ffe38f756c90DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1275
DefaultAgenda.fireNextItem(AgendaFilter) line: 1210
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1444
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 372
TableApp2.startTest() line: 100
TableApp2.main(String[]) line: 38
Thread [AWT-Shutdown] (Running)
Thread [AWT-EventQueue-0] (Running)

2012-10-02

TODO OWL ==> N3 translator

Everybody that manages something is a manager.

{ ?X manage ?P 
} => {
  ?X a manager
}.

2012-10-01

http://dataliftcamp-estw.eventbrite.fr/

COMMIT

- N3SourcetoDrools : throw a runtimeException in case of badly translated Drools language from N3, so that a popup window appears

- Namespaces: add dbpprop prefix

2012-09-30

https://plus.google.com/u/0/

Querying DBPedia

This brings no result, probably because of the lesser know man between Louis 14 and 15 :

CONSTRUCT { dbpedia:Henry_IV_of_France ?C0P ?C0V .
  ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France .
  ?C1 ?C1P ?C1V .  # 13
  ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14
  ?C3 dbpedia-owl:parent ?C2 . ?C3 ?C3P ?C3V. # ?
  ?C4 dbpedia-owl:parent ?C3 . ?C4 ?C4P ?C4V. # 15
  ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16
  # ?C6 dbpedia-owl:parent ?C5 . ?C6 ?C6P ?C6V. # 
} WHERE { dbpedia:Henry_IV_of_France ?C0P ?C0V .
  ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France .
  ?C1 ?C1P ?C1V .  # 13
  ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14
  ?C3 dbpedia-owl:parent ?C2 . ?C3 ?C3P ?C3V. # ?
  ?C4 dbpedia-owl:parent ?C3 . ?C4 ?C4P ?C4V. # 15
  ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16
  # ?C6 dbpedia-owl:parent ?C5 . ?C6 ?C6P ?C6V. # 
}

Anyway I had this message:

Virtuoso S1T00 Error SR171: Transaction timed out

So I split in two :

CONSTRUCT { dbpedia:Henry_IV_of_France ?C0P ?C0V .
  ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France .
  ?C1 ?C1P ?C1V .  # 13
  ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14
} WHERE { dbpedia:Henry_IV_of_France ?C0P ?C0V .
  ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France .
  ?C1 ?C1P ?C1V .  # 13
  ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14
}

I cannot put both CONSTRUCT blocs in the same file :( .

CONSTRUCT {
  ?C4 dbpedia-owl:parent dbpedia:Louis_XIV_of_France . ?C4 ?C4P ?C4V. # 15
  ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16
} WHERE { 
  ?C4 dbpedia-owl:parent dbpedia:Louis_XIV_of_France . ?C4 ?C4P ?C4V. # 15
  ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16
}

Also the Henry_IV+L13+L14 above query did "Transaction timed out" !!! (2 times!) .

But the above query L15+L16 succeded !

I could split again, but for the purpose of N3 rules demo of family relationship I need only the family relationship predicates:

dbpedia-owl:parent
dbpedia-owl:spouse
dbpprop:father

<jmv_> I had to write a huge SPARQL query for my family demo:

<jmv_> https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/examples/kings_of_France-genealogy.rq

<jmv_> but it works ! And is suitable for an N3 rules demo.

<jmv_> well , suitable for a demo in Fr , because everybody knows most of these persons .

CONSTRUCT {
  dbpedia:Henry_IV_of_France
    dbpedia-owl:parent ?P4 ;
    dbpedia-owl:spouse ?S4 ;
    dbpprop:father ?F4 .
  ?C4 dbpprop:father dbpedia:Henry_IV_of_France .
  dbpedia:Louis_XIII_of_France
    dbpedia-owl:parent ?P13 ;
    dbpedia-owl:spouse ?S13 ;
    dbpprop:father ?F13 .
  ?C13 dbpprop:father dbpedia:Louis_XIII_of_France .
  dbpedia:Louis_XIV_of_France
    dbpedia-owl:parent ?P14 ;
    dbpedia-owl:spouse ?S14 ;
    dbpprop:father ?F14 .
  ?C14 dbpprop:father dbpedia:Louis_XIV_of_France .
  dbpedia:Louis_XV_of_France
    dbpedia-owl:parent ?P15 ;
    dbpedia-owl:spouse ?S15 ;
    dbpprop:father ?F15 .
  ?C15 dbpprop:father dbpedia:Louis_XV_of_France .
  dbpedia:Louis_XVI_of_France
    dbpedia-owl:parent ?P16 ;
    dbpedia-owl:spouse ?S16 ;
    dbpprop:father ?F16 .
  ?C16 dbpprop:father dbpedia:Louis_XVI_of_France .
} WHERE {
  dbpedia:Henry_IV_of_France
    dbpedia-owl:parent ?P4 ;
    dbpedia-owl:spouse ?S4 ;
    dbpprop:father ?F4 .
  ?C4 dbpprop:father dbpedia:Henry_IV_of_France .
  dbpedia:Louis_XIII_of_France
    dbpedia-owl:parent ?P13 ;
    dbpedia-owl:spouse ?S13 ;
    dbpprop:father ?F13 .
  ?C13 dbpprop:father dbpedia:Louis_XIII_of_France .
  dbpedia:Louis_XIV_of_France
    dbpedia-owl:parent ?P14 ;
    dbpedia-owl:spouse ?S14 ;
    dbpprop:father ?F14 .
  ?C14 dbpprop:father dbpedia:Louis_XIV_of_France .
  dbpedia:Louis_XV_of_France
    dbpedia-owl:parent ?P15 ;
    dbpedia-owl:spouse ?S15 ;
    dbpprop:father ?F15 .
  ?C15 dbpprop:father dbpedia:Louis_XV_of_France .
  dbpedia:Louis_XVI_of_France
    dbpedia-owl:parent ?P16 ;
    dbpedia-owl:spouse ?S16 ;
    dbpprop:father ?F16 .
  ?C16 dbpprop:father dbpedia:Louis_XVI_of_France .
} 

Troubles in EG

importing plain XML is broken (but test stil runs !!)

Trouble with loading in EG :

http://www.daml.org/2001/01/gedcom/gedcom#

dbpedia spotlight

https://github.com/dbpedia-spotlight/dbpedia-spotlight

http://dbpedia-spotlight.github.com/demo/#

Using GoogleCL

http://code.google.com/p/googlecl/

<jmv_> installing package in debian

In the shell:

% google calendar add "test with googlecl" 
Did not find config / preferences file at /home/jmv/.googlecl/config
 ... making new one.
Please specify user: jeanmarc.vanel@gmail.com
Please log in and/or grant access via your browser at https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=4%2FVCjpDorWfePa_U01ZJVZzVYrN74L&hd=default then hit enter. Nouvelle fenêtre ouverte dans la session du navigateur

Then I clicked in the newly opened browser tab, and it answered:

You have successfully granted GoogleCL jmv@oem-laptop access to your Google Account. You can revoke access at any time under 'My Account'.

<jmv_> This works :

<jmv_> google contacts list name,email --title ".*Jos.*"

<jmv_> Jos De Roo,other jos.deroo@agfa.com

cf http://code.google.com/p/googlecl/wiki/Manual#Contacts

<rszeno> to be honest i don't understand the logic, to keep things on google servers then spend time to get and convert from there but that's me, :)

<jmv_> I have a use case : use rules to manage stuff like my contacts in relation with the mails I sent more or less recently :

<jmv_> remaind to mail to important contacts after some time,

<jmv_> infer that some contacts are important by the frequence of mails I send , etc ...

<rszeno> i'm curious how you will compute frecvency, :)

<jmv_> have not thought yet

<jmv_> it's clear that rules are not for too complex computations, like computing the surface inside a closed curve

% google --version
google 0.9.9

<jmv_> too old , does not understand --delimiter

So I download and install the latest GoogleCL :

% sudo dpkg  install ~/Téléchargements/googlecl_0.9.13-1_all.deb

Now this works :

% google contacts list --delimiter ",,,"  ".*Jos.*" 
Jos De Roo,,,jos.deroo@agfa.com

Thez list of available fields for each service is here :

http://code.google.com/p/googlecl/wiki/Manual#The_List_task

https://developers.google.com/google-apps/contacts/v3/

But GoogleCL does not provide gmail !?!

2012-09-29

Getting Turtle stuff from Facebook

http://developers.facebook.com/docs/reference/api/

Public information:

%  curl -H 'Accept: text/turtle' http://graph.facebook.com/jmvanel
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix api: <tag:graph.facebook.com,2011:/> .
@prefix og: <http://ogp.me/ns#> .
@prefix fb: <http://ogp.me/ns/fb#> .
@prefix : <http://graph.facebook.com/schema/~/> .
@prefix user: <http://graph.facebook.com/schema/user#> .
</525839392#>
user:id "525839392" ;
user:name "Jean-Marc Vanel" ;
user:first_name "Jean-Marc" ;
user:last_name "Vanel" ;
user:link <http://www.facebook.com/jmvanel> ;
user:username "jmvanel" ;
user:gender "male" ;
user:locale "fr_FR" .

Private information:

curl -H 'Accept: text/turtle' 'https://graph.facebook.com/me/friends?access_token=XXX'

the access_token must be pasted from links in the facebook/reference/api .

Downloading dbpedia.org_3.8

mkdir dbpedia.org_3.8
cd dbpedia.org_3.8
BASE=http://downloads.dbpedia.org/3.8/en
wget $BASE/instance_types_en.ttl.bz2
wget $BASE/specific_mappingbased_properties_en.ttl.bz2
wget $BASE/long_abstracts_en.ttl.bz2
for f in *.bz2 ; do
  echo bunzip2 $f ; bunzip2 $f
done

Nice tool : http://dbpedia-spotlight.github.com/demo/

TODO

Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): button for N3 result must first be disabled

COMMIT

- print download Time in console for SPARQL (hook in URIModificationChecker)

- launch Default Browser for N3 source URI that outputs only HTML

- generate skeleton ontology only for pure N3 sources (hand-made)

- Namespaces: add more "Non Ontology"

2012-09-28

Thread Name: SwingWorker-pool-4-thread-1
0java.lang.Thread.getStackTrace(Thread.java:1567)
1eulergui.util.StackHelper.printStackTrace(StackHelper.java:13)
2eulergui.gui.controller.N3SourceWorker.<init>(N3SourceWorker.java:33)
3eulergui.gui.features.N3SourceCheck$1.<init>(N3SourceCheck.java:35)
4eulergui.gui.features.N3SourceCheck.check(N3SourceCheck.java:35)
5eulergui.gui.features.N3SourceCheck.n3SourceChanged(N3SourceCheck.java:30)
6eulergui.project.ProjectChangeSupport.fireN3SourceChanged(ProjectChangeSupport.java:160)
7eulergui.project.Project.fireN3SourceChanged(Project.java:1371)
8eulergui.gui.actions.SPARQLServiceInputAction$ChooseServiceAction$1.doInBackground(SPARQLServiceInputAction.java:190)
9eulergui.gui.controller.N3SourceWorker.doInBackground(N3SourceWorker.java:1)
10javax.swing.SwingWorker$1.call(SwingWorker.java:296)
11java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
12java.util.concurrent.FutureTask.run(FutureTask.java:166)
13javax.swing.SwingWorker.run(SwingWorker.java:335)
14java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

<jmvanel> instead of working on family , actors or musicians, for EG examples ,

<jmvanel> I think now about software projects :)

<jmvanel> Will start by downloading

?SP a dbpedia-owl:Software ; ?P ?V .

<jmvanel> this suits my 2 requirements for examples : audience know the domain;

<jmvanel> audience knows some typical data

2012-09-27

CONSTRUCT { ?A ?P ?V . 
} WHERE { ?A a dbpedia-owl:MusicalArtist ; ?P ?V . }

2012-09-25

// TODO migrate these ontologies to EG

http://jmvanel.free.fr/ontology/java_projection.owl

http://jmvanel.free.fr/ontology/java_library.owl#

http://jmvanel.free.fr/ontology/software_development.owl#

http://jmvanel.free.fr/ontology/gui_details.owl#

Could not load from URL http://deductions.sf.net/ontology/knowledge_base.owl#

Could not load from URL http://eulergui.sf.net/owl-rule#

Could not load from URL http://deductions.sf.net/generic_gui#

[http://www.w3.org/2000/10/swap/reason#, http://eulergui.sourceforge.net/engine.owl#, http://www.w3.org/2000/01/rdf-schema#, http://www.w3.org/2000/10/swap/string#, http://www.w3.org/2000/10/swap/math#, file:/home/jmv/src/eulergui/materials.ace.n3p#, http://eulersharp.sourceforge.net/2003/03swap/log-rules#, http://www.w3.org/XML/1998/namespace, http://jmvanel.free.fr/ontology/java_projection.owl#, http://deductions.sf.net/generic_gui#, http://www.w3.org/2000/10/swap/list#, http://www.w3.org/1999/02/22-rdf-syntax-ns#, http://jmvanel.free.fr/ontology/java_library.owl#, http://purl.org/dc/elements/1.1/, http://dbpedia.org/ontology/, http://jmvanel.free.fr/ontology/software_development.owl#, http://java.sun.com/method#, http://java.sun.com/predicate#, http://eulergui.sf.net/owl-rule#, file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/materials.ace.2.n3p#, http://localhost/var#, http://jmvanel.free.fr/ontology/gui_details.owl#, http://java.sun.com/class#, http://rdfs.org/ns/void#, http://www.w3.org/2003/11/swrl#, http://eulersharp.svn.sourceforge.net/viewvc/eulersharp/trunk/2003/03swap/, http://dbpedia.org/resource/, http://www.w3.org/2000/10/swap/log#, http://www.w3.org/2003/11/swrlb#, http://www.w3.org/2004/06/rei#, http://deductions.sf.net/ontology/knowledge_base.owl#, http://www.w3.org/2002/07/owl#, http://jmvanel.free.fr/ontology/software_applications.owl#, http://jmvanel.free.fr/ontology/gui_generic.owl#, http://www.w3.org/2007/rif-builtin-function#, http://www.w3.org/2005/xpath-functions#, http://owldl.com/ontologies/dl-safe.owl#, http://xmlns.com/foaf/0.1/]

2012-09-22

TODO : in FEATURE "add to project a skeleton ontology for missing declarations of properties and classes" :

- reformat ontology with Jena; take in account referred ontologies

2012-09-20

TODO: Euler engine: N3 sources in subproject in other directory are not found.

N3JavaMappingBuiltin.processTripleElementForConsequent(): INFO: 2 is not a variable and not a Resource
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/n3_nojs/generic_to_java-rules.n3
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:327)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90)
at eulergui.project.Project.doTranslateN32Drools(Project.java:872)
at eulergui.project.Project.translateN32Drools(Project.java:823)
at eulergui.project.Project.prepareDrools(Project.java:796)
at eulergui.project.Project.doRunDrools(Project.java:749)
at eulergui.project.Project.runDroolsTriples(Project.java:700)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:31)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:49)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:18)
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:427)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320)
 ... 17 more
Caused by: java.lang.NullPointerException
at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:259)
at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459)
at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1100)
at org.drools.common.AbstractRuleBase.mergePackage(AbstractRuleBase.java:854)
at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:614)
at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:472)
at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:479)
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:425)
 ... 18 more

N3JavaMappingBuiltin.processTripleElementForConsequent(): INFO: 2 is not a variable and not a Resource
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/n3_nojs/generic_to_java-rules.n3
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:327)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90)
at eulergui.project.Project.doTranslateN32Drools(Project.java:872)
at eulergui.project.Project.translateN32Drools(Project.java:823)
at eulergui.project.Project.prepareDrools(Project.java:796)
at eulergui.project.Project.doRunDrools(Project.java:749)
at eulergui.project.Project.runDroolsTriples(Project.java:700)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:31)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:49)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:18)
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:427)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320)
 ... 17 more
Caused by: org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback@6fd5bc97
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:995)
at org.drools.reteoo.RuleTerminalNode.doRemove(RuleTerminalNode.java:366)
at org.drools.common.BaseNode.remove(BaseNode.java:109)
at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:261)
at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459)
at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1100)
at org.drools.common.AbstractRuleBase.mergePackage(AbstractRuleBase.java:854)
at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:614)
at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:472)
at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:479)
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:425)
 ... 18 more
Caused by: java.lang.NullPointerException
at eulergui.inference.drools.impl.JavaObjectsRetractionListener.invokeRemoveMethod(JavaObjectsRetractionListener.java:97)
at eulergui.inference.drools.impl.JavaObjectsRetractionListener.objectRetracted(JavaObjectsRetractionListener.java:36)
at org.drools.event.WorkingMemoryEventSupport.fireObjectRetracted(WorkingMemoryEventSupport.java:78)
at org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:599)
at org.drools.common.AbstractWorkingMemory.retract(AbstractWorkingMemory.java:936)
at org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback.execute(TruthMaintenanceSystem.java:320)
at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:993)
 ... 28 more

2012-09-19

Tests run: 200, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] Total time: 16:37.434s

<CrazyThinker> http://agi-conference.org/2012/committees-2/

<CrazyThinker> Now, that is an impressive list of people

http://web.media.mit.edu/~minsky/

Microsoft was dead

http://www.paulgraham.com/microsoft.html

Thread [main] (Suspended)
TripleStoreTDB(TripleStoreJena).createNonListStatement(ITriple) line: 92
TripleStoreTDB(TripleStoreJena).createStatement(ITriple) line: 72
TripleStoreTDB(TripleStoreJena).extractList(ITriple) line: 249
TestTripleStoreTDB.testRDFList() line: 141

2012-09-16

<jmvanel> Added to my agenda http://agi-conference.org/2012/

<jmvanel> Likely I'll go .

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(DecimalFormat.java:505)
at java.text.Format.format(Format.java:157)
at javax.swing.JTable$DoubleRenderer.setValue(JTable.java:5367)
at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:257)
at javax.swing.JTable.prepareRenderer(JTable.java:5735)
at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114)

COMMIT:

N3JTable : catch exceptions in formatting datatype Properties, so that now table formatting goes on;

exceptions such as:

Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number

at java.text.DecimalFormat.format(DecimalFormat.java:505)

at java.text.Format.format(Format.java:157)

at javax.swing.JTable$DoubleRenderer.setValue(JTable.java:5367)

at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:257)

2012-09-15

http://wiki.opencog.org/w/Unified_rule_engine

2012-09-14

2007-11-01

mix eXist and prolog ?

Triple store aware Table

N3TableModelTest : stack when Triple is updated, following N3TableModel initialization :

Thread [main] (Suspended (breakpoint at line 135 in TripleStoreDrools))
TripleStoreDrools.updateTriple(ITriple, String) line: 135
EditCellListener.tableChanged(TableModelEvent) line: 53
N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296
N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275
N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667
TableModelFromN3.setValueInTableModel(ITriple) line: 89
TableModelFromN3.add(ITriple) line: 75
TableModelFromN3.updateTableModel(List<ITriple>) line: 62
N3TableModel.initFromTriples(List<ITriple>) line: 33
N3TableModel.<init>(List<ITriple>, ITripleStore) line: 27
N3TableModelTest.testColumnType(int) line: 183
N3TableModelTest.main(String[]) line: 56

N3TableModelTest : stack when Triple is updated, following user edit in the table:

Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 135 in TripleStoreDrools))
TripleStoreDrools.updateTriple(ITriple, String) line: 135
EditCellListener.tableChanged(TableModelEvent) line: 54
N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296
N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275
N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667
N3JTable(JTable).setValueAt(Object, int, int) line: 2744
N3JTable(JTable).editingStopped(ChangeEvent) line: 4726
JTable$NumberEditor(AbstractCellEditor).fireEditingStopped() line: 141
DefaultCellEditor$1(DefaultCellEditor$EditorDelegate).stopCellEditing() line: 368
JTable$NumberEditor(DefaultCellEditor).stopCellEditing() line: 233
JTable$NumberEditor(JTable$GenericEditor).stopCellEditing() line: 5481
BasicTableUI$Actions.actionPerformed(ActionEvent) line: 502
SwingUtilities.notifyAction(Action, KeyStroke, KeyEvent, Object, int) line: 1661
N3JTable(JComponent).processKeyBinding(KeyStroke, KeyEvent, int, boolean) line: 2879
N3JTable(JTable).processKeyBinding(KeyStroke, KeyEvent, int, boolean) line: 5262
JTextField(JComponent).processKeyBindings(KeyEvent, boolean) line: 2940
JTextField(JComponent).processKeyEvent(KeyEvent) line: 2842
JTextField(Component).processEvent(AWTEvent) line: 6281
JTextField(Container).processEvent(AWTEvent) line: 2229
JTextField(Component).dispatchEventImpl(AWTEvent) line: 4860
JTextField(Container).dispatchEventImpl(AWTEvent) line: 2287
JTextField(Component).dispatchEvent(AWTEvent) line: 4686
DefaultKeyboardFocusManager(KeyboardFocusManager).redispatchEvent(Component, AWTEvent) line: 1908
 ...

Tests results

Results :

Tests in error: 
  testRDFList(unif.TestTripleStoreTDB)
  testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*"
  testSimpleURLProject(eulergui.gui.TestJavaEditor): 1
  testURLProjectOWL(eulergui.gui.TestJavaEditor): eulergui.gui.main.ProjectGUI cannot be cast to org.gjt.sp.jedit.View
  testSimpleProjectLocal(eulergui.gui.TestJavaEditor): eulergui.gui.main.ProjectGUI cannot be cast to org.gjt.sp.jedit.View

Tests run: 198, Failures: 0, Errors: 5, Skipped: 0

COMMIT

- ACE : set ontology Prefix == projet URI

TODO : user should be able to set an ontology URI for the project

Idea for form generator

Idea for form generator: with such a rule, the predicate gui:createFormFromResource should work, so no need to go deep into ontology ( only for OWL ==> N3 generation ) :

{?VAR a ns2:concrete} => {?t0 a ns2:aggregate. ?t1 a ns2:cement. ?VAR ns2:contains ?t0. ?VAR ns2:contains ?t1}.

2012-09-13

ACE example in materials science

% ape.exe -text 'Every n:concrete v:contains a n:cement and v:contains an n:aggregate.' -solo paraphrase 
Every n:concrete v:contains a n:cement and v:contains an aggregate.

% ape.exe -text 'Every n:concrete v:contains a n:cement and v:contains an n:aggregate.' -solo owlfsspp   
Prefix(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>)
Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test>
   SubClassOf(
      :concrete
      ObjectIntersectionOf(
         ObjectSomeValuesFrom(
            :contains
            :cement
         )
         ObjectSomeValuesFrom(
            :contains
            :aggregate
         )
      )
   )
)

In EulerGUI, this gives:

{ ?VAR a ns2:concrete
} => {
  ?t0 a ns2:aggregate. ?t1 a ns2:cement. ?VAR ns2:contains ?t0. ?VAR ns2:contains ?t1 }.

while the OWL/RDF version is :

:concrete rdf:type owl:Class ;
          
          rdfs:subClassOf [ rdf:type owl:Class ;
                            owl:intersectionOf ( [ rdf:type owl:Restriction ;
                                                   owl:onProperty :contains ;
                                                   owl:someValuesFrom :aggregate
                                                 ]
                                                 [ rdf:type owl:Restriction ;
                                                   owl:onProperty :contains ;
                                                   owl:someValuesFrom :cement
                                                 ]
                                               )
                          ] .

Being subClass of an intersectionOf of C1 and C2 is the same thing as being both a subClass of C1 and C2.

{ ?SC rdfs:subClassOf ?SUPER .
  ?SUPER owl:intersectionOf ( ?C1 C2 ).
} => {
   ?SC rdfs:subClassOf ?C1.
   ?SC rdfs:subClassOf ?C2.
}.

materials.ace.n3p

GET http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentor.n3 FROM /home/jmv/.eulergui/n3_cache/rules-documentor.n3_977667786497388755.n3 SC=18
GET file:///home/jmv/src/eulergui/examples/materials.app.n3 SC=2
GET file:///tmp/materials.ace.as.rules.n3 SC=1
GET file:///home/jmv/.eulergui/n3_cache/materials.ace_431555212257621755.n3 SC=14
java.lang.RuntimeException:      EXISTENCE ERROR- open/3 could not open file /home/jmv/src/eulergui/gui_generic.n3

Erreur pendant  Engine N3 run
java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /home/jmv/src/eulergui/examples/materials.app.n3, /tmp/materials.ace.as.rules.n3, /home/jmv/.eulergui/n3_cache/materials.ace_431555212257621755.n3, /home/jmv/src/eulergui/gui_generic.n3, /home/jmv/src/eulergui/java_event-rules.n3, /home/jmv/src/eulergui/software_applications.n3, /home/jmv/src/eulergui/generic_gui_projection-rules.n3, /home/jmv/src/eulergui/rpo-rules-small.n3, /home/jmv/src/eulergui/java_library-rules.n3, /home/jmv/src/eulergui/form-rules.n3, /home/jmv/src/eulergui/generic_to_java-rules.n3, /home/jmv/src/eulergui/java_library.n3, /home/jmv/src/eulergui/app_gui-rules2.n3]
Cause:
java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /home/jmv/src/eulergui/examples/materials.app.n3, /tmp/materials.ace.as.rules.n3, /home/jmv/.eulergui/n3_cache/materials.ace_431555212257621755.n3, /home/jmv/src/eulergui/gui_generic.n3, /home/jmv/src/eulergui/java_event-rules.n3, /home/jmv/src/eulergui/software_applications.n3, /home/jmv/src/eulergui/generic_gui_projection-rules.n3, /home/jmv/src/eulergui/rpo-rules-small.n3, /home/jmv/src/eulergui/java_library-rules.n3, /home/jmv/src/eulergui/form-rules.n3, /home/jmv/src/eulergui/generic_to_java-rules.n3, /home/jmv/src/eulergui/java_library.n3, /home/jmv/src/eulergui/app_gui-rules2.n3]

EulerGUI enhancements

<jmvanel> fixed several things, including generating rules from OWL, working with Euler cache , so that it should work even without internet .

<jmvanel> also popups when inpouts from command line have errors

<jmvanel> inputs

<jmvanel> + working from an ACE file in all 4 cases :( : with and without cache, from command line or from button /

So, time for a snapshot :)

GET file:///tmp/eg-8183002801998623440.n3 SC=4
GET http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3 FROM /home/jmv/.eulergui/n3_cache/swrl-n3-rulesQ.n3_1987130039713927688.n3
 SC=3
networking 28 [msec cputime] 33 [msec walltime]
TC=6 TP=16 BC=0 BP=7 PM=0 CM=0 FM=0 AM=0
reasoning 4 [msec cputime] 2 [msec walltime]

N3Source.parseResult(): parseResult (http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3p#EyeHelper.reasonExternalProlog) was null 
==> re-parse (and possibly re-read N3 source)
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fd0994d55bf, pid=4066, tid=140533741467392
#
# JRE version: 7.0-b147

Links : N3, treetop

http://treetop.rubyforge.org/index.html

http://en.wikipedia.org/wiki/Semantic_reasoner#Free_software

Experience with N3 rules

Tim Berners-Lee, Dan Connolly, Eric Prud'homeaux, Yosi Scharf

http://www.w3.org/2004/12/rules-ws/paper/94/

Found this nice list of papers : http://www.w3.org/2004/12/rules-ws/accepted

including http://www.w3.org/2004/12/rules-ws/paper/48/

http://www.hokstad.com/

EulerGUI COMMIT

Getting_data_from_the_Semantic_Web_(Ruby)

http://answers.semanticweb.com/questions/505/what-ruby-library-do-you-use-for-working-with-rdf

http://semanticweb.org/wiki/Getting_data_from_the_Semantic_Web_(Ruby)

sudo gem1.8  install linkeddata
# takes a long time!

Alas : irb does not work for the rdf example from Debian stable !! :(

Nor with ruby !

Nor from Ubuntu 2012.04 !!!

% ruby semweb.rb
semweb.rb:1:in `require': no such file to load -- rdf (LoadError)
from semweb.rb:1

Rules in Ruby

Rools : alas does not work for the example from Debian stable !! :( , nor from Ubuntu 2012.04 !!!

http://rools.rubyforge.org/quickstart.html

% ruby rools.rb             
 ./rools.rb:4: uninitialized constant Rools (NameError)
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from rools.rb:2

Ruleby Quick-Start

Yesterday went to ruby meetup , about mongoDB.

http://stackoverflow.com/questions/820259/ruby-rules-engines

Today I test a rule engine in Ruby :

https://github.com/Codalytics/ruleby/wiki/Quick-Start

sudo apt-get install libgemplugin-ruby
git clone git://github.com/Codalytics/ruleby.git
cd ruleby 
ls -l
total 56
drwxr-xr-x 3 jmv jmv  4096 13 sept. 11:54 benchmarks
drwxr-xr-x 2 jmv jmv  4096 13 sept. 11:54 examples
-rw-r--r-- 1 jmv jmv 18005 13 sept. 11:54 GPL.txt
drwxr-xr-x 4 jmv jmv  4096 13 sept. 11:54 lib
-rw-r--r-- 1 jmv jmv  2341 13 sept. 11:54 LICENSE.txt
-rw-r--r-- 1 jmv jmv   623 13 sept. 11:54 README.markdown
-rw-r--r-- 1 jmv jmv   710 13 sept. 11:54 ruleby.gemspec
drwxr-xr-x 2 jmv jmv  4096 13 sept. 11:54 spec
drwxr-xr-x 2 jmv jmv  4096 13 sept. 11:54 tasks
drwxr-xr-x 2 jmv jmv  4096 13 sept. 11:54 tests

cd examples
ruby hello.rb
Hello World
Goodbye world

The syntax of the rule language (DSL) : https://github.com/Codalytics/ruleby/wiki/Ferrari

The language is in fact pretty similar to Drools in its semantics.

I also found a presentation explaining Drools and Ruleby side by side:

http://fr.slideshare.net/martincabrera/rules-engine-java-rails

Fosdem 50 minute introduction into Drools

http://blog.athico.com/2010/03/fosdem-50-minute-introduction-into.html

TODO EulerGUI

ERROR during project opening (N3 rethrow Event)
ERROR in reasoning with External Prolog: [--nope, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, /home/jmv/.eulergui/n3_cache/owl-subclass-assertions-to-rules.n3_399242197975572251.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, /home/jmv/.eulergui/n3_cache/variableSubstitution.n3_1092222620304522560.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /home/jmv/.eulergui/n3_cache/swrl-n3-rules.n3_6834720492898820436.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /tmp/eg-2562998987318900259.n3, --query, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3]
Cause:
java.lang.RuntimeException: ** ERROR ** http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3 ** exec_error(wget --header="Accept: text/*" --header="Cache-Control: max-age=3600" -q "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3" -O /tmp/yap_eye_3707_4)

2012-09-12

http://www.lexique.org/

Pave the way for separate Maven project for eulergui_api

- move N3SourceTableView and N3JTable to deductions.runtime.swing

- move N3ShellFrame in gui

- fix preceding commit : move package interfaces out of gui

To re-create eulergui_api/ from scratch

rm -rf $HOME/src/eulergui_api
cd $HOME/src/eulergui
cp -r . ../eulergui_api
cd ../eulergui_api

rm -rf src/test/java/eulergui/gui
cd src/main/java
rm -rf jdepend eulergui/gui 
rm -rf net/rhizomik
rm -rf org/gjt
# rm -rf eulergui/inputs

Problems remaining:

COMMIT

- move classes TemporaryFrame , SwingHelper out of eulergui.gui

- move package interfaces out of eulergui.gui

- extract class RDFN3Converter out of class ResultEditorN3Action

Updated eulergui_api/ :

rm -rf src/main/java/eulergui
cp -r /home/jmv/src/eulergui/src/main/java/eulergui src/main/java/eulergui
rm -rf src/test/java/eulergui/gui  
rm -rf src/main/java/eulergui/gui
rm -rf src/main/java/eulergui/inputs

2012-09-11

https://www.google.fr/search?q=java+numeric+library

http://ismir2012.ismir.net/event/programme

http://rdf-translator.appspot.com/

COMMIT

- TestTripleStoreTDB : add more assert

- TripleStoreTDB.java : set database location

cd ../eulergui_api
cd src/main/java
rm -rf jdepend eulergui/gui 
rm -rf net/rhizomik
rm -rf org/gjt

TODO

2012-09-10

http://wiki.agile-france.org/cgi-bin/wiki.pl?DojoDeveloppement

COMMIT

- RENAME class Persistance to Persistence, PersistanceListener to PersistenceListener

- TripleStoreTDB : test store and retrieve an RDF list

TODO: TripleStoreTDB : fix searchBySubjectAndPredicate, see comment "side effect"

Revision 3227 - Directory Listing

Modified Thu Aug 30 08:25:16 2012 UTC (11 days ago) by jmvanel

Persistance of columns order in TableApp2 : WIP: set columns order from persistent store

Revision 2853 - Directory Listing

Modified Sun Jan 8 21:13:19 2012 UTC (8 months ago) by jmvanel

WIP: isolated RDF lists in plain triples

- test/list_alone.n3p works in TestReasonning

TODO:

- use prior indexing of RDF lists in isRDFListUsedInTriple

2012-09-06

COMMIT

FIX N3TermHelper.getLocalName() :

now getLocalName( "<bla>") returns "bla"

<rszeno> what karima use on server side? java, php, perl?

<jmvanel> php + filestore

<rszeno> are few libraries and integration is easy but she need to search

<rszeno> http://www.w3.org/community/rww/wiki/Main_Page

<jmvanel> she also has a nice OSS project to plug into MediaWiki to add RDF annotations :

<jmvanel> http://www.bordercloud.com/recherche-developpement/linkedwiki

Results :

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): Wait for "Component having "file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/test/catch_allQ.n3" name." subcomponent to be displayed
  testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): Wait for "Component having "file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/test/catch_allQ.n3" name." subcomponent to be displayed
  testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*"
  testAddNewN3Source(eulergui.gui.TestN3SourceInGUI): Component enabled: class javax.swing.JButton
  testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI): Frame Title Component Chooser ".*new_source.n3.*"

i

Bad future !

<rszeno> today many developers build a fake image about their work but doesn't understand that pay this when users sick of problems start to move into another direction or build their inhouse stuff

<rszeno> as luc said today, who care about future? :)

<jmvanel> we are in a society of the instant; maybe at an unconscious level people know that severe problems accumulate, like economy and planet changes out of control

<jmvanel> so they act like ostrich putting their head in the sand

<jmvanel> And where economy and planet troubles meet, is the probable rise of the sea level of 70 meters :(

Add N3 source in ATTEMPTO Controlled English

Every plant is a living-being.

COMMIT Révision 3235

New N3 Source: Add query in ATTEMPTO Controlled English

create a new ACE file was not possible (NOTE: create a new RDF is not possible but it's not necessary)

- change order of buttons to create N3 sources

- icon not too large

- tested:

* add new ACE file

* open existing ACE

* popup for ACE errors

* trigger OWL and SWRL translation

TODO add Jemmy tests

PENDING predictive ACE editor, completion in editor

Refactor : pull up fields in AddN3Action: n3SourceType, suffixes, prefillInEditor

convert -resize 24x24 \
  src/main/resources/eulergui/gui/main/AceWikiLogoSmall.png \
  src/main/resources/eulergui/gui/main/AceWikiLogoSmall2.png

COMMIT

New N3 Source: Add N3 source in ATTEMPTO Controlled English

TODO icon too large, trigger OWL and SWRL translation

PENDING predictive ACE editor, completion in editor

2012-09-05

Installing ACE-in-GF

on Ubuntu from sources

Mail sent to Kaarel

Yes, a newer version of GF is necessary because we had to fix some

bugs in the resource grammar library. The ACE-in-GF readme says:

Note: based on GF darcs version: 2012-05-29 17:38:20 CEST

Hopefully the latest darcs version works as well.

on Debian from sources

/home/jmv/src/ACE-in-GF/ % make pgf_acewiki_aceowlgf --make
--path=present:grammars/acewiki_aceowl:words/acewiki_aceowl:lib/src/ace:lib/src/api
--startcat=ACEText --optimize-pgf --mk-index
words/acewiki_aceowl/TestAttemptoAce.gf words/acewiki_aceowl/TestAttemptoCat.gf
words/acewiki_aceowl/TestAttemptoDut.gf words/acewiki_aceowl/TestAttemptoEng.gf
words/acewiki_aceowl/TestAttemptoFin.gf words/acewiki_aceowl/TestAttemptoFre.gf
words/acewiki_aceowl/TestAttemptoGer.gf words/acewiki_aceowl/TestAttemptoIta.gf
words/acewiki_aceowl/TestAttemptoSpa.gf words/acewiki_aceowl/TestAttemptoSwe.gf
words/acewiki_aceowl/TestAttemptoUrd.gfgf: error while loading shared libraries: libgmp.so.10: cannot open shared
object file: No such file or directorymake: *** [pgf_acewiki_aceowl] Erreur 127

TODO : fix: editor context command add-uri-to-project

(tested from owl-SymmetricProperty.n3 )

java.lang.RuntimeException: Erreur pendant  re-parsing N3 source "??"
 getLocalN3(): /home/jmv/.eulergui/n3_cache/rdf-schema#>._293510382945813127.n3
 getURI(): http://www.w3.org/2000/01/rdf-schema#>.
at eulergui.project.N3Source.manageParseN3(N3Source.java:464)
at eulergui.project.N3Source.update(N3Source.java:401)
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:93)
at eulergui.project.Project.addN3Source(Project.java:328)
at eulergui.project.Project.addN3Source(Project.java:308)
at eulergui.project.SourceFactory.addSource(SourceFactory.java:146)
at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54)
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.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)

java.lang.RuntimeException: Erreur pendant  re-parsing N3 source "??"
 getLocalN3(): /home/jmv/.eulergui/n3_cache/log#>._3051478644302417486.n3
 getURI(): http://www.w3.org/2000/10/swap/log#>.
at eulergui.project.N3Source.manageParseN3(N3Source.java:464)
at eulergui.project.N3Source.update(N3Source.java:401)
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:93)
at eulergui.project.Project.addN3Source(Project.java:328)
at eulergui.project.Project.addN3Source(Project.java:308)
at eulergui.project.SourceFactory.addSource(SourceFactory.java:146)
at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54)
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.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)

java.lang.RuntimeException: XML FormatRecognizer :
Could not load from URL http://www.w3.org/2002/07/owl#>.
 ; this was expected to be XML, but does not seem to be XML;
 reason: Content is not allowed in prolog.
 cause: null
at eulergui.inputs.dispatcher.FormatRecognizer.<init>(FormatRecognizer.java:41)
at eulergui.project.SourceFactory.addSource(SourceFactory.java:117)
at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54)
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.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)

ava.net.MalformedURLException: unknown protocol: owl
at java.net.URL.<init>(URL.java:590)
at java.net.URL.<init>(URL.java:480)
at java.net.URL.<init>(URL.java:429)
at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54)
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.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)

2012-09-04

Trying Squall on Debian

This is enough to enable Squall on Debian:

sudo ln -s /lib/libtic.so.5 /lib/libtinfo.so.5 

This works as expected, but how can I get all properties of this URI ?

% echo "what is the name of dbpedia:Buddy_Guy ." | squall2sparql 
SELECT DISTINCT ?x1 WHERE { dbpedia:Buddy_Guy :name ?x1 . }

Is it possible to make CONTRUCT queries?

Apparently, it is not possible to set prefixes, and there are no default prefixes set by Squall .

This gives a wrong result:

% echo "what is the <http://dbpedia.org/property/name> of
dbpedia:Buddy_Guy ." | squall2sparqlSELECT DISTINCT ?x1 WHERE { ?x1 a <http://dbpedia . }

I finished the integration of Squall in EulerGUI.

Semantic Camp Paris # 5

<jmvanel> yesterday at the last minute I went here :

<jmvanel> meetup.com/SemanticCampParis/events/36545432

<jmvanel> The 15mn pres of EG was apreciated

<jmvanel> pres was not scheduled !

<jmvanel> I came 1h before end at 18:

Squall integration in EulerGUI : N3 configuration

jmvanel> This time I'll do things more clean for Squall in EG , I first wrote an N3 config. file :

@keywords a.
squall a N3SourceType;
  rdfs:label "Squall";
  rdfs:comment"From Controlled english to SPARQL 1.1. - runs squall2sparql and launches SPARQL query";
  rdfs:seeAlso <http://www.irisa.fr/LIS/softwares/squall>;
  extension ".squall";
  javaN3Factory java:eulergui-project-N3SourceFromSquall;
  javaN3Widgets java:eulergui-gui-view-ButtonsForN3SourceFromSquall.

and later other N3 source types should later be retrofitted into this .

Possible design for a Java method call or constructor on consequent side :

c a javaMethodCall;
  javaObject ?O; # or javaClass
  javaMethodName "methodName";
  arguments ( ?X ?Y );
  javaResult ?R.

This is much more verbose than the simpler method call already existing:

?O javam:methodName ( ?X ?Y ) .

but this mecanism does not offer any possibility to get hold of the return value.

As with with the simpler method call already existing, it would be called ad soon as javaObject and all arguments are bound. And then javaResult will be bound to ?R. Internally it would create a DeferredMethodCall object in the Drools KB.

Virtualenv Python

sudo add-apt-repository ppa:fkrull/deadsnakes
    sudo apt-get update
    sudo apt-get install python2.5
    cd /tmp/
    virtualenv --python=python2.5 test
    source test/bin/activate
    pip install bottle==0.8

2012-09-04

Is there a graphical tool that can "simplify" a hand made drawing. It would try to retrieve a a simple shape out of the lines, like elipse, polygons, or Bézier curves.

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

Installing GF on Ubuntu from sources

darcs get --lazy --set-scripts-executable http://www.grammaticalframework.org/ gf
sudo apt-get install libghc6-haskeline-dev
cd ~/src/GF/
cabal install
cabal copy
/home/jmv/src/GF/./dist/setup/setup: error while loading shared libraries: libffi.so.5: cannot open shared object file: No such file or directory

So I finally used the provided binary : http://www.grammaticalframework.org/download/index.html

cabal install fst parallel
cabal configure

Running squall2sparql

cf file:///home/jmv/src/GF/doc/gf-developers.html#toc2

This works fine :

% ~/jmv_sur_debian/Téléchargements/squall2sparql
INSERT DATA { :John :loves :Mary . }

FEATURE: if all properties and classes are not declared, add to project a skeleton declaration

COMMIT

FEATURE: in GUI, when an N3Source is saved, if all properties and classes are not declared,

add to project a skeleton declaration

TODO

Tests in error:

testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-7212325558389938827.n3 ; http://live.dbpedia.org/sparql

testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*"

2012-09-03

Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended)
owns: DefaultAgenda  (id=139)
N3SourceCheck.check(N3Source, Project) line: 55
N3SourceCheck.check(N3Source) line: 17
Rule_application_rules_n3_3_a8ca66ef930740a7af4d80afe5797884.defaultConsequence(KnowledgeHelper, N3Source, FactHandle) line: 9
Rule_application_rules_n3_3_a8ca66ef930740a7af4d80afe5797884DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_application_rules_n3_3_a8ca66ef930740a7af4d80afe5797884DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1277
DefaultAgenda.fireNextItem(AgendaFilter) line: 1212
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 372
ApplicationKB.fireAllRules() line: 227
ApplicationKBHelper.fireEvent(String, String) line: 24
URIModificationChecker$1.doInBackground() line: 106
URIModificationChecker$1(N3SourceWorker).doInBackground() line: 1
SwingWorker$1.call() line: 296
FutureTask$Sync.innerRun() line: 334
SwingWorker$2(FutureTask<V>).run() line: 166
URIModificationChecker$1(SwingWorker<T,V>).run() line: 335
ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110
ThreadPoolExecutor$Worker.run() line: 603
Thread.run() line: 722

TODO : when started with eg f.n3 , the Java objects for N3Source are not put in the KB .

{ eg:n3SourceChanged eg:uri ?N3Source .
} => {
  java:eulergui-gui-features-N3SourceWorker javam:check (?N3Source).
}.

COMMIT

- Events in KB: call in URIModificationChecker:

ApplicationKBHelper.fireEvent( "n3SourceChanged", n3Source.getURI() );

- new class features/N3SourceCheck.java + test, ready to be added in the GUI

Using rule base deductions/n3_nojs/rules-documentor.n3p , check that all properties and classes are declared.

NOTE: no need to add automatically refered ontologies, to check current project with refered ontologies added, user will do this

add rules-documentor.n3p , to be used in new EulergUI feature

2012-09-02

  ?X log:uri ?URI .
  ( ?URI "#" ) fn:substring-after ?LABEL .

2012-09-01

Exception in thread "Thread-63" java.lang.RuntimeException: java.io.IOException: Cannot run program "/tmp/eye/linux/bin/yap": error=24, Trop de fichiers ouverts
at euler.Process.run(Process.java:113)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.io.IOException: Cannot run program "/tmp/eye/linux/bin/yap": error=24, Trop de fichiers ouverts
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
at java.lang.Runtime.exec(Runtime.java:615)
at java.lang.Runtime.exec(Runtime.java:483)
at euler.Process.run(Process.java:68)
 ... 1 more
Caused by: java.io.IOException: error=24, Trop de fichiers ouverts
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021)
 ... 4 more

Reading GF article ""

I wonder if it would make sense to make a GF grammar for GF itself, or a convenient subset .

TODO

2012-08-31

eg examples/book.n3 ~/src/deductions/n3_new/model-rules-coherence.n3

cd ~/apps/jeebox/ ; wine ./Jeebox.exe

REGRESSION:

Revision 3105 - Directory Listing

Modified Sun Jun 10 15:12:10 2012 UTC (2 months, 2 weeks ago) by jmvanel

add AddURIToProjectAction in jEdit editor

* new entry "eulergui-add-uri-to-project" in right click menu in jEdit editor

* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props

TODO : documentation of AddURIToProjectAction, LaunchBrowserURIAction

TESTED with abbrevated FOAF URI with http://jmvanel.free.fr/jmv.rdf

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

SQUALL : What is a man ?

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

Shakespeare language ?

http://angelcog.org/stuff/stage_1/language

http://en.wikipedia.org/wiki/Homoiconicity

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

Search this in Watson :

language lexicon noun verb adjective

TODO

OWN.owl : does not load

~/src/tmp_demo/table_gui+onto.n3p

2012-08-30

PROBLEM when managing N3 Cache for N3 source interesting-contact2.owl
URI is not absolute
Cause:

[ERROR] - 2012-08-30 23:49:16,544 [AWT-EventQueue-0] eulergui.gui.main.ResultManagement (ResultManagement.java:displayStandardError:194) 
 DeferredMethodCall.assign() : argument not ready: _:type2
DeferredMethodCall.assign() : argument not ready: _:type1
DeferredMethodCall.assign() : argument not ready: _:type2
DeferredMethodCall.assign() : argument not ready: _:type1
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
at java.util.Vector.elementAt(Vector.java:470)
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294)
at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableHeaderUI.java:733)
at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTableHeaderUI.java:765)
at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:796)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1660)
at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:95)
at java.awt.Container.preferredSize(Container.java:1788)
at java.awt.Container.getPreferredSize(Container.java:1773)
at javax.swing.JComponent.getPreferredSize(JComponent.java:1662)
at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:723)
at java.awt.Container.layout(Container.java:1503)
at java.awt.Container.doLayout(Container.java:1492)
at java.awt.Container.validateTree(Container.java:1688)
at java.awt.Container.validate(Container.java:1623)
at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:653)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1620)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705)
at java.awt.EventQueue.access$000(EventQueue.java:101)
at java.awt.EventQueue$3.run(EventQueue.java:666)
at java.awt.EventQueue$3.run(EventQueue.java:664)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:675)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Duplicate URI Prefixes:

: ==> http://eulergui.sf.net/owl-rule# , from ../../../../../../tmp/interesting-contact2.owl.as.rules.n3
, previous Value: http://eulergui.sf.net/contact.owl#

profit : Elbach : Profit : in prologfeatures.pl

TODO : the table cells are not filled :

eg  examples/table_app.n3 examples/table_data_no_rule.n3 &

( works on revision 3219, but not on latest 3226 ) TODO add test for this

A new verson of ParadisEO, a software framework for metaheuristics, is now available: ParadisEO 2.0, see http://paradiseo.gforge.inria.fr

I installed package ocaml-findlib on Ubuntu .

Questions about ACE WIKI present and future

From the top of my head ...

CNL 2012 2nd day

http://attempto.ifi.uzh.ch/site/cnl2012/program.html

09:00-09:45Sébastien Ferré

SQUALL: a Controlled Natural Language for Querying and Updating RDF Graphs

09:45-10:30 Richard Power

OWL Simplified English: a Finite-State Language for Ontology Editing

Research Talks 3

(Session Chair: Kaarel Kaljurand)

11:00-11:45 William Murray and Tomas Singliar

Spatiotemporal Extensions to a Controlled Natural Language

11:45-12:30 Rolf Schwitter

Answer Set Programming via Controlled Natural Language Processing

Invited Talk 2

(Session Chair: Norbert E. Fuchs)

14:00-15:00Sabine Lehmann, Ben Gottesman, Robert Grabowski, Mayo Kudo, Siu Kei Pepe Lo, Melanie Siegel and Frederik Fouvry (Acrolinx)

Applying CNL Authoring Support to Improve Machine Translation of Forum Data

Research Talks 4

(Session Chair: Stephen Pulman)

15:30-16:15 Stefan Höfler

Legislative Drafting Guidelines: How Different Are They From Controlled Language Rules for Technical Writing?

16:15-17:00 CANCELED

Palmira Marrafa, Raquel Amaro, Nuno Freire and Sara Mendes

Portuguese Controlled Language: Coping with Ambiguity

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

RCC-8 ?

acrolinx.com

Answer Set Programming via Controlled Natural Language Processing

Rolf Schwitter

wikipedia / Answer_set_programming

Clingo : ASP tool

stable model == no negation

question to Jos : relation of Euler engine with ASP ?

question to Rolf Schwitter : comparison between Peng (light) and ACE / APE

OWL Simplified English: a Finite-State Language for Ontology Editing

download : http://mcs.open.ac.uk/rp3242/editor/

SQUALL

http://www.irisa.fr/LIS/ferre/

SQUALL (Semantic Query and Update High-Level Language - l'Irisa

beta - reductions ?

anaphors : only variables

option == left join

Montague grammar ?

query based faceted search : Sewelis ?

syntax based auto-completion Ginseng ?

remarque : resource

2012-08-29

CNL 2012 1rst day

15:30-16:15Kaarel Kaljurand

General Architecture of a Controlled Natural Language Based Multilingual Semantic Wiki

16:15-17:00Normunds Grūzītis, Pēteris Paikens and Guntis Bārzdiņš

FrameNet Resource Grammar Library for GF

17:00-17:45Brian Davis, Ramona Enache, Jeroen Van Grondelle and Laurette Pretorius

Multilingual Verbalisation of Modular Ontologies using GF and Lemon

<CrazyThinker> What the heck is CNL, jmvanel

* _4rtE est parti (Ping timeout: 244 seconds)

<jmvanel> very fine , I learn lots of things

<jmvanel> like framenet

<jmvanel> ACE-in-GF

<jmvanel> lemon

<CrazyThinker> What is it?

<jmvanel> http://en.wikipedia.org/wiki/FrameNet

<jmvanel> https://github.com/Attempto/ACE-in-GF#readme

<jmvanel> Lemon is from www.monnet-project.eu

<jmvanel> also tomorrow : http://www.irisa.fr/LIS/softwares/squall

string_as_prolog( "table_d'hote" )

Revisiting make_ace_lexicon.py

cd ~/src/deductions/src/python/
python make_ace_lexicon.py
 ...
do_verb_synsets
do_adjective_synsets
do_adverb_synsets

massNouncount: 5218
countableNouncount: 56985
adjectiveCount: 16617
Word count already in CLex: 21451

2012-08-27

Erreur pendant Engine N3 run
java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/projetTest/table_ui_setting.n3, /tmp/columnsTableOntology.owl.as.rules.n3, --query]
Cause:
java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/projetTest/table_ui_setting.n3, /tmp/columnsTableOntology.owl.as.rules.n3, --query]

Demo at CNL 2012

Announce : Leveraging ATTEMPTO Controled English for flexible software development with EulerGUI

see Example with ACE => OWL => N3 rules translation

Presentation

Framework based on these extreme principles:

What are the options for semantic based software developement ?

EulerGUI is an open source turntable that imports many data formats, models and rules, and incorporates several inference engines, based on data formats of the Semantic Web. It is both a development environment, and a Java API to build applications around an inference engine. It leverages Drools rule engine for an easy integration with Java platform, while allowing for a strict separation of business logic and infrastructure code.

What is an forward chaining rule engine ?

explain RETE example via surface-price,

Why it is useless to generate classes?

Generate skeleton ATTEMPTO lexicon from an ontology

eg $HOME/ontologies/foaf.rdf $HOME/src/deductions/ape/owl2attempto_lexicon.n3

Demo scenario

Depending on the visitors' interests, the demonstrations will include at the minimum :

TODO

2012-08-26

<jmvanel> glad to know about http://www.taxonconcept.org/sparql-endpoint/

CNL 2012

2012-08-24

{ ?X ?P ?O . _d e:findall ( ?X { ?X a log:Chaff } () ) . } => { ?X ?P ?O } .

Mail to swig list : semantic web based software development

take seriously the semantic web ideas, W3C recommandations, which in particular means using RDF Schema or OWL to define the domain data model , and SPARQL engines to host business data.

What are the options:

Mail to ATTEMPTO developpers

2012-08-23

TODO : http://deductions.sourceforge.net/ontology/knowledge_base.owl

http://jena.apache.org/documentation/io/riot.html#status

http://hydrogen.informatik.tu-cottbus.de/wiki/index.php/Advanced_Jena_Rules

http://jena.apache.org/documentation/inference/index.html#rules

http://nlp.stanford.edu/software/lex-parser.shtml

http://www.larkc.eu/resources/

http://www.springer.com/computer/ai/book/978-1-4020-5044-2

https://a316de03-a-62cb3a1a-s-sites.googlegroups.com/site/narswang/publications/wang.thesis.pdf

COMMIT in deductions: add ape/owl2attempto_lexicon.n3 , simple rules to generate an Attempto lexicon in Prolog, to be edited by hand afterwards;

TESTED with FOAF ( http://xmlns.com/foaf/spec/20100101.rdf

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

Le sujet de ##AGI est : Artificial General Intelligence (Strong AI) http://agi-wiki.org | Stay on topic. Discuss non-general (weak) AI in #ai. | Links: http://bit.ly/AGI-book-pdf , http://bit.ly/AGI-group , http://agi-wiki.org/ChanLogs | Projects: #opencog #opencyc #genifer #nars

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

Ruset: do you have time to read something?

https://sites.google.com/site/narswang/publications/wang.thesis.pdf

is important,

| Exploring the Essence of Intelligence

Pei Wang's home page http://www.cis.temple.edu/~wangp/

https://www.google.fr/search?q=nars+semantic+web

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

COMMIT Révision 3219

In ProjectGUI: New feature: persistance in TDB of last opened project

during startup, when there is no command line argument, re-open the last open project

implemented in FileHistory

src/main/java/eulergui/gui/features/FileHistory.java

Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 36 in FileHistory))
FileHistory.persistProjectLoaded(Project) line: 36
PersistanceListener.projectLoaded(Project) line: 26
ProjectChangeSupport.fireProjectLoaded(Project) line: 116
Project.prepare() line: 1129
ProjectFactory.prepareProject(Project, boolean) line: 333
ProjectFactory.prepareProject(Project, URL, boolean) line: 326
ProjectGUI$3.run() line: 353
Thread.run() line: 722

2012-08-22

COMMIT Révision 3217 .

- FIX : class Persistance was in a wrong place

- FIX upgrade of Jena ARQ to 2.9.3, and jena-tdb to 0.9.3

( was necessary to remove Jena dependency in pellet-2.2.2.pom on EulerGUI Maven depot )

mvn versions:display-dependency-updates
 ...
[INFO] The following dependencies in Dependencies have newer versions:
[INFO]   com.thoughtworks.xstream:xstream ........................ 1.2 -> 1.4.3
[INFO]   commons-cli:commons-cli ....................... 1.2 -> 20040117.000000
[INFO]   commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist[INFO]   jline:jline ............................................... 1.0 -> 2.8
[INFO]   net.sourceforge.owlapi:owlapi-api ......................... 3.3 -> 3.4
[INFO]   net.sourceforge.owlapi:owlapi-apibinding .................. 3.3 -> 3.4
[INFO]   org.apache.jena:jena-tdb .............................. 0.9.2 -> 0.9.3

http://www.larkc.eu/

<jmvanel> it's on sf.net : 8 Downloads (This Week)

<jmvanel> https://sourceforge.net/projects/larkc/

<rszeno> that was in 2011

<rszeno> is in java, :)

<jmvanel> Release-3.0 2011-11-08

<jmvanel> I heard first about larkc at Protégé conf in Amsterdam

<rszeno> is in wrong category on sf

<rszeno> i guess, but i don't know

<jmvanel> That 's one of those public found projects whose persistence is doubtful ;

<jmvanel> is over now :

<jmvanel> Start: 01-April-08

<jmvanel> End: 30-Sep-11

<jmvanel> Duration 42 months

<jmvanel> Budget (total): approx. €10 Mill.

<jmvanel> EC contribution (total): approx. €7 Mill.

<jmvanel> Partners (total): 13 (from 11 countries)

2012-08-21

http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html

The NAME Property could be used to hold an URI

2012-08-20

Thinking about using TDB for EulerGUI persistance of application state.

TODO: cell renderers

Tests run: 194, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16:45.942s
[INFO] Finished at: Mon Aug 20 16:18:00 CEST 2012

COMMIT

2012-08-19

http://www.kegel.com/c10k.html

:cwm a eg:Inference_engine;
  rdfs:label "CWM";
  eg:absolute_path "/urs/bin/cwm" .

Projects in N3

TODO

Opening this 100% project in N3 http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/person-app.n3p.n3 : running Drools did not give generated forms. But running it from a local file works !!!!!

COMMIT

Test opening a project in N3 from the file menu

TODO

Test opening a project in N3 from an URL from the file menu

Tests run: 194, Failures: 0, Errors: 0, Skipped: 0

[INFO] BUILD SUCCESS [INFO] Total time: 18:02.141s

Works from command line, but shows 2 windows :

deductions/n3_nojs/person-app.n3p.n3

From the file menu, shows 1 window, but with all files from subproject :( , and running Drools did not give generated forms.

COMMIT

- WIP : subprojects, postprocessing, leveraging the internal KB with projects in N3

todo : MORE TESTS

Results : Tests in error:
testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class
javax.swing.JButton
Tests run: 193, Failures: 0, Errors: 1, Skipped: 0

2012-08-17

Projects in N3

COMMIT

- FIX : remove toLowerCase() on datatype ^^ constructs

- WIP : load correctly subprojects with projects in N3

COMMIT

- after last commit , there was a NPE because the Triple created not by the parser do not have a field with language and datatype

TODO: set the language and datatype by API

Failed tests: testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)

Tests in error: testTooltip(eulergui.gui.TestEulerGUITooltip)

Tests run: 192, Failures: 1, Errors: 1, Skipped: 0

COMMIT

- implemented missing accessors in ITriple, for N3 type and language

- new utility method TripleHelpers.getJavaTypedValue(ITriple)

- FIX : DatatypeHelper.findClassForProperty() : when classForPropertyMap gets nothing, return String.class by default .

<jmvanel> So I know what 's wrong with :

<jmvanel> x1 date "2012.08.11"^^xsd:date .

<jmvanel> xsd:date is interpreted as a language :(

<rszeno> @ vs. ^^ ?

<jmvanel> yes, that's probably a problem in the grammar

<jmvanel> and "2012.08.11"^^<http://www.w3.org/2001/XMLSchema#date>

<jmvanel> does not work any better :(

<jmvanel> so I'm bloked for testing the enhancements in the table :( .

Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 145 in AbstractParseNode))
owns: Object  (id=11525)
owns: N3Source  (id=11526)
ConcatParseNode(AbstractParseNode).setData(IParseNodeData) line: 145
MatchString.reduceAction(IParseSessionForMatchMgr, IParseNode, IParseNode[], int[]) line: 105
MatchMgrInvoker.reduceAction(int, IMatchMgr, IParseNode, IParseNode[], int[], IParseSessionForMatchMgr) line: 261
MatchMgrInvoker.computeData(IParseSessionForMatchMgr, IParseNode) line: 560
MatchMgrInvoker.endVisitImpl(IParseNode) line: 527
MatchMgrInvoker(AbstractParseNodeVisitor).endVisit(IParseNode) line: 57
ConcatParseNode(AbstractNonTerminalParseNode).accept(IParseNodeVisitor) line: 414
AlternativeParseNode(AbstractNonTerminalParseNode).accept(IParseNodeVisitor) line: 402
MatchMgrInvoker.checkDataComputed(IParseSessionForMatchMgr, IParseNode) line: 462
MatchMgrInvoker.computeParseNodeData(IParseSessionForMatchMgr, ParseStack) line: 449
ParseStackAction.reduce(ParseStack, boolean, int, EnumSource, EnumSource, int, int, IParseNode[], int[], boolean) line: 225
Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1033
Parser.checkForMatch(ParseStackAction, ParseStack) line: 926
Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044
Parser.checkForMatch(ParseStackAction, ParseStack) line: 926
Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044
Parser.checkForMatch(ParseStackAction, ParseStack) line: 926
Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044
Parser.checkForMatch(ParseStackAction, ParseStack) line: 926
Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044
Parser.checkForMatch(ParseStackAction, ParseStack) line: 926
Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044
Parser.checkForMatch(ParseStackAction, ParseStack) line: 926
Parser.shiftByToken(ParseStackAction) line: 814
Parser.parse(ParserFileReader, boolean, boolean, boolean, ParseSession) line: 397
N3Parser.parseN3(String, InputStream) line: 178
ParserLink.doParse(File, String) line: 155
ParserLink.parse(N3Source) line: 117
N3Source.doParseN3() line: 513
N3Source.manageParseN3() line: 446
N3Source.update() line: 401
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: 93
Project.addN3Source(N3Source, boolean) line: 328
Project.addN3Source(N3Source) line: 308
SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 288
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

It seems that this is badly parsed by EG parser :

@keywords a.
x1 date "2012.08.11"^xsd:date .

<jmvanel> ( it is interpreted as :

<jmvanel> _:date0 <http://www.w3.org/2001/XMLSchema#date> "2012.08.11".

<jmvanel> : completely wrong !!!

<rszeno> is ^^ not ^

<jmvanel> haaaaaaaaaaa

<rszeno> syntax error

<jmvanel> OK, I forgot !!!!!!!!!!!!!!!!!!

<rszeno> ^ is for path traversal

<jmvanel> so, severe bug for my memory ,

<jmvanel> and maybe minor bug for the parser

<jmvanel> implementing missing stuff in EG fw, for N3 type and language :)

<jmvanel> I begin to like this table component

<jmvanel> Now just fixing the datatype aspect, next the resources : better display , edit, hyperlink .

COMMIT Revision 3197

manage XSD types as Java wrapper classes (Boolean ...) in table view

implement getColumnClass() in N3TableModel

several fixes on the way

TESTED in N3TableModelTest

2012-08-16

Troubles with EulerGUI

2012-08-15

Testing EulerGUI 1.11

This does not work as expected in EulerGUI 1.11 , because projects are infrastructure_project by default. This is in fact fortunate, as it would spoil "exotic" N3 sources like OWL/XML . What is needed is to change the test, and add rules for "exotic" N3 sources in project-java-rules.n3 .

project = ProjectFactory.restore(uri.toString(), inactivateListeners);
if( ! project.isInfrastructure_project() ) {
  project = ApplicationKB.instance().insertProjectInKB(project);
}

This happens when .classpath has not been updated:

Exception in thread "main" java.lang.IncompatibleClassChangeError: Expected static method org.drools.base.FieldFactory.getFieldValue(Ljava/lang/Object;Lorg/drools/base/ValueType;Lorg/drools/type/DateFormats;)Lorg/drools/spi/FieldValue;
at org.drools.rule.builder.PatternBuilder.getFieldValue(PatternBuilder.java:1354)
at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:724)
at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:689)
at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:641)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:625)
at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:456)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:317)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:125)
at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2706)
at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:930)
at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:839)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:831)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:441)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:419)
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:409)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90)
at eulergui.project.Project.doTranslateN32Drools(Project.java:970)
at eulergui.project.Project.translateN32Drools(Project.java:921)
at eulergui.project.Project.prepareDrools(Project.java:894)
at eulergui.gui.controller.ApplicationKB.<init>(ApplicationKB.java:110)
at eulergui.gui.controller.ApplicationKB.instance(ApplicationKB.java:86)
at eulergui.gui.main.ProjectGUI.setProject(ProjectGUI.java:899)
at eulergui.gui.main.ProjectGUI.initFromProject(ProjectGUI.java:148)
at eulergui.gui.main.ProjectGUI.<init>(ProjectGUI.java:139)
at eulergui.gui.main.ProjectGUI.newWindow(ProjectGUI.java:270)
at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:228)

2012-08-14

http://www.irit.fr/~Patrick.Saint-Dizier/

Demo for CNL 2012

Leveraging ATTEMPTO Controled English for flexible software development with EulerGUI

We show open sources tools based on these extreme principles: 1) no business logic outside of ontologies and rules ; 2) no business data outside of Semantic Web documents and databases. This approach simplifies architecture compared to the common practices of generating source code of classes from ontologies, and using ORM (Object Relational Mapping). It can be called rule-based and semantic web based software development. And not having the business logic hard-coded simplifies maintenance and accelerates software updates.

Using forward chaining inference engine and various translators, it's as if the ACE sentences were interpreted in real time to bring consequences up-to-date.

EulerGUI is an open source turntable that imports many data formats, models and rules, and incorporates several inference engines, based on data formats of the Semantic Web. It is both a development environment, and a Java API to build applications around an inference engine. It leverages Drools rule engine for an easy integration with Java platform, while allowing for a strict separation of business logic and infrastructure code.

Depending on the visitors' interests, the demonstrations will include at the minimum :

-------

Rule-based and semantic web based software development

Generic Semantic Web aware widgets.

What widgets can be used?

table widget backed by current KB: N3TableModel and N3TableView;

forms generated from a resource or a class; see just below

in project: combobox for choosing or creating URI's and triples : TripleComboBoxes.java

also in project: various tree views

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

https://sourceforge.net/projects/csbi/?source=recommended ???

I don't understand how non N3 sources like OWL/XML are processed in EulerGUI 1.11, but it works !!!

Ideas for N3TableView: if the column is numeric, add a tool to show statistics ( sum, average, deviation ) ; sort

<rszeno> { :x w:child :y, :z . ((:y) (:z)) set:union :u . } => { :x w:childs :u . } .

<rszeno> work with cwm

<rszeno> data are triples :a w:child :b .

<jmvanel> and all symbols are farAll ?

<rszeno> append allow to add same objects multiple times

<jmvanel> forAll

<rszeno> yes

<rszeno> @forAll :x, :y, :z, :u .

<rszeno> no initial list

<rszeno> or set

<jmvanel> fine , but this would not work in Euler

2012-08-13

DISPLAY=:1 LANG=en mvn release:prepare -D=allowTimestampedSnapshots=true

[INFO] Running eulergui.project.TestProjectWithSubProjects[INFO] Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 9.331
sec <<< FAILURE!

<jmvanel> BUT ...

[INFO] [ERROR] Failed to execute goal on project eulergui: Could not resolve dependencies for project eulergui:eulergui:jar:1.11: Could not find artifact org.mvel:mvel2:jar:2.1.1-SNAPSHOT in repository.jboss.org (http://repository.jboss.org/nexus/content/groups/public) -> [Help 1]

<jmvanel> Hi a Drools 5.5 beta would be convenient for me;

<jmvanel> because Maven demands a non snapshot for a release, and I'm currently depending on Drools 5.5.0-SNAPSHOT

<rszeno> triples are illegal or impossible

<rszeno> we can't have a triple life and triple wife is illegal

<jmvanel> today, release 1.11 ; the test suite is OK .

2012-08-12

Fixing EulerGUI projects in N3

To achieve a consistent behavior between old (current) XML format and new N3 format, it's better to populate first the KB from the old format, and forget completely the objects Project and N3Source that were created when reading the old XML format (they are re-created from rules in project-java-rules.n3 ).

So, use, in case of reading the old XML format , the equivalent of recoverProjectObjectsFromKB() :

public Project insertProjectInKB(Project project2)

Tests run: 192, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 15:04.660s
[INFO] Finished at: Sun Aug 12 17:18:24 CEST 2012

<jmvanel> COMMIT:

<jmvanel> - FIX predicates proj:subproject and proj:postProcessing in new N3 format for projects

<jmvanel> TESTED with http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/person-app.n3p.n3

<jmvanel> -

<jmvanel> one important thing for EulerGUI 2.0 ; cf roadmap : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L9989

What happens when not doing mvn clean :

Failed tests:   testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs)
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI)
  testCreateProjectInGUI(eulergui.gui.TestFacebookSearch)
  testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch)
  testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)
  testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs)
  testXMLOutputFromN3(eulergui.gui.TestEulerGUIOutputs)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl)
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl)
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI)
  testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testTooltip(eulergui.gui.TestEulerGUITooltip)
  testSimpleProjectLocal(eulergui.gui.TestJavaEditor)
  testURLProjectOWL(eulergui.gui.TestJavaEditor)
  testSimpleURLProject(eulergui.gui.TestJavaEditor)
  testURLProject(eulergui.gui.TestJavaEditor)
  testAddNewN3Source(eulergui.gui.TestN3SourceInGUI)
  testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI)
  test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject)
  test_SaveExistingProjectAsN3(eulergui.gui.TestN3FormatForProject)
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject)
  test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject)

Tests run: 192, Failures: 1, Errors: 35, Skipped: 0

2012-08-11

Fixing EulerGUI

I realize that the internal KB together with project-java-rules.n3, can play the role of the methods rethrowEvents* .

But this opens a Pandora box:

About multithreading, currently there are 3 main operations:

  1. update the GUI at project loading , or when adding a N3 source (from command line or menu)
  2. the N3 source life sequence:

    download, translate, parse, load facts in user KB,

    compile generated Drools and load into user KB

Operation 1 is a short one, and can be done in AWT thread.

Operation 2 can last long , and is done in a dedicated thread.

After commenting out this in ProjectGUI.populateWindow() :

 app.rethrowEventsExceptGUIUpdater();

The total time went low again:

Results :

Failed tests:   testTooltip(eulergui.gui.TestEulerGUITooltip): "<HTML><http://exampleS#waza>:<BR></HTML>" does not match pattern: .*Comment for waza in the ex: namespace.*

Tests in error: 
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project")

Tests run: 192, Failures: 1, Errors: 5, Skipped: 0
[INFO] Total time: 15:46.044s
[INFO] Finished at: Sat Aug 11 14:19:06 CEST 2012

But doing so, the internal KB is not populated at all; I need also to populate it. Then calling fireAllRules() will start all processing, because of the listeners on Project.

2012-08-10

Fixing EulerGUI

Fixing test suite

COMMIT Revision 3185

- ProjectGUI : tentatively do not add project ProjectListener N3ConversionRefesher

- project-java-rules.n3 : postProcessing : read other project by restoreAny

TODO:

Failed tests:

Failed tests:
   testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
  testTooltip(eulergui.gui.TestEulerGUITooltip): "<HTML><http://exampleS#waza>:<BR></HTML>" does not match pattern: .*Comment for waza in the ex: namespace.*

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project")

Tests run: 192, Failures: 2, Errors: 4, Skipped: 0
[ERROR] There are test failures.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 31:20.118s

Conclusions :

Before commit Revision 3185

Failed tests:
   testimport(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
  testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)

Tests in error:   testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait AbstractButton with text "SEARCH" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project") ==> NOT REPRODUCED in eclipse !!!!!!
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)

Tests run: 192, Failures: 2, Errors: 12, Skipped: 0
[INFO] Total time: 20:56.945s
[INFO] Finished at: Fri Aug 10 11:15:01 CEST 2012

Fixing EulerGUI projects in N3

COMMIT

- FIX TestFacebookSearch

in project-java-rules.n3 the main query was treated like the searches

- use TemporaryFrame for notAllSavedWarning

NOTE:

When using projects in N3, the N3ConversionRefesher should be useless; but check that ApplicationKB.n3SourceChanged() is implemented .

Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 111 in N3DroolsEngineFacade))
owns: DefaultAgenda  (id=232)
N3DroolsEngineFacade.recordCompilationTimestamp(N3Source, boolean) line: 111
N3DroolsEngineFacade.translateQuery(N3Source) line: 214
Project.addN3Search(N3Source) line: 456
Project.setN3Query(N3Source) line: 394 ==> here facebookQ.n3 is argument
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
DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133
DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100
DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93
DeferredMethodCall.assign(Object, List<Assignment>) line: 73
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_8fddc2ccfca54a33a5f8e70dd6f671f0.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_8fddc2ccfca54a33a5f8e70dd6f671f0DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_8fddc2ccfca54a33a5f8e70dd6f671f0DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1277
DefaultAgenda.fireNextItem(AgendaFilter) line: 1212
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 369
ApplicationKB.fireAllRules() line: 213
ApplicationKB.n3SourceAdded(Project, N3Source) line: 248
ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 93 => facebook-rules.n3 
Project.rethrowEventsPlease(ProjectChangeSupport) line: 1415
ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 197
Project.rethrowEventsExceptListener(ProjectListener) line: 1546
ProjectGUI.rethrowEventsExceptGUIUpdater() line: 352
ProjectGUI.access$0(ProjectGUI) line: 350
ProjectGUI$3.run() line: 337
Thread.run() line: 722

2012-08-09

Idea for presenting N3 rules

Fix N3 project file : WIP

com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/D/6/C/D6C8D71833ABFF848C3980C7EB922DAC.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:927)
at eulergui.project.Project.prepareDrools(Project.java:894)
at eulergui.project.Project.doRunDrools(Project.java:849)
at eulergui.project.Project.runDroolsTriples(Project.java:800)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:32)
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)

COMMIT

Fix N3 project file : WIP

TODO

Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)

testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch)

Tests in error:

test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded

test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded

Tests in error: 
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1

2012-08-08

Language Oriented Programming

M. P. Ward

Computer Science Department

Science Labs, South Rd

Durham, DH1 3LE

October 1994

http://www.cse.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf

http://www.wishlisp.com/

Fix N3 project file : WIP

wget works though !!??

URICacheImpl.getURITimeStamp(): http://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/owl-SymmetricProperty.n3 : java.net.SocketTimeoutException: connect timed out

com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/B/4/9/B494F5B07D54AAE03F4D1A513F2CD523.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:927)
at eulergui.project.Project.prepareDrools(Project.java:894)
at eulergui.project.Project.doRunDrools(Project.java:849)
at eulergui.project.Project.runDroolsTriples(Project.java:800)

[ERROR] The svn command failed.
[ERROR] Command output:
[ERROR] svn: PROPFIND of '/svnroot/eulergui/!svn/bln/3182': could not connect to server (https://eulergui.svn.sourceforge.net)

% svn info
Révision de la dernière modification : 3181

Failed tests:   testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch)

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)

( on Debian )

svn-bisect reset
svn-bisect start 3175 3182 
svn-bisect run 'rm -r ~/.eulergui ; DISPLAY=:1  LANG=en mvn --offline -Dtest=TestFacebookSearch test'
 ...
Regression found!
Last good revision: r3180
First bad revision:
------------------------------------------------------------------------
r3181 | jmvanel | 2012-08-06 14:11:44 +0200 (lun. 06 août 2012) | 5 lignes

Fix N3 project file for subprojects : WIP
* 2 errors fixed
* testing with deductions/n3_nojs/person-app.n3p.n3
* subproject appears empty :(((

2012-08-07

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Component enabled: class javax.swing.JToolBar$1
  testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Component enabled: class javax.swing.JToolBar$1
  testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1
  testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1
  testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class javax.swing.JButton
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1
  testTooltip(eulergui.gui.TestEulerGUITooltip): Component enabled: class javax.swing.JButton
  testSimpleURLProject(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton
  testURLProject(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton
  testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject)

Tests run: 191, Failures: 0, Errors: 27, Skipped: 0

Fix N3 project file for subprojects

COMMIT

Fix N3 project file for subprojects : WIP

* now subproject looks correct in main GUI

TODO :

Results :

Failed tests:   testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)
  testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch)

Tests in error: 
  testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class javax.swing.JButton

Tests run: 191, Failures: 2, Errors: 4, Skipped: 0

Breakpoint at addN3Source() , since the subproject's N3 source are aded twice :

Thread [main] (Suspended (breakpoint at line 303 in Project))
owns: DefaultAgenda  (id=77)
Project.addN3Source(N3Source) line: 303
ProjectLegacy$1.put(String, N3Source) line: 127
ProjectLegacy$1.put(Object, Object) line: 1
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
Trampoline.invoke(Method, Object, Object[]) line: 55
GeneratedMethodAccessor11.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 601
MethodUtil.invoke(Method, Object, Object[]) line: 263
Expression(Statement).invokeInternal() line: 292
Statement.access$000(Statement) line: 58
Statement$2.run() line: 185
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Expression(Statement).invoke() line: 182
Expression.getValue() line: 153
VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166
VoidElementHandler(NewElementHandler).getValueObject() line: 123
VoidElementHandler(ElementHandler).endElement() line: 169
DocumentHandler.endElement(String, String, String) line: 305
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available
XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available
SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available
SAXParserImpl.parse(InputSource, DefaultHandler) line: not available
DocumentHandler.parse(InputSource) line: 356
XMLDecoder.parsingComplete() line: 192
XMLDecoder.readObject() line: 238
ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 194
ProjectFactory.restoreXMLFile(File, URL, boolean) line: 106
ProjectFactory.restoreXML(File, boolean) line: 89
ProjectFactory.restoreXMLURL(URL, boolean) line: 218
ProjectFactory.restore(String, boolean) line: 57
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 398
ProjectFactory.restoreAny(URI, boolean) line: 383ProjectFactory.restoreAny(String, boolean) line: 376
Rule_project_java_rules_n3_4_4e8e07a6e21d44e99d242664cf915414.defaultConsequence(KnowledgeHelper, Object, FactHandle, String, FactHandle) line: 12
Rule_project_java_rules_n3_4_4e8e07a6e21d44e99d242664cf915414DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_project_java_rules_n3_4_4e8e07a6e21d44e99d242664cf915414DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1277
DefaultAgenda.fireNextItem(AgendaFilter) line: 1212
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 369
ApplicationKB.fireAllRules() line: 213
ApplicationKB.loadN3Project(URI) line: 507
ProjectFactory.restoreN3ProjectInN3(URI) line: 288
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 393
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

later we have this stack with N3 source's URI not set :

Thread [main] (Suspended (breakpoint at line 777 in Vector))
owns: Vector<E>  (id=124)
owns: DefaultAgenda  (id=77)
Vector<E>.add(E) line: 777
Project.addN3Source(N3Source, boolean) line: 330
Project.addN3Source(N3Source) line: 303
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
DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133
DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100
DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93
DeferredMethodCall.assign(Object, List<Assignment>) line: 73
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_7b881fe3105d47d2b466f5042842874e.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_7b881fe3105d47d2b466f5042842874eDefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_7b881fe3105d47d2b466f5042842874eDefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1277
DefaultAgenda.fireNextItem(AgendaFilter) line: 1212
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 369
ApplicationKB.fireAllRules() line: 213
ApplicationKB.loadN3Project(URI) line: 507
ProjectFactory.restoreN3ProjectInN3(URI) line: 288
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 393
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

2012-08-06

Fix N3 project file for subprojects

ApplicationKB.loadN3Project()
Project.saveAsN3(project);

Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 66 in TripleStoreDrools))
TripleStoreDrools.store(Triple) line: 66
ApplicationKB.add_project_owl_imports(Project, String) line: 258
ApplicationKB.n3SourceAdded(Project, N3Source) line: 231
ApplicationKB.projectLoaded(Project) line: 311
ProjectChangeSupport.fireProjectLoaded(Project) line: 116
Project.rethrowEventsPlease(ProjectChangeSupport) line: 1407
ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 197
Project.rethrowEventsExceptListener(ProjectListener) line: 1541
ProjectGUI.rethrowEventsExceptGUIUpdater() line: 348
ProjectGUI.access$0(ProjectGUI) line: 346
ProjectGUI$3.run() line: 333
Thread.run() line: 722

Thread [main] (Suspended (breakpoint at line 31 in SubProjectsManagement))
SubProjectsManagement.addButton(Project) line: 31
SourceFilesManagement.addButtonToOpenImportedProjects() line: 136
SourceFilesManagement.addSourceActions(ProjectGUI) line: 122
ProjectGUI.addMenus() line: 505
ProjectGUI.getMenu() line: 399
ProjectGUI.layoutFrame() line: 422
ProjectGUI.initFromProject(Project) line: 149
ProjectGUI.<init>(Project) line: 138
ProjectGUI.newWindow(Project, boolean) line: 269
ProjectGUI.main(String[]) line: 227

Thread [main] (Suspended)
SubProjectsManagement.addButton(Project) line: 32
ProjectGUI_Updater.subprojectAdded(Project, Project) line: 76
ProjectChangeSupport.fireAddSubproject(Project, Project) line: 124
Project.rethrowEventsPlease(ProjectChangeSupport) line: 1437
ProjectChangeSupport.rethrowEventsForListener(Project, ProjectListener) line: 203
Project.rethrowEventsForListener(ProjectListener) line: 1546
ProjectGUI.rethrowEventsForGUIUpdater() line: 354
ProjectGUI.populateWindow(Project, boolean) line: 305
ProjectGUI.newWindow(Project, boolean) line: 286
ProjectGUI.main(String[]) line: 227

Project.addSubProject(): java.lang.NullPointerException
Exception in thread "rethrowEventsExceptListener(guiUpdater)" java.lang.RuntimeException: Project.addSubProject(): 
at eulergui.project.SubprojectHelper.projectLoaded(SubprojectHelper.java:63)
at eulergui.project.SubprojectHelper.projectLoaded(SubprojectHelper.java:25)
at eulergui.gui.controller.N3ConversionRefesher.projectLoaded(N3ConversionRefesher.java:190)
at eulergui.project.ProjectChangeSupport.fireProjectLoaded(ProjectChangeSupport.java:116)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1407)
at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:197)
at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1541)
at eulergui.gui.main.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:348)
at eulergui.gui.main.ProjectGUI.access$0(ProjectGUI.java:346)
at eulergui.gui.main.ProjectGUI$3.run(ProjectGUI.java:333)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at java.net.URI$Parser.parse(URI.java:3021)
at java.net.URI.<init>(URI.java:595)
at eulergui.util.URLHelper.isRelative(URLHelper.java:44)
at eulergui.project.SubprojectHelper.projectLoaded(SubprojectHelper.java:36)

After commit , and calling in a rule :

java:eulergui-project-ProjectFactory javam:restoreN3Project ( ?SUBPROJ_URI ) .

Thread [main] (Suspended (breakpoint at line 572 in N3Source))
owns: DefaultAgenda  (id=92)
N3Source.manageN3Cache(N3Source) line: 572
N3SourceFromXML_Gloze(N3Source).doUpdate() line: 415
N3SourceFromXML_Gloze.prepare(Project) line: 47
SourceFactory.addSource(URL, Project) line: 127
ApplicationKB.loadN3URL(String) line: 443
ApplicationKB.loadN3Project(URI) line: 488
ProjectFactory.restoreN3ProjectInN3(URI) line: 288
ProjectFactory.restoreN3Project(String) line: 278
Rule_project_java_rules_n3_4_d0cce40b7da74ca78653c6765f3c6993.defaultConsequence(KnowledgeHelper, Object, FactHandle, String, FactHandle) line: 30
Rule_project_java_rules_n3_4_d0cce40b7da74ca78653c6765f3c6993DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_project_java_rules_n3_4_d0cce40b7da74ca78653c6765f3c6993DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1277
DefaultAgenda.fireNextItem(AgendaFilter) line: 1212
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 369
ApplicationKB.fireAllRules() line: 212
ApplicationKB.loadN3Project(URI) line: 499
ProjectFactory.restoreN3ProjectInN3(URI) line: 288
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 385
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

2012-08-05

Denise Lasalle explique l'analogie entre une femme et un timbre : http://www.youtube.com/watch?v=1LLWVqUZvT0&feature=related

COMMIT

- when starting a project from command line, the GUI is shown earlier

moving calls in ProjectGUI.populateWindow()

should have been done long ago !

test suite PASSES in 15:35

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

http://sciencesoft.at/

Do we need ProjectLegacy.injectSubproject() ?

Thread [main] (Suspended (breakpoint at line 232 in Project))
Project.addSubProject(Project) line: 232
ProjectLegacy.injectSubproject(String) line: 191
ProjectLegacy.setSubProjects(HashSet<String>) line: 196
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
Trampoline.invoke(Method, Object, Object[]) line: 55
GeneratedMethodAccessor2.invoke(Object, Object[]) line: not available
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 601
MethodUtil.invoke(Method, Object, Object[]) line: 263
Expression(Statement).invokeInternal() line: 292
Statement.access$000(Statement) line: 58
Statement$2.run() line: 185
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Expression(Statement).invoke() line: 182
Expression.getValue() line: 153
VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166
VoidElementHandler(NewElementHandler).getValueObject() line: 123
VoidElementHandler(ElementHandler).endElement() line: 169
DocumentHandler.endElement(String, String, String) line: 305
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available
XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available
SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available
SAXParserImpl.parse(InputSource, DefaultHandler) line: not available
DocumentHandler.parse(InputSource) line: 356
XMLDecoder.parsingComplete() line: 192
XMLDecoder.readObject() line: 238
ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191
ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103
ProjectFactory.restoreXMLURL(URL, boolean) line: 229
ProjectFactory.restore(String, boolean) line: 54
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

2012-08-04

This works in 5.5.0-20120730.184411-293 , and fails in next snapshot ( 5.5.0-20120801.182511-297 ) :

when eval( "foo" != "bar" )

EulerGUI is frozen when loading a project with a non-responding URL

http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/foaf_import.n3p

or

/home/jmv/src/deductions/n3_nojs/foaf_import2.n3p

java.lang.NullPointerException
at java.io.FileInputStream.<init>(FileInputStream.java:134)
at eulergui.tools.SWRLTranslator.runTranslatorProject(SWRLTranslator.java:107)
at eulergui.tools.SWRLTranslator.n3SourceAdded(SWRLTranslator.java:53)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:86)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1411)
at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:190)
at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1542)
at eulergui.gui.main.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:353)
at eulergui.gui.main.ProjectGUI.access$0(ProjectGUI.java:351)
at eulergui.gui.main.ProjectGUI$3.run(ProjectGUI.java:342)
at java.lang.Thread.run(Thread.java:722)

Thread [main] (Suspended)
owns: BufferedInputStream  (id=52)
owns: HttpURLConnection  (id=53)
owns: N3SourceFromRDF  (id=54)
SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method]
SocketInputStream.read(byte[], int, int, int) line: 150
SocketInputStream.read(byte[], int, int) line: 121
BufferedInputStream.fill() line: 235
BufferedInputStream.read1(byte[], int, int) line: 275
BufferedInputStream.read(byte[], int, int) line: 334
HttpClient.parseHTTPHeader(MessageHeader, ProgressSource, HttpURLConnection) line: 641
HttpClient.parseHTTP(MessageHeader, ProgressSource, HttpURLConnection) line: 589
HttpURLConnection.getInputStream() line: 1319
HttpURLConnection(URLConnection).getContent() line: 748
RDFToN3Converter.getN3FromRDFSynchronously(String, File) line: 52
RDFToN3Converter.downloadRDFAndMakeN3(String, File) line: 32
N3SourceFromRDF.convertToN3() line: 79
N3Source.manageN3Cache(N3Source) line: 609
N3SourceFromRDF(N3Source).doUpdate() line: 415
N3SourceFromRDF.prepare(Project) line: 72
N3SourceFromRDF(N3Source).placeInProject(Project) line: 341
Project.addN3Source(N3Source, boolean) line: 310
Project.addN3Source(N3Source) line: 304
ProjectLegacy$1.put(String, N3Source) line: 127
ProjectLegacy$1.put(Object, Object) line: 1
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
Trampoline.invoke(Method, Object, Object[]) line: 55
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
MethodUtil.invoke(Method, Object, Object[]) line: 263
Expression(Statement).invokeInternal() line: 292
Statement.access$000(Statement) line: 58
Statement$2.run() line: 185
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Expression(Statement).invoke() line: 182
Expression.getValue() line: 153
VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166
VoidElementHandler(NewElementHandler).getValueObject() line: 123
VoidElementHandler(ElementHandler).endElement() line: 169
DocumentHandler.endElement(String, String, String) line: 305
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available
XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available
SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available
SAXParserImpl.parse(InputSource, DefaultHandler) line: not available
DocumentHandler.parse(InputSource) line: 356
XMLDecoder.parsingComplete() line: 192
XMLDecoder.readObject() line: 238
ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191
ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103
ProjectFactory.restoreXML(File, boolean) line: 86
ProjectFactory.restoreXMLURL(URL, boolean) line: 215
ProjectFactory.restore(String, boolean) line: 64
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

<jmvanel> this URL is dead currently : http://xmlns.com/foaf/spec/index.rdf

<jmvanel> and it spoils the EG test suite

<jmvanel> but that's a good test

RDFToN3Converter.getN3FromRDFSynchronously(): Error when downloading RDF from the URI: http://xmlns.com/foaf/spec/index.rdf : java.net.SocketTimeoutException: connect timed out
N3Source.manageN3Cache(): http://xmlns.com/foaf/spec/index.rdf : java.lang.RuntimeException: Error when downloading RDF from the URI: http://xmlns.com/foaf/spec/index.rdf : java.net.SocketTimeoutException: connect timed out
[ERROR] - 2012-08-04 17:39:07,513 [main] eulergui.gui.TemporaryFrame (TemporaryFrame.java:<init>:48) 
 TemporaryFrame.TemporaryFrame(): PROBLEM when managing N3 Cache for N3 source http://xmlns.com/foaf/spec/index.rdf
Error when downloading RDF from the URI: http://xmlns.com/foaf/spec/index.rdf : java.net.SocketTimeoutException: connect timed out
Cause:
java.net.SocketTimeoutException: connect timed out , caused by connect timed out WARNING

2012-08-01

quénne ?

COMMIT in deductions.sf.net

r459 | jmvanel | 2012-08-01 11:10:29 +0200 (mer. 01 août 2012) | 3 lignes

FIX error in fn: prefix ==> now in generated forms (swing-rules3.n3p)

the GUI labels are correct from the URI when no rdfs:label is specified

2012-07-31

Failed tests:   testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700
Tests run: 189, Failures: 1, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 16:56.271s

TODO EulerGUI

URICacheImpl.getURITimeStamp(): http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/app_gui-rules2.n3 : java.net.SocketException: Trop de fichiers ouverts

URICacheImpl.getURITimeStamp(): http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/app_gui-rules2.n3 : java.net.UnknownHostException: deductions.svn.sourceforge.net

SWRLListener is added twice !!!!!!!!

eulergui.gui.main.ProjectGUI at localhost:49775
Thread [main] (Suspended)
owns: ProjectChangeSupport  (id=116)
ProjectChangeSupport.addProjectListener(ProjectListener) line: 45
Project.addProjectListener(ProjectListener) line: 1334
Project.prepare() line: 1219
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
ProjectGUI.populateWindow(Project, boolean) line: 305
ProjectGUI.newWindow(Project, boolean) line: 286
ProjectGUI.main(String[]) line: 227
Thread [AWT-Shutdown] (Running)
Thread [AWT-EventQueue-0] (Running)

this lasts long :

projectChangeSupport.fireProjectLoaded(this);

When there has been a network problem, the cache is bad, and even if the download occurs in another session, the rules do not fire correctly .

but if the cable is unplugged *after* all downloads, in another session the project will run fine :)

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

The translator is null !!!!!!!!

Thread [main] (Suspended)
Project.setTranslator(N3DroolsEngineFacade) line: 1081
Project.absorbSubproject(Project) line: 263
Project.addSubProject(Project) line: 236
ProjectLegacy.injectSubproject(String) line: 191
ProjectLegacy.setSubProjects(HashSet<String>) line: 196
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
Trampoline.invoke(Method, Object, Object[]) line: 55
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
MethodUtil.invoke(Method, Object, Object[]) line: 263
Expression(Statement).invokeInternal() line: 292
Statement.access$000(Statement) line: 58
Statement$2.run() line: 185
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Expression(Statement).invoke() line: 182
Expression.getValue() line: 153
VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166
VoidElementHandler(NewElementHandler).getValueObject() line: 123
VoidElementHandler(ElementHandler).endElement() line: 169
DocumentHandler.endElement(String, String, String) line: 305
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available
XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available
SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available
SAXParserImpl.parse(InputSource, DefaultHandler) line: not available
DocumentHandler.parse(InputSource) line: 356
XMLDecoder.parsingComplete() line: 192
XMLDecoder.readObject() line: 238
ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191
ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103
ProjectFactory.restoreXML(File, boolean) line: 86
ProjectFactory.restoreXMLURL(URL, boolean) line: 215
ProjectFactory.restore(String, boolean) line: 64
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

Thread [main] (Suspended)
ProjectFactory.restoreXMLURL(URL, boolean) line: 229
ProjectFactory.restore(String, boolean) line: 54
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374
ProjectFactory.restoreAny(URI, boolean) line: 359
ProjectLegacy.injectSubproject(String) line: 182
ProjectLegacy.setSubProjects(HashSet<String>) line: 196
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
Trampoline.invoke(Method, Object, Object[]) line: 55
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
MethodUtil.invoke(Method, Object, Object[]) line: 263
Expression(Statement).invokeInternal() line: 292
Statement.access$000(Statement) line: 58
Statement$2.run() line: 185
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Expression(Statement).invoke() line: 182
Expression.getValue() line: 153
VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166
VoidElementHandler(NewElementHandler).getValueObject() line: 123
VoidElementHandler(ElementHandler).endElement() line: 169
DocumentHandler.endElement(String, String, String) line: 305
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available
XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available
XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available
XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available
SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available
SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available
SAXParserImpl.parse(InputSource, DefaultHandler) line: not available
DocumentHandler.parse(InputSource) line: 356
XMLDecoder.parsingComplete() line: 192
XMLDecoder.readObject() line: 238
ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191
ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103
ProjectFactory.restoreXML(File, boolean) line: 86
ProjectFactory.restoreXMLURL(URL, boolean) line: 215
ProjectFactory.restore(String, boolean) line: 64
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209

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

http://dev.w3.org/cvsweb/

https://hudson.jboss.org/hudson/job/drools/

<rszeno> http://www.cse.dmu.ac.uk/~mward/

<rszeno> http://www.cse.dmu.ac.uk/~mward/martin/software/index.html see first link fermaT

<rszeno> to jump to this page, :) http://www.cse.dmu.ac.uk/~mward/fermat.html

<rszeno> you didn't try it, isn't it? :)

<jmvanel> no

<rszeno> https://sourceforge.net/projects/eulergui/files/eulergui/1.11/ is from 2012/04/

<rszeno> and 2012/07/11 newest

<rszeno> http://www.cse.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf

<rszeno> paper is from '94

<rszeno> he advocate for dsl and design from middle-out

<rszeno> and is not the only one

JSON - N3 translation : software menu example

Permettrait elle de décrire des sous-menus ?

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix gui: <http://eulergui.sf.net/ontolgies/gui.n3#> .

:menu a gui:Menu ;
      rdfs:label "Fichier" ;
      gui:commands
        [ rdfs:label "Nouveau"@fr ;
          gui:action "create" ],
 
        [ rdfs:label "Ouvrir"@fr ;
          gui:action "open" ],

        [ rdfs:label "Quitter"@fr ;
          gui:action "exit" ]
     ;
     gui:subMenu [
      rdfs:label "URL" ;
      gui:commands
        [ rdfs:label "Télécharger"@fr, "download"@en ;
          gui:action "download" ]
     ]
 .

2012-07-30

COMMIT

FIX Regression : button for secondary form in generated form did not work

cause : GUIKBAdaptater was not coherent with the WorkingMemory

test added in test_person_import3

Drools NoSuchMethodError

java.lang.NoSuchMethodError: org.drools.rule.constraint.MvelConstraint.<init>(Ljava/lang/String;Ljava/lang/String;Lorg/drools/base/mvel/MVELCompilationUnit;ZLorg/drools/spi/FieldValue;Lorg/drools/spi/InternalReadAccessor;)V
at org.drools.rule.builder.MVELConstraintBuilder.buildLiteralConstraint(MVELConstraintBuilder.java:143)
at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:769)
at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:738)
at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:720)
at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:672)
at org.drools.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:656)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:627)
at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:480)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:302)
at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:123)
at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67)
at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84)
at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2731)
at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:931)
at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:840)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:832)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:442)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:420)
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:409)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90)
at eulergui.project.Project.doTranslateN32Drools(Project.java:966)
at eulergui.project.Project.translateN32Drools(Project.java:917)
at eulergui.project.Project.prepareDrools(Project.java:890)
at eulergui.project.Project.doRunDrools(Project.java:845)
at eulergui.project.Project.doRunDrools(Project.java:863)
at eulergui.project.Project.runDrools(Project.java:779)
at eulergui.project.TestProject.testReasonDrools(TestProject.java:137)
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)

<conan> jmvanel so my guess is, it's your local build.

<jmvanel> conan, OK

<jmvanel> I'll try a

rm -r ~/.m2/repository/org/drools/*/5.5.0-SNAPSHOT/

<conan> maybe nuke mvel too

<conan> jmvanel it can happen if a downloaded jar gets corrupted

<jmvanel> yes, but in theory the sha1's should allow a check by Maven both at upload and donwload

<jmvanel> anyway, I didn't "nuke" mvel , and my application's test run fine again so far , thanks for checking on your side

<jmvanel> still, drools-compiler from git is KO : Tests run: 1662, Failures: 129, Errors: 1199, Skipped: 40

JSON - N3 translation : software menu example

{
   "menu": "Fichier",
   "commandes": 
   [
    {
     "title": "Nouveau",
     "action":"create"
    },  
    { 
     "title": "Ouvrir",
     "action": "open"
    },
    { 
     "title": "Quitter",
     "action": "exit"
    }
   ]
} 

An N3 equivalent :

:menu a gui:Menu ;
      rdfs:label "Fichier" ;
      gui:commands
        [ rdfs:label "Nouveau"@fr ;
          gui:action "create" ],
 
        [ rdfs:label "Ouvrir"@fr ;
          gui:action "open" ],

        [ rdfs:label "Quitter"@fr ;
          gui:action "exit" ]
 .

Notes:

Regression : button for secondary form does not work

Not new :(

Now I have a test

svn-bisect reset
svn-bisect start 3100 3164
svn-bisect run 'cp  /home/jmv/src/eulergui/pom.xml . ; DISPLAY=:1 LANG=en mvn --offline -Dtest=CopyOfTestGenericGuiGenerationInsertLogical test'
 ...
Regression found!
Last good revision: r3135
First bad revision:
------------------------------------------------------------------------
r3136 | jmvanel | 2012-07-08 21:57:25 +0200 (dim. 08 juil. 2012) | 4 lignes

- FIX TestRulesForUserEvents
- N3SourcetoDrools: add initTripleStore() to lazily create TripleStore
TEST SUITE passes !

Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended (breakpoint at line 622 in N3SourcetoDrools))
N3SourcetoDrools.newStatefulSession(RuleBase) line: 622
N3SourcetoDrools.launchDrools() line: 597
N3DroolsEngineFacade.launchDrools() line: 64
Project.doRunDrools(boolean) line: 850
Project.runDroolsTriples(boolean) line: 796
DroolsInferenceEngine.launch() line: 31
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

Thread [main] (Suspended (breakpoint at line 622 in N3SourcetoDrools))
N3SourcetoDrools.newStatefulSession(RuleBase) line: 622
N3SourcetoDrools.<init>() line: 161
N3DroolsEngineFacade.<init>() line: 43
Project.initializeDrools() line: 1032
Project.getTranslator() line: 1087
Project.prepare() line: 1223
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
ProjectGUI.populateWindow(Project, boolean) line: 304
ProjectGUI.newWindow(Project, boolean) line: 285
ProjectGUI.main(String[]) line: 227
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
ClassReference.invokeMethod(String, Object[], Class[]) line: 137
ClassReference.startApplication(String[]) line: 101
CopyOfTestGenericGuiGenerationInsertLogical(TestJemmy).launchEulerGUI(String) line: 243
CopyOfTestGenericGuiGenerationInsertLogical(TestJemmy).generateAndLaunch(String) line: 270
CopyOfTestGenericGuiGenerationInsertLogical.test_person_import3() line: 39
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
CopyOfTestGenericGuiGenerationInsertLogical(TestCase).runTest() line: 168
CopyOfTestGenericGuiGenerationInsertLogical(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
CopyOfTestGenericGuiGenerationInsertLogical(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
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

Diagnostic:

This method in TripleStoreDrools does not remove old Assignment :

public void assign(String name, Object  object) {
workingMemory.insert( new Assignment(name, object) );
workingMemory.insert( object );
}

It should, because the RuleBase has AssertBehaviour.EQUALITY , and because of these methods in Assignment :

@Override
public int hashCode() {
  return name.hashCode();
}

@Override
public boolean equals(Object obj) {
  if (obj instanceof Assignment) {
    final Assignment assign = (Assignment) obj;
    return name.equals(assign.name);
  }
  return false;
}

But I found this message in mail list :

Subject: Re: Updating an existing fact w/o using fact

handle - msg#00308

List: java.drools.user

2008/5/30 Fenderbosch, Eric <Eric.Fenderbosch@xxxxxxxxx>:

Is it required to use WorkingMemory.update to update an existing fact?

I thought if assert behavior was set to equality and you implemented the

equals method properly, then you could simply use WorkingMemory.insert

to overwrite a fact in working memory with a new version. If this isn't

the case, then are there other settings that will give this behavior?

I'm using 4.0.7.

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

Nope. You must use the update method. You can get the previous fact handle using the get method in working memory if you still have the original non-modified object, or if behavior is equals based, using an equals object.

Edson

2012-07-29

http://missioncriticalit.com/index.html

http://www-sop.inria.fr/members/Fabien.Gandon/wakka.php?wiki=FabienGandon

http://answers.semanticweb.com/users/114/rob-vesse/

http://www.dotnetrdf.org/

http://en.wikipedia.org/wiki/Progressive_enhancement

http://www.w3.org/2001/11/IsaViz/

http://fr.wikipedia.org/wiki/Z%C3%A9lotes

http://www.csee.umbc.edu/csee/research/kqml/kqml-applications.html

EulerGUI

Refactor : move packages: TODO

Regressions

This runs fine !!!!!!

cd ~/src/eulergui_test/eulergui/
svn update -r 3143
cp ~/src/eulergui/pom.xml .
LANG=en mvn clean 
LANG=en mvn --offline -Dtest=BasicRuntimeTest test

I don't understand why

test/true_antecedent_java.n3

fails in BasicRuntimeTest, and succeeds in EG GUI (in snv HEAD).

Regression found!
Last good revision: r3159
First bad revision:
------------------------------------------------------------------------
r3160 | jmvanel | 2012-07-27 14:44:07 +0200 (ven. 27 juil. 2012) | 16 lignes

- now using RuleBasedApplicationStarter in GUI for launching Drools, which coherent with FW API
- had to fix N3SourceToDrools.getN3StringResult()

It seems that prior inserting of anything in the WorkingMemory prevents a very simple rule to fire , like :

when eval(true) then System.out.println("fired!"); end

<jmvanel> I already had errors when inserting first and adding rules after.

The stack when inserting anything in the WorkingMemory :

Thread [main] (Suspended (breakpoint at line 187 in TripleStoreDrools))
TripleStoreDrools.setWorkingMemory(WorkingMemory) line: 187
N3SourcetoDrools.initTripleStore() line: 662
N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1054
N3SourcetoDrools.<init>() line: 161
N3DroolsEngineFacade.<init>() line: 43
Project.initializeDrools() line: 1032
Project.getTranslator() line: 1087
BasicRuntime.initialize(Project) line: 120
BasicRuntime.initialize(String[]) line: 109
BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 520
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
BasicRuntimeTest(TestCase).runTest() line: 168
BasicRuntimeTest(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
BasicRuntimeTest(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
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

Trying to build Isaviz

mkdir --parents src/org/w3c/IsaViz/
cd src/org/w3c/IsaViz/
ln -s ../../../../*.java ../../../../fresnel .
cd  ../../../../
ant isvbuild
 ...
    [javac] /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/src/org/w3c/IsaViz/BaseURIPanel.java:23: error: package com.xerox.VTM.engine does not exist
    [javac] import com.xerox.VTM.engine.SwingWorker;
    [javac]                            ^
 ...
    [javac] /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/src/org/w3c/IsaViz/Editor.java:51: error: package net.claribole.zvtm.engine does not exist
    [javac] import net.claribole.zvtm.engine.AnimationListener;
    [javac]                                 ^
 ...
    [javac] /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/src/org/w3c/IsaViz/GSSManager.java:30: error: package com.hp.hpl.jena.rdf.model does not exist
    [javac] import com.hp.hpl.jena.rdf.model.Property;

ant -debug isvbuild
 ...
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/zvtm.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/xercesImpl.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/xml-apis.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/antlr-2.7.5.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/jena/jena.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/jena/junit.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/openrdf-model.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/openrdf-util.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/sesame.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/rio.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/plugins/arq.jar from path as it doesn't exist

Indeed ! lib/ is empty !

IsaViz should be built with Maven !!!!!!

Here is the relevant part of README !

7) Get Jena 2 (current version is 'preview 2') from HP's web site [1] or from their sourceforge CVS repository [2]

Important: IsaViz 2.0 will NOT work with Jena 2 preview 1

8) Put the following JAR files from the Jena 2 distribution in directory IsaViz/lib/

antlr.debug.jar

icu4j.jar

jakarta-oro-2.0.5.jar

jena.jar

junit.jar

log4j-1.2.7.jar

rdf-api-2001-01-19.jar

xercesImpl.jar

xmlParserAPIs.jar

9) Get ZVTM 0.8.2 or later from the ZVTM sourceforge site [3] - actually, the latest CVS version of ZVTM might be necessary (available on the sourceforge site)

10) Put the following JAR file from the ZVTM distribution in direftory IsaViz/lib/

zvtm.jar

[1] http://www.hpl.hp.com/semweb/jena2.htm

[2] http://sourceforge.net/projects/jena/

[3] http://zvtm.sourceforge.net/

I wonder if it would not be easier to migrate to Maven instead of solving these little problems !!!!

Anyway, if I would use IsaViz/Fresnel for EulerGUI, that would be necessary.

The easiest for building quickly is to make an eclipse project, and depend on eulergui project, which has most of the depedencies already.

<jmvanel> These INRIA projects are not easily built

<jmvanel> Even though Open Source, there is no community :( .

<jmvanel> was also the case for Corese .

<jmvanel> well, I had quick answers by Olivier Corby of Corese ...

<jmvanel> btw , I still have one question to olivier; build of Corese not finished

2012-07-28

TODO EulerGUI Regressions, doc.

Material for adding in doc

I should extract the development chapter .

<jmvanel> I should have a clear delimitation between the fw and GUI parts

<jmvanel> lcpvrr, rszeno instead of running the example from Java , you can run it from EG:

eg examples/table_app.n3p

<jmvanel> rszeno, I from what you say I infer that your insatisfaction with this example is that

1) it uses N3 syntax to instantiate and call methods on Java objects

<rszeno> no

<rszeno> is obvious to use it

<jmvanel> 2) in EG you don't have the easy access to the documentation of these Java things, for instance by tooltips

<rszeno> no, too

<rszeno> i don't expect this

<jmvanel> 3) we are at a conceptual level too low

What Java objects are inserted in Drools/N3 engine :

  1. objects of class Triple
  2. any Java object necessary for inference, like eg:N3TableModel above
  3. Assignment objects , a simple class with 2 props: name and object
  4. DeferredMethodCall objects , allowing to create methods calls in N3 *before* the Java objects are ready

( you know that anything can be inserted in a Drools KB ).

Java stuff should be wrapped in a vocab' saying :

<jmvanel> 1. we want to create a table widget backed by current KB

<jmvanel> 2. display this Table in a new Frame

<jmvanel> 3. in the right hand side of the rule : say : eg:N3TableModel gui:addRomFromSubjectURI ?URI

<jmvanel> so this little vocab' could be documented in the standard semweb way

<jmvanel> and the curious Java guy can look under the hood for Java implementation.

what widgets can be used?

<rszeno> so the only thing i need is to include the triples for binding to java?

How i can build combined things?

Regressions

2012-07-27

COMMIT

add test to ensure that "Open N3 result.*" buttons are there.

COMMIT

- now using RuleBasedApplicationStarter in GUI for launching Drools, which coherent with FW API

- had to fix N3SourceToDrools.getN3StringResult()

TODO : FIX test suite : running a project with post-processing from the GUI does not work anymore:

Tests in error: 
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
  test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  testJavaMappingConsequentNewVariable(deductions.runtime.BasicRuntimeTest): Any javax.swing.JFrame

2012-07-26

Tests on Windows: Failures: 2, Errors: 4

Results :

Failed tests:   testPath(eulergui.project.TestN3Source): expected:<file:/[C]:/temp/truc.n3> but was:<file:/[D]:/temp/truc.n3>
testRelativePathWithParentDirectory(eulergui.project.TestN3Source): expected:<[../test/tmp.n3]> but was:<[??]>

Tests in error:
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)

Tests run: 188, Failures: 2, Errors: 4, Skipped: 0

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

workingMemory : 225 : appKB -- GUIKBAdapter 279

workingMemory : 1566 : proj

N3SourcetoDrools factsTriples.size() (int) 202 id=1565

store id=1662

workingMemory : 1618

Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended)
owns: ReteooStatefulSession  (id=1566)
GUIKBAdapter.setStorage(ITripleStoreRETE) line: 212
N3SourcetoDrools.addInfrastructureObjectsInWM() line: 653
N3SourcetoDrools.copyN3factsToDrools() line: 676
N3DroolsEngineFacade.copyN3factsToDrools() line: 192
Project.prepareDrools(boolean) line: 891
Project.doRunDrools(boolean) line: 845
Project.runDroolsTriples(boolean) line: 796
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

2012-07-25

Regression : button for secondary form does not work

Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended)
owns: ReteooStatefulSession  (id=1471)
N3SourcetoDrools.addInfrastructureObjectsInWM() line: 650
N3SourcetoDrools.copyN3factsToDrools() line: 675
N3SourcetoDrools.launchDrools() line: 608
N3DroolsEngineFacade.launchDrools() line: 64
Project.doRunDrools(boolean) line: 850
Project.runDroolsTriples(boolean) line: 796
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

Search regression by dichotomy:

% svn update -r 3140 ; cp ~/src/eulergui/pom.xml . ; mvn --offline compile \
  exec:java  -Dexec.args="$HOME/src/deductions/n3_nojs/person-app.n3p"

3135 OK

3136 KO

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

Regression : revision 3152 : removes the result buttons

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

Instead of this :

{ ?X :p :v.
  ?Z e:optional { ?X rdfs:label ?L . ?PL log:equalTo ?L . } ,
  { _:d e:findall ( ?L { ?X rdfs:label ?L } () ).
     ?PL log:equalTo "default label" } .
} => {
  ?X :hasLabelOrNot3 ?PL .
}.

we could write it this way :

{ ?X :p :v.
  ?Z e:disjunction (
    { ?X rdfs:label ?L . ?PL log:equalTo ?L . }
    { _:d e:findall ( ?L { ?X rdfs:label ?L } () ).
       ?PL log:equalTo "default label" }
  )
} => {
  ?X :hasLabelOrNot3 ?PL .
}.

but e:disjunction does not bring much clarity, and in fact it's simpler in 2 rules; no need of an extra ?PL variable :

{ ?X :p :v.
  ?X rdfs:label ?L 
} => {
  ?X :hasLabelOrNot5 ?L .
}.

{ ?X :p :v.
  _:d e:findall ( ?L { ?X rdfs:label ?L } () ).
} => {
  ?X :hasLabelOrNot5 "default label" .
}.

But then no need of an extra predicate , and back to a single rule :

{ ?X :needs rdfs:label .
  _:d e:findall ( ?L { ?X rdfs:label ?L } () ).
} => {
  ?X rdfs:label "default label" .
}.

The reading of this is :

All ?X that are marked as needing an rdfs:label, and which don't have already one, should have the value "default label" for property rdfs:label .

2012-07-23

Trying e:optional in Euler

I tried this Euler builtin :

e:optional a rdf:Property, e:Builtin;
rdfs:comment "builtin to call the object formula and to succeed anyway; is within the subject scope of all asserted N3 formulae and their log:conclusion";
rdfs:domain rdf:List;
rdfs:range log:Formula.

I was hoping that it behaves like OPTIONAL keyword in SPARQL

but ...

this rule fires:

@prefix : <http:/example.com#> .
:x rdfs:label "has label" ;
:p :v.
:y :p :v. # no label

{ ?X :p :v.
  ?Z e:optional { ?X rdfs:label ?L } .
} => {
  # ?X :hasLabelOrNot ?L .
  ?X :matches :indeed .
}.

but if I uncomment the line in consequent it does not fire .

In euler.yap , e:optional is implemented with call/1 ;

if I try to replace call/1 with ignore/1 it's the same

2012-07-21

/tmp/eye/linux/bin/yap -q -f /home/jmv/src/eulersharp/euler.yap -g main -- test/optional.n3 --pass --nope

COMMIT

Drools/N3 engine :

- e:trace

- WIP: implementing e:optional : update ParseLink ( Visitor design pattern )

TODO

2012-07-20

implementing e:optional in Drools/N3 engine

http://eulersharp.svn.sourceforge.net/viewvc/eulersharp/trunk/2003/03swap/log-rules.n3

e:optional a rdf:Property, e:Builtin;
rdfs:comment "builtin to call the object formula and to succeed anyway; is within the subject scope of all asserted N3 formulae and their log:conclusion";
rdfs:domain rdf:List;
rdfs:range log:Formula.

Usage example:

?Z e:optional {?X math:notGreaterThan ?Y. ?S log:equalTo (?X ?Y)} .
_:d e:optional {?X :p ?Y }.

What we want to generate in Drools:

( true or $Triple_NN ( subject == $X, predicate == "<http://foo.com/p>", object == $Y ) )

reuse standard existing code generation for highlighted part. I will extract this method from findall implementation:

generateAntecedentSubgraph

2012-07-19

ACE for a GUI

Modélization of user

EndUser has Senses

Vision is a Sense

Audition is a Sense

EndUser contributes to Project

Projects contains Tasks

Task specified by a TaskProcess

TaskProcess ordered list of TaskProcessStep

EndUser owns Task

EndUser needs UserInterface to perform Tasks

Modélisation of Business Model

Ontology defines BusinessModel

BusinessModel contains ModelPart

Project is a kind of ModelPart

Project groups Document

Document is a kind of ModelPart

Document groups ModelPart

Document has Grammar

Grammar has Syntax

Grammar has Semantic

GrammarMapping maps X=Grammar with Y=Grammar

LogicDocument is a kind of Document

LogicModelPart is a kind of ModelPart

LogicFact is a kind of LogicModelPart

LogicRule is a kind of LogicModelPart

N3Document is a kind of LogicDocument

CommandMap contains CommandMapping

commandMapping maps iconButton with command.

CommandMapping maps MenuItem with Command

Modélisation de l'application interactive (UserAgent)

UserAgent provides UserInterface

UserInterface contains Views

View manages BusinessModel

Editor is a View

Editor has PartEditor

PartEditor maps to TaskProcessStep

Representation maps to ModelPart

InteractiveRepresentation is a kind of Representation

Menu groups MenuItem

MenuItem is an InteractiveRepresentation

MenuItem mapped to Command

Toolbar groups IconButton

IconButton has Icon

IconButton mapped to Command

2012-07-17

<rszeno> or maybe log:sematics

<rszeno> http://dev.w3.org/cvsweb/2000/10/swap/util/validate.n3?rev=1.7;content-type=text%2Fplain

<rszeno> see last rule at bottom

http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules

Tried latest Jason 1.3.7

I tried latest Jason 1.3.7. They are still at jEdit 4.2 !!! Worse than EulerGUI !

I wonder why Jason does not use current JRE by default.

2012-07-16

Building INRIA projects

Corese / KGRAM

I tried to compile KGRAM:

svn checkout svn://scm.gforge.inria.fr/svnroot/kgram/ 
cd kgram
cd Dev
cd trunk
mvn -Dmaven.test.skip=true package 
 ...
[INFO] Reactor Summary:
[INFO] 
[INFO] kg-parent ......................................... SUCCESS [0.006s]
[INFO] kgram ............................................. SUCCESS [22.562s]
[INFO] sparql ............................................ SUCCESS [27.954s]
[INFO] kgenv ............................................. FAILURE [4.764s]
[INFO] kgtool ............................................ SKIPPED
[INFO] engine ............................................ SKIPPED
[INFO] kgengine .......................................... SKIPPED
[INFO] kggui ............................................. SKIPPED
[INFO] kgserver-stubs .................................... SKIPPED
[INFO] kgimport .......................................... SKIPPED
[INFO] kg-dqp ............................................ SKIPPED
[INFO] kgserver .......................................... SKIPPED
[INFO] rif ............................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 56.483s
[INFO] Finished at: Mon Jul 16 15:32:25 CEST 2012
[INFO] Final Memory: 18M/166M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project kgenv: Could not resolve dependencies for project fr.inria.edelweiss:kgenv:jar:1.0.7:
  Failed to collect dependencies for [fr.inria.edelweiss:sparql:jar:1.0.7 (compile), cryptohash:cryptohash:jar:1.0 (compile), StringHelper:StringHelper:jar:1.0 (compile), log4j:log4j:jar:1.2.12 (compile), fr.inria.edelweiss:kgram:jar:1.0.7 (compile)]:
  Failed to read artifact descriptor for cryptohash:cryptohash:jar:1.0: Could not transfer artifact cryptohash:cryptohash:pom:1.0 from/to maven-repository.java.net (http://download.java.net/maven/1/): No connector available to access repository maven-repository.java.net (http://download.java.net/maven/1/) of type legacy using the available factories WagonRepositoryConnectorFactory -> [Help 1]

% mvn --version
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)

The root cause seems that cryptohash is not on any public depot:

http://mavenhub.com/search/cryptohash

http://mvnrepository.com/search.html?query=cryptohash

http://search.maven.org/#search%7Cga%7C1%7Ccryptohash

It's probalby on some internal INRIA depot .

NOTES:

KGRAM has quite an old version of Jena :

                <groupId>com.hp.hpl.jena</groupId>
                <artifactId>jena</artifactId>
                <version>2.6.3</version>

In EulerGUI I upgraded without any problem to latest Jena :

<dependency>
  <groupId>org.apache.jena</groupId>
  <artifactId>jena-arq</artifactId>
  <version>2.9.0-incubating</version>
</dependency>

<dependency>
  <groupId>org.apache.jena</groupId>
  <artifactId>jena-tdb</artifactId>
  <version>0.9.0-incubating</version>
</dependency>

After 2nd answer from Olivier, I could build KGRAM ;

[INFO] Reactor Summary:
[INFO] 
[INFO] kg-parent ......................................... SUCCESS [0.025s]
[INFO] kgram ............................................. SUCCESS [14.304s]
[INFO] sparql ............................................ SUCCESS [1.342s]
[INFO] kgenv ............................................. SUCCESS [0.590s]
[INFO] kgtool ............................................ SUCCESS [1.491s]
[INFO] engine ............................................ SUCCESS [0.570s]
[INFO] kgengine .......................................... SUCCESS [0.625s]
[INFO] kggui ............................................. SUCCESS [55.182s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:15.883s
[INFO] Finished at: Tue Jul 17 11:16:03 CEST 2012

Semantic Web Import

Semantic Web Import is a plugin allowing the Gephi platform to visualize the semantic RDF graphs. This plugin is made available under the CeCILL-B license. The last version of the plugin can be downnloaded through the Gephi platform. The source code can be found at https://gforge.inria.fr/scm/?group_id=3504. For more details, please contact us.

contact: Fabien.Gandon@inria.fr, Erwan.Demairy@inria.fr

2012-07-15

http://books.google.fr/books?id=oqOpJIi5hpoC&pg=PA357&lpg=PA357&dq=prova+semantic+web&source=bl&ots=f_ya3_tOE9&sig=mnwp70k1pb38MhdjpF3ybeMvZuM&hl=fr&sa=X&ei=fHwDUJWEHseW0QWyidWzBw&ved=0CHEQ6AEwBg#v=onepage&q=prova%20semantic%20web&f=false

COMMIT

By default Project is now "infrastructure" ( no listeners ) ; listeners are now added by ProjectGUI.

xclock -digital -update 1 &

 DISPLAY=:1 LANG=en mvn -e -DPARSER4J_TESTS=no \
   -Dtest='eulergui.gui.TestGenericGuiGenerationInsertLogical#test_foaf_import2' test

Infinitest is a continuous test runner for JUnit tests. Whenever you change a class, Infinitest runs your tests for you. It’s smart about what tests to run, and only runs the ones you need. It reports test errors in the same way Eclipse reports compile errors, and provides additional information that helps you write better tests.

already did a feature request for inifinitest !

useful to set environment variables : there could be infinitest.env

https://github.com/infinitest/infinitest/issues/90

2012-07-14

TODO

remove circular dependencies and extract API and core

feature_triplecombobox

DONE

TripleStoreHelper.extractNodeURI( triple_store);
TripleStoreHelper.extractPredicateURI( triple_store);

2012-07-12

http://www.w3.org/2012/10/TPAC/

semantics of projectLoaded() is not clear enough !!!!!!!

Thread [main] (Suspended (exception NullPointerException))
N3SourceFromOWL(N3Source).manageParseN3() line: 423
N3SourceFromOWL(N3Source).getKnownURIPrefixes() line: 670
FCMProjectListener.ensure_cbfcm_rules_loaded(Project) line: 58
FCMProjectListener.projectLoaded(Project) line: 45
ProjectChangeSupport.fireProjectLoaded(Project) line: 109
Project.prepare() line: 1216
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
ProjectGUI.populateWindow(Project, boolean) line: 282
ProjectGUI.newWindow(Project, boolean) line: 269
ProjectGUI.main(String[]) line: 214

FRED is using stanbol

http://incubator.apache.org/stanbol/overview.html

New blog deductions-software.blogspot.fr

http://deductions-software.blogspot.fr/

Trying FRED, tool for producing RDF/OWL ontologies and linked data from natural language sentences

FRED - http://wit.istc.cnr.it/stlab-tools/fred - A tool for automatically producing RDF/OWL ontologies and linked data from natural language sentences, currently limited to English.

FRED is based on C&C [1] and Boxer [2], a NLP tool that transforms natural language text into a logical form compliant to Discourse Representation Theory. We process Boxer output and apply a set of heuristics and semantic transformations in order to obtain RDF designed for the Semantic Web. In this process, we emphasize the relation to linguistic frames, supporting FrameNet and VerbNet vocabularies, and to ontology design patterns.

So tried first some examples from ATTEMPTO ACE 6.6 in a Nutshell :

A customer inserts a card and the machine checks the code.

Not bad ! It uses this class and predicates :

<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Event> .

<http://www.ontologydesignpatterns.org/ont/vn/abox/role/agent>

<http://www.ontologydesignpatterns.org/ont/vn/abox/role/theme>

respectively for the sentence, the grammatical subject, and the direct complement.

NOTE: The Options: "FrameNet roles NER Tìpalo WSD" do not have tooltips, so it's not easy to know what they mean.

A customer inserts a VisaCard or inserts a MasterCard, and inserts a code.

The disjunction (or) is not reflected at all in the output. Neither is the negation correctly represented:

It is false that a customer inserts a card.

Now I'll try an example of mine that works with EulerGUI:

If a user U has-as-friend a person X, and has-as-friend a person Y, and X is not Y,

and X has-as-friend Z, and Y has-as-friend Z, and Z is not U

then Z is-a-proposed-friend-for U.

It's clear that the if-then structure is not understood. Even a simple sentence like this is wrong :

If the code is valid then the ATM accepts the card.

FRED tries to be smart, and "thinks" that the ATM is a foaf:Organisation !

2012-07-11

Julien Plu and some other persons, translated four tutorials from Jena website on

Developpez.com, there a list of the tutorials :

http://web-semantique.developpez.com/tutoriels/jena/introduction-rdf/

http://web-semantique.developpez.com/tutoriels/jena/arq/api-application/

http://web-semantique.developpez.com/tutoriels/jena/io/

http://web-semantique.developpez.com/tutoriels/jena/arq/introduction-sparql/

These links can be referenced on the Jena website ?

Thanks in advance.

Best.

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

Results :

Tests in error: 
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)

Tests run: 184, Failures: 0, Errors: 2, Skipped: 0

http://ro.linkedin.com/in/xtremeintelligence

Envoyé mercredi à 17:40

Ruset: and this one http://universitydiary.wordpress.com/2009/09/30/whats-this-all-about/

<jmvanel> rszeno, any experience in proxies on Linux ?

<jmvanel> the goal would be to accelerate and secure tests in EG

<rszeno> not much, mainly how to avoid them

<jmvanel> :)

<rszeno> i mean avoid problems with open proxy used by others

<jmvanel> ok

<jmvanel> it does not seem too difficult :

<jmvanel> http://www.commentcamarche.net/faq/6323-installer-un-serveur-proxy-http-squid

<rszeno> i have no idea, i need to understand why is more secure and how acceleration work

<rszeno> usualy stuff is easy to install and run with default settings but for a given task always need tweaks

<rszeno> service and editing /etc/default/... is a usual pattern

<rszeno> probably with a proper interface can be done with n3

<rszeno> i tried with apache but interface is not ok

<jmvanel> :)

<jmvanel> secure is not the righ word,

<jmvanel> nothing to do with security ;

<jmvanel> I mean EG depends on many servers for tests ;

<jmvanel> it sometimes happens that one is down;

<jmvanel> and so tests fail for that

<jmvanel> acceleration is just that download does not occur

Missing "." at end of line when serializing output with an RDF list:

_:type4 <http://www.w3.org/2002/07/owl#intersectionOf> ( <http://xmlns.com/foaf/0.1/Person> _:type1 )

TODO stack sometimes happening; I don't know how to reproduce

java.lang.NullPointerException
at n3_project.helpers.EyeHelper.addN3SourceToEulerArguments(EyeHelper.java:193)
at n3_project.helpers.EyeHelper.getEulerArguments(EyeHelper.java:150)
at n3_project.helpers.EyeHelper.reasonExternalProlog(EyeHelper.java:51)
at eulergui.project.Project.reasonExternalProlog(Project.java:536)
at eulergui.inference.yap.YapInferenceEngine.launch(YapInferenceEngine.java:20)
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)

PROBLEM when managing N3 Cache for N3 source file:/home/jmv/jmvanel.free.fr/jmv.rdf

Error when converting RDF from a file file:/home/jmv/jmvanel.free.fr/jmv.rdf : java.io.FileNotFoundException: /home/jmv/jmvanel.free.fr/jmv.rdf (Trop de fichiers ouverts)

Cause:

java.io.FileNotFoundException: /home/jmv/jmvanel.free.fr/jmv.rdf (Trop de fichiers ouverts) , caused by /home/jmv/jmvanel.free.fr/jmv.rdf (Trop de fichiers ouverts)

http://schema.org/

Results :
Tests run: 184, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17:44.562s

Example with ACE => OWL => N3 rules translation

Run APE in command line :

% ape.exe -uri http://eulergui.sf.net/contact.owl -ulexfile foaf-lexicon.pl -text \
  'If P is a person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlxml > interesting-contact2.owl

Run EulerGUI from command line, reading the OWL file just generated :

eg interesting-contact2.owl htpp://jmvanel.free.fr/jmv.rdf

jmv.rdf is my FOAF profile on the Internet.

The translation of OWL into N3 is :

@prefix ns2: <http://eulergui.sf.net/contact.owl#>.

{ ?VAR <http://xmlns.com/foaf/0.1/currentProject> ?t0.
  ?VAR <http://xmlns.com/foaf/0.1/homepage> ?t2.
  ?VAR a <http://xmlns.com/foaf/0.1/Person>
} => {
  ?VAR a ns2:interesting-contact}.

Now click on the button to launch Drools engine. Since the URI <htpp://jmvanel.free.fr/jmv.rdf#me> ( that's me ) has a foaf:currentProjet and a foaf:homepage , it is inferred that he is an interesting-contact . To confirm this, one can either use the user Knowledge Base display in tools to see the whole KB. Or one can use the N3 shell to ask this query (just paste it with Ctrl-V) :

?X a ns2:interesting-contact .

The answer appears at once :

<http://jmvanel.free.fr/jmv.rdf#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eulergui.sf.net/contact.owl#interesting-contact> .

Under the hood

There is a local lexicon file for ATTEMPTO APE : foaf-lexicon.pl , that tells how to verbalize the foaf concepts in english :

cat foaf-lexicon.pl 

tv_finsg('has-homepage' ,       iri('http://xmlns.com/foaf/0.1/homepage') ).
tv_infpl('have-homepage' ,      iri('http://xmlns.com/foaf/0.1/homepage') ).
tv_finsg('has-current-project' ,        iri('http://xmlns.com/foaf/0.1/currentProject') ).
tv_infpl('have-current-project' ,       iri('http://xmlns.com/foaf/0.1/currentProject') ).

noun_sg( person,        iri('http://xmlns.com/foaf/0.1/Person'), neutr) .
noun_pl( persons,       iri('http://xmlns.com/foaf/0.1/Person'), neutr) .

How to run the demonstration

  1. install ATTEMPTO APE, see http://attempto.ifi.uzh.ch/site/downloads/
  2. download foaf-lexicon.pl from the link
  3. download EulerGUI , preferably the latest snapshot from http://sourceforge.net/projects/eulergui/files/eulergui/1.11/ ; that is an executable (Java) jar

    EulerGUI Manual is available from help menu

  4. run commands as above

Federated SPARQL query

Example of federated query :

CONSTRUCT {
  ?MUSICAL_WORK :hasDBPedia ?X .
  ?X ?INTERESTING_PROP ?VALUE .
} WHERE {
  ?MUSICAL_WORK :title ?LOCAL_NAME .
  SERVICE <http://dbpedia.org/sparql> { 
    ?X rdfs:label ?NAME .
    ?NAME <bif:contains> ?LOCAL_NAME .
    ?X ?INTERESTING_PROP ?VALUE .
  }
}

SPARQL query with filter on language

Example of query on dbpedia with filter on language

SELECT DISTINCT ?m ?n ?p ?d
WHERE {
 ?m rdfs:label ?n.
 ?m skos:subject ?c.
 ?c skos:broader category:Churches_in_Paris.
 ?m p:abstract ?d.
 ?m geo:point ?p
 FILTER ( lang(?n) = "fr" )
 FILTER ( lang(?d) = "fr" )
 }

2012-07-10

COMMIT Michel - 10 june 2012: limit minimum resize to 'usable dimension'

Get a certificate from FireFox

For use with escargot :) .

<jmvanel> yes , but I forgot how to get a certificate , altough you said me once , and bblfish also :(

<rszeno> you doesn't have one? is in foaf

<rszeno> anyway you can get one from here https://my-profile.eu/profile.php

<jmvanel> right , I have one in FOAF, but the secrete part , I don't know where it is

<jmvanel> can't get one in command line ?

<rszeno> no, not yet

<rszeno> both parts are in browser

<rszeno> you can export certificate

<rszeno> from browser: Edit -> Preferences -> Advanced ->Encriptation -> View Certificates

<rszeno> then select one you want to backup and push 'Backup'

<rszeno> will ask for a password, take care to remember it, you will need each time later

<rszeno> result of exporting is a file with extension .p12

FuXi Tutorial by Chime Ogbuji

Upon request, I have created an end-to-end tutorial for FuXi that attempts to describe (with lots of code examples) its primary capabilities as well as how it works with the other FuXi-related projects (Triclops, layercake-python, etc.). The link is below

http://code.google.com/p/fuxi/wiki/Tutorial

It is meant as a 'hello-world' tutorial with links into the more detailed documentation

Let me know if you have any suggestions for how to improve this

My next major task(s) are more robust testing of the new backwards fixpoint procedure module and RIF XML and RDF parsing and serialization capabilities.

Enhancing OWL => N3 rules translation

run APE :

% ape.exe -uri http://eulergui.sf.net/contact.owl -ulexfile foaf-lexicon.pl -text 'If P is a person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlxml > interesting-contact2.owl

OWL from APE:

[ rdf:type owl:Class ;
  rdfs:subClassOf :interesting-contact ;
  owl:intersectionOf ( [ rdf:type owl:Class ;
                         owl:intersectionOf ( <http://xmlns.com/foaf/0.1/Person>
                                              [ rdf:type owl:Restriction ;
                                                owl:onProperty
                                                  <http://xmlns.com/foaf/0.1/homepage> ;
                                                owl:someValuesFrom owl:Thing
                                              ]
                                            )
                       ]
                       [ rdf:type owl:Restriction ;
                         owl:onProperty <http://xmlns.com/foaf/0.1/currentProject> ;
                         owl:someValuesFrom owl:Thing
                       ]
                     )
] .

translation of OWL into N3:

{?t0 a owl:Thing. ?VAR <http://xmlns.com/foaf/0.1/currentProject> ?t0. 
 ?t2 a owl:Thing. ?VAR <http://xmlns.com/foaf/0.1/homepage> ?t2.
 ?VAR a <http://xmlns.com/foaf/0.1/Person>
} => {
 ?VAR a ns2:interesting-contact}.

I should remove this condition :

?t0 a owl:Thing.

DONE! Now its looks much better on the example ace.rdf , but still there are some issues :

{?t1 a :subordonate. ?VAR :have ?t1. ?VAR a :employee} => {?VAR a :manager}.
{?VAR a :person. ?VAR :manages ?t11} => {?VAR a ?e4}.
{?VAR :like ?t3. ?VAR a :man} => {?t0 a :stick. ?VAR :own ?t0}.
{?VAR a ?e19} => {?VAR a :vegetarian-food}.
{?t5 log:equalTo :Jimi_Hendrix. ?VAR :like ?t5} => {?VAR a :rock-fan}.
{?t7 a :carrot. ?VAR :like ?t7} => {?VAR a :herbivore}.
{?t9 a :man. ?t9 :buy ?VAR} => {?VAR a :good}.
{?VAR :manages ?t11. ?VAR a :person} => {?VAR a :manager}.

COMMIT

translation OWL ==> N3 rules ( owl-subclass-assertions-to-rules.n3 ) add conditions so that generated rules do not have unwanted triples in the antecedent like :

?t0 a owl:Thing.

2012-07-09

TODO : ask on swig list

Semantic Web Interest Group IRC log : http://swig.xmlhack.com/

http://sourceforge.net/apps/mediawiki/bigdata/index.php

SourceForge.net - Subscription Confirmation for bigdata

TODO I should add this in EulerGUI site

https://code.google.com/p/lmf/

Search "jena replication sparql"

I realize that using the KB access in Java through ITripleStore is to be avoided as much as possible. The preferred way, for a better separation between business logic and Java code, is to use mixed , reactive rules.

These rules will query the data and context, apply business rules, and send messages to relevant component like a table, tree, property list view, or form, or more customized component.

Tests in error: 
  testUpdateJavaFromN3(eulergui.drools_engine.TestN3JavaMapping): Wait for "getText() Component Chooser "business"(..)

Convert ACE into another format

Answer by Kaarel Kaljurand

Is there any other tooling around that I should investigate?

more tools are listed on:

http://attempto.ifi.uzh.ch/site/tools/

Some of them are also open-source, e.g.:

- http://code.google.com/p/aceview/

- http://code.google.com/p/owlverbalizer/

But none of them are specific to CLCE/KIF.

To convert ACE into another format, e.g. CLCE or KIF, you could consider applying the required transformations at the DRS level. There are many examples in https://github.com/Attempto/APE/tree/master/utils of how to convert the DRS into other formats (OWL, TPTP. RuleML, ACE, ...).

Regression : why window in BloodPressure example is not showing right ?

This happens inside the GUI; probably not from the API.

The problem is in this rule:

{ 
?L :alert "true"
; log:uri ?LL .
} => {
?F a java:javax-swing-JFrame; javap:title ?LL
; javam:setSize ( 700 70 )
; javap:visible true
 .
}.

In fact deferred calls work fine, but direct call like setSize do not :

rule "popup-java.n3 0"
when
  $Triple_1 : Triple( $L : subject, predicate == "<http://eulergui.sourceforge.net/examples#alert>", object == "\"true
\"" )
# $LL == $L
then
  java.lang.String $LL = $L.toString().replaceFirst( "^<", "\"").replaceFirst( ">$", "\"");
  Triple newTriple;
  TripleResult newTripleResult;
  String $F = Triple.resource("F") ;
  javax.swing.JFrame $F_reference = new javax.swing.JFrame ();
  insertLogical( new Assignment( $F.toString(), $F_reference ));
  insertLogical( $F_reference );
  DeferredPropertyAssignment dpa_F4 = new DeferredPropertyAssignment();
  dpa_F4.setSubject($F.toString() );
  dpa_F4.setPredicate( "<http://java.sun.com/predicate#title>" );
  dpa_F4.setObject($LL.toString() );
  insertLogical( dpa_F4 );
  (  ( javax.swing.JFrame )  $F_reference ) . setSize(   (  700 ) ,   (  70 )  );
  DeferredPropertyAssignment dpa_F6 = new DeferredPropertyAssignment();
  dpa_F6.setSubject($F.toString() );
  dpa_F6.setPredicate( "<http://java.sun.com/predicate#visible>" );
  dpa_F6.setObject("true".toString() );
  insertLogical( dpa_F6 );
end

I tried to remove parentheses around numbers, but it had no effet.

So I use svn-bisect again to locate the bad revision:

svn update -r 3111
mvn -Dtest=TestJavaMappingInGUI --offline test 
gvim  target/surefire-reports/eulergui.gui.TestJavaMappingInGUI*.txt
svn update -r 3120

svn-bisect start 3046 3136
svn-bisect run 'DISPLAY=:1 LANG=en mvn --offline -Dtest=TestJavaMappingInGUI test'

svn-bisect reset
svn-bisect start 3068 3091
svn-bisect run 'rm -r ~/.eulergui ; LANG=en mvn --offline -Dtest=TestJavaMappingInGUI test' 
svn info
# 3079 BAD
histo
history
svn-bisect reset
svn-bisect start 3068  3079
svn-bisect run 'rm -r ~/.eulergui ; LANG=en mvn --offline -Dtest=TestJavaMappingInGUI surefire-report:report' 
svn info
# 3073 GOOD
 ...
Regression found!
Last good revision: r3073
First bad revision:
------------------------------------------------------------------------
r3074 | jmvanel | 2012-05-30 23:08:50 +0200 (mer. 30 mai 2012) | 2 lignes

fix windows generated by swing3.n3p rule base: now the newly appeared windows are packed after launching Drools

COMMIT

FIX BloodPressure2.n3p example : we don't want the generated window to be packed,

* and thus become almost invisible;

* same case for windows having 0 components inside

==> in class SwingRulesLaunchWrapper

TODO: this is fragile, and another mechanism should be tested;

* for instance a rule that packs the window whenever a component is added.

- enhance TestN3JavaMapping

- add TestJavaMappingInGUI : test simple Java instantiation and method call in consequent,

from the EUlerGUI GUI

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

First call to addInfrastructureRules

Thread [main] (Suspended (breakpoint at line 508 in N3SourcetoDrools))
N3SourcetoDrools.addInfrastructureRules() line: 508
N3DroolsEngineFacade.addInfrastructureRules() line: 274
Project.prepare() line: 1215
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
ProjectGUI.populateWindow(Project, boolean) line: 264
ProjectGUI.newWindow(Project, boolean) line: 251
ProjectGUI.main(String[]) line: 196

Second call to addInfrastructureRules, during Drools run : no problem

Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 508 in N3SourcetoDrools))
N3SourcetoDrools.addInfrastructureRules() line: 508
N3DroolsEngineFacade.addInfrastructureRules() line: 274
Project.doTranslateN32Drools(boolean, boolean) line: 973
Project.translateN32Drools(boolean) line: 923
Project.prepareDrools(boolean) line: 882
Project.doRunDrools(boolean) line: 837
Project.runDroolsTriples(boolean) line: 788
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

2012-07-07

ReflectionHelper.findMethod() 3: java.lang.NoSuchMethodException:

In my application's pom.xml, I have a dependency to version 5.5.0-SNAPSHOT ;

I would like to freeze to today's version for some time :

drools-compiler-5.5.0-20120708.050650-274.jar

How do I indicate this in the POM ?

This does not work :

<version>5.5.0-SNAPSHOT-20120708.050650-274</version>

FYI this works ; <version>5.5.0-20120708.050650-274</version>

eulergui.drools_engine.TestN3JavaMapping
Running eulergui.project.TestProjectSequence
Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 9.884 sec <<< FAILURE!
Concurrency config is parallel='false', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false
Running eulergui.project.TestProjectWithSubProjects
Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 9.553 sec <<< FAILURE!

Running eulergui.gui.TestN3FormatForProject
Tests run: 4, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 40.75 sec <<< FAILURE!
Running deductions.runtime.TestRulesForUserEvents
Tests run: 4, Failures: 1, Errors: 3, Skipped: 0, Time elapsed: 33.731 sec <<< FAILURE!


Failed tests: 
  testRunDrools(eulergui.drools_engine.TestReasonning): check Pattern Triple Handler,(..)
  testUpdateJavaFromN3(eulergui.drools_engine.TestN3JavaMapping): a rule activation directly affects a Java object expected:<1> but was:<2>
  testpostproc_build(eulergui.project.TestProjectSequence): must have a result with subject (..)
  testpostproc_import(eulergui.project.TestProjectSequence): must have a result with subject (..)
  testpostproc(eulergui.project.TestProjectSequence): must have a result with subject (..)
  testimportQ(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
  testimportQ2(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
  testimport(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
  testFormFromResource(deductions.runtime.TestRulesForUserEvents): form and field as expected

Tests in error: 
  test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
  testFieldOldArchitecture(deductions.runtime.TestRulesForUserEvents): [Error: unable to resolve method: eulergui.inference.drools.impl.Assignment.isAbstract() [arglength=0]](..)
  testFormFromClass(deductions.runtime.TestRulesForUserEvents): [Error: unable to resolve method: eulergui.inference.drools.impl.Assignment.isAbstract() [arglength=0]](..)
  testFocusLost(deductions.runtime.TestRulesForUserEvents): Index: 0, Size: 0

Tests run: 184, Failures: 9, Errors: 4, Skipped: 0

Works ( revision 3124 ) :

org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:58980
Thread [main] (Suspended (breakpoint at line 180 in JFrame))
owns: DefaultAgenda  (id=292)
owns: ReteooRuleBase  (id=293)
JFrame.<init>() line: 180 [local variables unavailable]
Rule_true_antecedent_java_n3_0_59946b9a02a0452294e19d8da884c494.defaultConsequence(KnowledgeHelper) line: 16
Rule_true_antecedent_java_n3_0_59946b9a02a0452294e19d8da884c494DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_true_antecedent_java_n3_0_59946b9a02a0452294e19d8da884c494DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1274
DefaultAgenda.fireNextItem(AgendaFilter) line: 1209
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1443
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
N3SourcetoDrools.launchDroolsKeepWM() line: 704
N3DroolsEngineFacade.launchDroolsKeepWM() line: 71
BasicRuntime.addN3SourceInKB(N3Source) line: 227
BasicRuntime.processTriplesOrRules(String) line: 207
BasicRuntime.executeLine(String) line: 192
BasicRuntimeTest.executeLine(String) line: 102
BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 520
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
BasicRuntimeTest(TestCase).runTest() line: 168
BasicRuntimeTest(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
BasicRuntimeTest(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
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
Thread [ReaderThread] (Running)

Should work :

// ---------- N3 rule 0 ----------
/* true => {
_:x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#javax-swing-JFrame>.
_:list2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> 400.
_:list1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> 200.
_:list1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>.
_:list2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list1.
_:x <http://java.sun.com/method#setSize> _:list2.
_:list3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "generated by rule".
_:list3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>.
_:x <http://java.sun.com/method#setTitle> _:list3.
_:list4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> true.
_:list4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>.
_:x <http://java.sun.com/method#setVisible> _:list4.
_:list5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "JFrame generated by rule".
_:list5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>.
_:d <http://eulergui.sourceforge.net/engine.owl#trace> _:list5.
}
 .
 */

rule "true_antecedent_java.n3 0"
when
  eval( true )
then
  Triple newTriple;
  TripleResult newTripleResult;
  String $x = Triple.resource("x") ;
  javax.swing.JFrame $x_reference = new javax.swing.JFrame ();
  insertLogical( new Assignment( $x.toString(), $x_reference ));
  insertLogical( $x_reference );
  (  ( javax.swing.JFrame )  $x_reference ) . setSize(   (  400 ) ,   (  200 )  );
  (  ( javax.swing.JFrame )  $x_reference ) . setTitle(   (  "generated by rule" )  );
  (  ( javax.swing.JFrame )  $x_reference ) . setVisible(   (  true )  );
  System.out.println( "#TRACE ( " + "\"JFrame generated by rule\"" + " " +  ")" );
end

query "userData"
    $Triple_1 : Triple( $RESOURCE : subject, predicate == "<http://jmvanel.free.fr/ontology/software_applications.owl#status>", object == "<http://jmvanel.free.fr/ontology/software_applications.owl#userData>" )
  $Triple_2 : Triple( subject == $RESOURCE, $PREDICATE : predicate, $VALUE : object )

end

2012-07-06

Locating a bug with svn-bissect

svn-bisect does dichotomic search of a bug.

http://manpages.ubuntu.com/manpages/lucid/man1/svn-bisect.1.html

sudo apt-get install subversion-tools

svn update -r 3077
# this succeeds:
DISPLAY=:1  LANG=en mvn --offline -Dtest=BasicRuntimeTest test
# then I can intialize bisect:
svn-bisect --min 3077 --max 3129 start
svn-bisect run 'DISPLAY=:1 LANG=en mvn --offline -Dtest=BasicRuntimeTest test'
 ...
Regression found!
Last good revision: r3124
First bad revision:
------------------------------------------------------------------------
r3125 | jmvanel | 2012-06-25 22:57:51 +0200 (lun. 25 juin 2012) | 4 lignes
- Drools/N3 engine: now static method calls work outside of rules
- examples/table_app.n3p now works
TODO: now BasicRuntimeTest.testJavaMappingConsequentNewVariable() fails

svn-bisect reset

<jmvanel> 2 regressions currently in eg :(

<jmvanel> the 4 buttons for results are missing

<jmvanel> and the N3 shell querries are not working

 svn propset svn:executable "" egm eg *.sh

2012-07-05

Twit : New #EulerGUI snapshots:

COMMIT

WIP: FIX Tests in error (for testJavaMappingConsequentNewVariable may be a Drools issue )

- update CHANGELOG

Thread [main] (Suspended (entry into method <init> in TripleStoreDrools))
TripleStoreDrools.<init>() line: 44
N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1046
N3SourcetoDrools.<init>() line: 161
N3DroolsEngineFacade.<init>() line: 44
Project.initializeDrools() line: 1022
Project.getTranslator() line: 1077
Project.prepare() line: 1213
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
CommandLineArguments.makeProjectFromEulerCommandLine(String[]) line: 146
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 72
CommandLineArguments.makeProjectFromUserArgument(String[]) line: 36
BasicRuntime.initialize(String[]) line: 106
BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 519
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
BasicRuntimeTest(TestCase).runTest() line: 168
BasicRuntimeTest(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
BasicRuntimeTest(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
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

Thread [main] (Suspended (entry into method <init> in TripleStoreDrools))
owns: ReteooStatefulSession  (id=72)
TripleStoreDrools.<init>() line: 44
N3SourcetoDrools.addInfrastructureObjectsInWM() line: 653
N3SourcetoDrools.copyN3factsToDrools() line: 669
N3DroolsEngineFacade.copyN3factsToDrools() line: 193
ApplicationKB.<init>() line: 109
ApplicationKB.instance() line: 80
Project.prepare() line: 1211

Thread [main] (Suspended (entry into method <init> in TripleStoreDrools))
owns: ReteooStatefulSession  (id=72)
TripleStoreDrools.<init>() line: 44
GUIKBAdapter.<init>() line: 48
N3SourcetoDrools.addInfrastructureObjectsInWM() line: 652
N3SourcetoDrools.copyN3factsToDrools() line: 669
N3DroolsEngineFacade.copyN3factsToDrools() line: 193
ApplicationKB.<init>() line: 109
ApplicationKB.instance() line: 80
Project.prepare() line: 1211
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
CommandLineArguments.makeProjectFromEulerCommandLine(String[]) line: 146
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 72
CommandLineArguments.makeProjectFromUserArgument(String[]) line: 36
BasicRuntime.initialize(String[]) line: 106
BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 519
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
BasicRuntimeTest(TestCase).runTest() line: 168
BasicRuntimeTest(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
BasicRuntimeTest(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
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

Thread [main] (Suspended (entry into method <init> in TripleStoreDrools))
TripleStoreDrools.<init>() line: 44
N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1046
N3SourcetoDrools.<init>() line: 161
N3DroolsEngineFacade.<init>() line: 44
Project.initializeDrools() line: 1022
Project.getTranslator() line: 1077
ApplicationKB.<init>() line: 99
ApplicationKB.instance() line: 80
Project.prepare() line: 1211
ProjectFactory.prepareProject(Project, URL, boolean) line: 312
CommandLineArguments.makeProjectFromEulerCommandLine(String[]) line: 146
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 72
CommandLineArguments.makeProjectFromUserArgument(String[]) line: 36
BasicRuntime.initialize(String[]) line: 106
BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 519
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
BasicRuntimeTest(TestCase).runTest() line: 168
BasicRuntimeTest(TestCase).runBare() line: 134
TestResult$1.protect() line: 110
TestResult.runProtected(Test, Protectable) line: 128
TestResult.run(TestCase) line: 113
BasicRuntimeTest(TestCase).run(TestResult) line: 124
TestSuite.runTest(Test, TestResult) line: 243
TestSuite.run(TestResult) line: 238
JUnit38ClassRunner.run(RunNotifier) line: 83
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-07-04

Fixing regressions in EulerGUI

The rule that compiles no more in test TestRulesForUserEvents :

// ---------- N3 rule 0 ----------
/* {
?CLASS <http://java.sun.com/class#isAbstract> true.
?CLASS <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?SUPERCLASS.
}
 => {
?SUPERCLASS <http://java.sun.com/class#isAbstract> true.
}
 .  */

rule "java_library-rules.n3 0"
when
  Assignment( $CLASS : name, $CLASS_reference : reference, reference.isAbstract == "true" )
  $Triple_1 : Triple( subject == $CLASS, predicate == "<http://www.w3.org/2000/01/rdf-schema#subClassOf>", $SUPERCLASS : object )
then
  Triple newTriple;
  TripleResult newTripleResult;
  DeferredPropertyAssignment dpa_SUPERCLASS3 = new DeferredPropertyAssignment();
  dpa_SUPERCLASS3.setSubject($SUPERCLASS.toString() );
  dpa_SUPERCLASS3.setPredicate( "<http://java.sun.com/class#isAbstract>" );
  dpa_SUPERCLASS3.setObject("true".toString() );
  insertLogical( dpa_SUPERCLASS3 );
end

query "userData"
    $Triple_1 : Triple( $RESOURCE : subject, predicate == "<http://jmvanel.free.fr/ontology/software_applications.owl#status>", object == "<http://jmvanel.free.fr/ontology/software_applications.owl#userData>" )
  $Triple_2 : Triple( subject == $RESOURCE, $PREDICATE : predicate, $VALUE : object )

end

Tests in error: 
  testFieldOldArchitecture(deductions.runtime.TestRulesForUserEvents): N3JavaMappingBuiltin.acceptConsequent()
  testFormFromClass(deductions.runtime.TestRulesForUserEvents): translate(IRDFIterator iterator, ... http://deductions.svn.sourceforge.net/svnroot/deductions/n3/java_library-rules.n3
  testJavaMappingConsequentNewVariable(deductions.runtime.BasicRuntimeTest): Any javax.swing.JFrame

Tests run: 184, Failures: 0, Errors: 3, Skipped: 0

2012-07-02

Business ideas for Déductions software framework

EulerGUI : fix the dynamic table

COMMIT

- add test class TableApp, a simple table application, where the table is dynamically populated from the Drools/N3 KB

- FIX RuleBasedApplicationStarter. addKnowledge(N3Source)

( also tested with TXC musical player )

Thread [main] (Suspended)
owns: DefaultAgenda  (id=98)
TableModelFromN3.removeElement(ITriple) line: 307
N3TableModel.removeElement(ITriple) line: 147
N3TableModel.remove(String) line: 115
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
JavaObjectsRetractionListener.invokeRemoveMethod(WorkingMemory, DeferredMethodCall, String, String) line: 98
JavaObjectsRetractionListener.objectRetracted(ObjectRetractedEvent) line: 36
WorkingMemoryEventSupport.fireObjectRetracted(PropagationContext, FactHandle, Object, InternalWorkingMemory) line: 78
NamedEntryPoint.retract(FactHandle, boolean, boolean, Rule, Activation) line: 586
ReteooStatefulSession(AbstractWorkingMemory).retract(FactHandle, boolean, boolean, Rule, Activation) line: 920
TruthMaintenanceSystem$LogicalRetractCallback.execute(InternalWorkingMemory) line: 313
ReteooStatefulSession(AbstractWorkingMemory).executeQueuedActions() line: 977
NamedEntryPoint.update(FactHandle, Object, long, Activation) line: 483
ReteooStatefulSession(AbstractWorkingMemory).update(FactHandle, Object, long, Activation) line: 960
ReteooStatefulSession(AbstractWorkingMemory).update(FactHandle, Object) line: 933
TripleStoreDrools.updateTriple(ITriple, String) line: 136
EditCellListener.tableChanged(TableModelEvent) line: 53
N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296
N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275
N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667
TableModelFromN3.setValueInTableModel(ITriple) line: 82
TableModelFromN3.add(ITriple) line: 74
N3TableModel.addElement(ITriple) line: 138
N3TableModel.add(String) line: 106
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
DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133
DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100
DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93
DeferredMethodCall.assign(Object, List<Assignment>) line: 73
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_2f0725bf5d564f49a1580bb9dc30c847.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_2f0725bf5d564f49a1580bb9dc30c847DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_2f0725bf5d564f49a1580bb9dc30c847DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1274
DefaultAgenda.fireNextItem(AgendaFilter) line: 1209
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1443
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 352
TableApp.start() line: 45
TableApp.main(String[]) line: 27

2012-06-27

http://www.w3.org/2001/sw/wiki/Category:Tool

http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/

TODO

2012-06-26

TODO : ask on swig list

software dev. and semantic web

available solutions

avoid storing in relational database and processing data through OO API

very common practice

avoid generating classes in Java or another programming language

instead keep data in semweb triples from end to end

framework

other solutions?

TDB wrapper for TripleStoreDrools

insert user triples in a per-user named graph

the application can put data in a chosen named graph

store consequences also ?

internally use a ProjectListener to store N3Source also in the RDF db ?

leverage on named graphs metadata : date created, etc

how to use the RDF db ?

A-t-on vraiment besoin de base ? oui, pour la persistence

persistence de l'IHM : onglets <--> playlists

playlist :

ordre: soit enregistré tel quel , soit ordre par classement, soit enregistrer les permutation

2012-06-25

http://sdl.ikayzo.org/display/SDL/Home

http://code.google.com/a/eclipselabs.org/p/ink/

http://blog.athico.com/2012/05/drools-54-artificial-intelligence.html

Fixing deferred method calls in EulerGUI fw

There are 2 competing rules:

# implementation 
eg:N3TableModel a java:deductions-runtime-swing-N3TableModel .
{ ?N3TableModel a java:deductions-runtime-swing-N3TableModel
} => {
  ?N3TableModel javam:setTripleStore ( eg:STORAGE ) .
  java:eulergui-gui-view-N3SourceTableView javam:displayTableFrame ( ?N3TableModel ) .

and

{ ?PE a foaf:Person .
  ?PE log:uri ?URI } => { eg:N3TableModel javam:add ( ?URI ) } .

Alas, the second is firing before the first ! So the N3TableModel is not ready when it gets the add() method call .

Another trouble is that the Java type of eg:STORAGE is not known to Drools, because currently EG generates:

rule "table_data.n3 0"
when
  $N3TableModel_reference : deductions.runtime.swing.N3TableModel()
  Assignment( $N3TableModel : name, reference == $N3TableModel_reference )
  // it is a Java variable, but type is unknown:
  Assignment( name == "<http://eulergui.sourceforge.net/engine.owl#STORAGE>", $STORAGE_reference : reference )
then
  Triple newTriple;
  TripleResult newTripleResult;
  (  ( deductions.runtime.swing.N3TableModel )  $N3TableModel_reference ) . setTripleStore(   (  $STORAGE_reference )  );
  eulergui.gui.view.N3SourceTableView . displayTableFrame(  ( deductions.runtime.swing.N3TableModel ) $N3TableModel_reference );
end

Under the hood, this DRL rule tries to collect Assignment objects matching URI arguments:

rule "DeferredMethodCall"
when
  $DMC : DeferredMethodCall( $S : subject, $OO : objects )
  $A : Assignment( name == $S )
  $ARGS_OBJ : ArrayList() from collect ( Assignment( name memberOf $OO ) )
then
  /* for each string in objects, assign() checks if it's a literal, or if it
   * exists a corresponding Assignment in the $ARGS_OBJ list;
   * if so, it performs the method call and return true. */
  if( $DMC.assign( $A, $ARGS_OBJ ) ) {
    // retract( $DMC );
  }
end

Possible solutions:

  1. Drools could keep ordering of rules
  2. EulerGUI could have a motion of an object "not ready" state
  3. call to setTripleStore could be outside of a rule

For point 3 , this is used:

eg:N3TableModel a java:deductions-runtime-swing-N3TableModel ;
        javam:setTripleStore ( eg:STORAGE ) .
java:eulergui-gui-view-N3ouside of ruleSourceTableView javam:displayTableFrame ( eg:N3TableModel ) .

The call stack when DeferredMethodCall infrastructure class is trying to call setTripleStore :

Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended)
owns: DefaultAgenda  (id=185)
owns: ReteooRuleBase  (id=186)
DeferredMethodCall.assign(Object, List<Assignment>) line: 65
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_35c6acfdb6df40019229eb953768af59.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_35c6acfdb6df40019229eb953768af59DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_35c6acfdb6df40019229eb953768af59DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1274
DefaultAgenda.fireNextItem(AgendaFilter) line: 1209
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1443
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
N3SourcetoDrools.launchDroolsKeepWM() line: 704
N3SourcetoDrools.launchDrools() line: 618
N3DroolsEngineFacade.launchDrools() line: 65
Project.doRunDrools(boolean) line: 836
Project.runDroolsTriples(boolean) line: 782
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
  

2012-06-23

Density of materials

http://www.simetric.co.uk/si_materials.htm

(:patient035 dco:Female) fl:mu 1.
(:patient035 dco:Male) fl:mu 0.

Studying Jos' fuzzy logic examples

cd ~/src/eulersharp/trunk/2004/02swap/testCases/
eye  example001P.n3 example002P.n3 rpo-rules.n3 --nope --query example003Q.n3 

2012-06-22

https://github.com/Attempto

https://github.com/AceWiki/AceWiki

dialog on IRC #eulergui : roadmap

<jmvanel> working on the roadmap

<jmvanel> the pres. in Rennes reminded me that the use of an OWL for inference in EG is fragile

<lcpvrr> not a good news

<lcpvrr> may be some enhancement to add

<rszeno> is a good new because is a goal to fix it, :)

<rszeno> discovering a problem imo is a good new

<jmvanel> not a news if you tested a bit this, with an ontogy having real class definitions, not "structural" ontologies like FOAF

<jmvanel> there are 2 ways, as you know , to use class definitions from OWL:

<jmvanel> 1. the direct translation into N3 rules

<jmvanel> 2. keep the OWL as N3 triples, and use the RDFS and OWL rules of Jos

<jmvanel> both are poorly tested and documented

<rszeno> 1 is not always possible, imo

<jmvanel> anyway we target OWL 2 RL

<jmvanel> starting from ACE, it would be nice to generate directly N3 rules;

<jmvanel> however I think Kaarel could do this

<jmvanel> translate ace , or rather DRS into N3 rules

<jmvanel> they already have translations in OWL, SWRL, TPTP , etc

<rszeno> if i'm not wrong ace can use plugins

<jmvanel> probably

<jmvanel> it's a good code base

<rszeno> euler too

<jmvanel> plus currently Norbert ( emeritus professor ) does an ACE reasonner called RACE

2012-06-21

COMMIT

- FEATURE: typing enter in field for Euler and CWM arguments launches the inference engine ( also doc. updated )

- remove unused class RunActionYap

owl:Restriction with N3 rules

This creates an infinite loop in Euler and Drools/N3:

{ ?X ?P ?V . } => {
  ?X a [ rdf:type owl:Restriction ;
         owl:onProperty ?P . ]
}.

2012-06-19

[23:09:20 CEST] michel Kern: http://www.visualdataweb.org/relfinder/relfinder.php

[23:12:07 CEST] michel Kern: http://www.thinkgraph.com/

[23:27:12 CEST] michel Kern: http://processing.org/

[23:30:42 CEST] michel Kern: http://code.google.com/p/pharduinop/

[23:32:21 CEST] michel Kern: http://livre.fnac.com/a1977055/Beatrice-Milletre-Petit-guide-a-l-usage-des-gens-intelligents-qui-ne-se-trouvent-pas-tres-doues

[23:38:45 CEST] michel Kern: http://www.terimakasi.com/d/cms/node/126

[23:40:41 CEST] michel Kern: http://wiring.org.co/

[23:41:40 CEST] michel Kern: http://fr.wikipedia.org/wiki/Atmel

2012-06-18

http://www.w3.org/2006/03/wn/wn20/instances/synset-phonograph_record-noun-1.rdf

http://www.google.fr/events/dataconnexions2012/

[ANN] Apache Jena 2.7.1 and Jena Fuseki 0.2.2 releases.

2012-06-17

Erreur pendant  Engine N3 run
ERROR in running Drools Inference Engine 
Cause:
Exception executing consequence for rule "DeferredMethodCall" in infrastructure_rules: java.lang.ClassCastException: unif.TripleStoreDrools cannot be cast to java.lang.String

# DeferredMethodCall>> <http://eulergui.sourceforge.net/engine.owl#N3TableModel> <http://java.sun.com/method#setTripleStore> [unif.TripleStoreDrools@7e534778]

21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: java.lang.NullPointerException
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.drools_engine.ParserLink.visitAllURI(ParserLink.java:718)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:290)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:91)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.project.Project.translateToDrools(Project.java:993)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.gui.controller.N3ConversionRefesher.updateKB(N3ConversionRefesher.java:173)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.gui.controller.N3ConversionRefesher.n3SourceChanged(N3ConversionRefesher.java:49)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.project.ProjectChangeSupport.fireN3SourceChanged(ProjectChangeSupport.java:153)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.project.Project.fireN3SourceChanged(Project.java:1434)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.infrastructure.URIModificationChecker$1.doInBackground(URIModificationChecker.java:98)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at eulergui.infrastructure.URIModificationChecker$1.doInBackground(URIModificationChecker.java:94)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at java.util.concurrent.FutureTask.run(FutureTask.java:166)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at javax.swing.SwingWorker.run(SwingWorker.java:335)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1:  at java.lang.Thread.run(Thread.java:722)

http://sketchup.google.com/

https://plus.google.com/101027278427738113449/posts

COMMIT

FIX BasicRuntimeTest.testInferenceString() : with recent modifs, some N3 string literals have """ instead of " , which not optimal but tolerable

:GUIKBAdapter javap:storage _:storage .

should be interpreted as:

storage = GUIKBAdapter.getStorage();

ava.lang.NullPointerException
at eulergui.inference.drools.impl.DeferredMethodCall.doPperformMethodCall(DeferredMethodCall.java:110)
at eulergui.inference.drools.impl.N3JavaMappingBuiltin.acceptList(N3JavaMappingBuiltin.java:1133)
at eulergui.inference.drools.impl.DroolsTripleHandler.acceptList(DroolsTripleHandler.java:190)
at eulergui.drools_engine.ParserLink.visitAllURI(ParserLink.java:681)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:290)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:91)
at eulergui.project.Project.doTranslateN32Drools(Project.java:948)
at eulergui.project.Project.translateN32Drools(Project.java:899)
at eulergui.project.Project.prepareDrools(Project.java:877)
at eulergui.project.Project.doRunDrools(Project.java:831)
at eulergui.project.Project.runDroolsTriples(Project.java:782)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48)

COMMIT

Pave the way to dynamic filling of N3TableModel ( examples/table_app.n3p )

- TripleStoreDrools: in search* methods wrap uri argument as As N3 URI

- add TripleStoreNull ( apply Null design pattern to TripleStore )

- add interface ITripleJavaStore extends ITripleStoreRETE

2012-06-16

http://www.w3.org/2005/04/fresnel-info/manual/

2012-06-15

<jmvanel> but only 1210 with eulergui n3 rule

<rszeno> aprox 860

<rszeno> i mean this are realy connected direct or indirect to eg

<jmvanel> at page 14 in google results in found this thesis : http://ftp.heanet.ie/disk1/sourceforge/r/project/rr/rrztf/Docs/ZainabAlmugbelMCSThesis.pdf

<jmvanel> they cite one of my pages :)

on ohloh.net : I'm the founder and main developer .

Also I provide consulting and development services for the framework, rule based development, semantice web, and more.

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

http://swapoff.org/devtodo.html

http://ontorule-project.eu/deliverables.html

http://identi.ca/jmvanel

https://github.com/Attempto/APE/blob/master/utils/owlswrl/README.md

Video : Zed A. Shaw - The Web Will Die When OOP Dies

Sample application : contact management with table view

contact_table

Attempto : the case of mixing RDF vocabularies : FOAF example

Kaarel's response

In case of ACE View the surface forms that correspond to the IRI are expected to be defined via OWL entity annotation properties. (See the documentation here: http://attempto.ifi.uzh.ch/site/docs/owl_to_ace.html) There is no separately loadable lexicon, i.e. both the axioms and the entity annotations need to be defined in the OWL files. So, in order to control the verbalization you need to add these annotations.

ACE->OWL/SWRL cannot add them because it only sees the DRS and not the lexicon that was used in the creation of the DRS.

> I wonder if ACEWiki has a way to load a lexicon , and I think I saw that.

AceWiki takes the lexicon information form the plain text files in the

data-directory, where there is a file for each word, e.g.

type:trverb

words:contains;contain;contained by;

| If something X is a <1,0> something Y then Y <2,0> X .

| If X <2,0> Y then X is a <1,0> Y .

To "load" a lexicon, just create such files (with just the first 2

lines in each file) and restart AceWiki.

Norbert's response

Norbert points that it's not very good english anyway and gives this humanly equivalent sentence :

% ape.exe -text ' Every person who has a n:homepage and a current project is an interesting contact.' -solo  drspp   
[]
   [A,B,C,D,E]
   object(A,person,countable,na,eq,1)-1/2
   object(B,homepage,countable,na,eq,1)-1/8
   has_part(E,B)-1/
   predicate(C,have,A,E)-1/4
   object(D,project,countable,na,eq,1)-1/12
   property(D,current,pos)-1/11
   has_part(E,D)-1/
   object(E,na,countable,na,eq,2)-1/
   =>
   [F,G]
   object(F,contact,countable,na,eq,1)-1/16
   property(F,interesting,pos)-1/15
   predicate(G,be,A,F)-1/13

The object E and the two has_part(E,*) terms model the "and" direct object complement block .

But the sentence does pass in OWL, lots of this error:

      repair="A reference to this noun either does not exist or is illegal."

Maybe it would be desirable to interpret the verb to have in a special way, in a post processing after APE.

Take this sentence:

Norbert has a currentProjet.

From the FOAF ontology, it is known that currentProjet is a property.

Then , the sentence could be rewritten in Turtle/N3 as (dropping the smeantically poor verb to have) :

Norbert currentProjet _:something.

which is equivalent to (ugly but correct) ACE:

Norbert v:currentProjet something.

2012-06-14

The iri-term in the DRS lemma argument position is a convention that

is only supported by the ACE->OWL/SWRL converter. It is documented

here:

https://github.com/Attempto/APE/tree/master/utils/owlswrl

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

Uploded new snapshots on sf.net : EG 1.11 , EG minimal

Recommended by Cyril :

http://alarmingdevelopment.org/?p=702

http://news.ycombinator.com/

2012-06-13

Tests in error: 
  testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Wait for "Class Component Chooser "JEditTextArea"(..)
  testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*"

Attempto : the case of mixing RDF vocabularies : a FOAF example : Kaarel's response

2012/6/13 Kaarel Kaljurand <kaljurand@gmail.com>

....

i.e. ACE does not support namespaces in the sense that different names have to be used for different things.

In the context of ACE->OWL/SWRL you can have lexicon entries like:

pn_sg('Mary', iri('http://www.example.com/names#Mary'))

I tried this and it works.

I updated my lexicon this way :

cat foaf-lexicon.pl
tv_finsg('has-homepage' ,iri('http://xmlns.com/foaf/0.1/#homepage') ).
tv_infpl('have-homepage' ,iri('http://xmlns.com/foaf/0.1/#homepage') ).
tv_finsg('has-current-project' ,iri('http://xmlns.com/foaf/0.1/#currentProject') ).
tv_infpl('have-current-project'
,iri('http://xmlns.com/foaf/0.1/#currentProject') ).
noun_sg( 'person', iri('http://xmlns.com/foaf/0.1/#Person'), neutr ).

( BTW there must be a better way to write this Prolog, by avoiding pasting the FOAF prefix at every line, and do a string concatenation ).

BTW the iri/1 predicate should be indicated in the doc.

Then I rerun APE :

% ape.exe -uri http://eulergui.sf.net/contact.owl -ulexfile foaf-lexicon.pl -text 'If P is a person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlxml > interesting-contact2.owl

and now the result is exactly as expected :

<Ontology
    xml:base="http://www.w3.org/2002/07/owl#"
    xmlns="http://www.w3.org/2002/07/owl#"
    ontologyIRI="http://eulergui.sf.net/contact.owl">
  <SubClassOf>
    <ObjectIntersectionOf>
      <ObjectIntersectionOf>
<Class IRI="http://xmlns.com/foaf/0.1/#Person"/>
<ObjectSomeValuesFrom>
  <ObjectProperty IRI="http://xmlns.com/foaf/0.1/#homepage"/>
  <Class IRI="http://www.w3.org/2002/07/owl#Thing"/>
</ObjectSomeValuesFrom>
      </ObjectIntersectionOf>
      <ObjectSomeValuesFrom>
<ObjectProperty IRI="http://xmlns.com/foaf/0.1/#currentProject"/>
<Class IRI="http://www.w3.org/2002/07/owl#Thing"/>
      </ObjectSomeValuesFrom>
    </ObjectIntersectionOf>
    <Class
IRI="http://eulergui.sf.net/contact.owl#interesting-contact"/>
  </SubClassOf>
</Ontology>

But ... there is a but ...

If load the resulting OWL/XML file into Protégé + ACE View 1.3.1, I found no way to load my lexicon ( and I looked the doc. ) .

Hence the paraphrases produced are bad .

Moreover , the Lexicon view table is not editable.

I wonder if ACEWiki has a way to load a lexicon , and I think I saw that.

Issue with OWL/XML in EulerGUI

I took the ATTEMPTO example of yesterday :

(Person and (homepage some Thing)) and (currentProject some Thing) SubClassOf interesting-contact

<Ontology
    xml:base="http://www.w3.org/2002/07/owl#"
    xmlns="http://www.w3.org/2002/07/owl#"
    ontologyIRI="http://xmlns.com/foaf/0.1/">
  <SubClassOf>
    <ObjectIntersectionOf>
      <ObjectIntersectionOf>
        <Class IRI="http://xmlns.com/foaf/0.1/#Person"/>
        <ObjectSomeValuesFrom>
          <ObjectProperty IRI="http://xmlns.com/foaf/0.1/#homepage"/>
          <Class IRI="http://www.w3.org/2002/07/owl#Thing"/>
        </ObjectSomeValuesFrom>
      </ObjectIntersectionOf>
      <ObjectSomeValuesFrom>
        <ObjectProperty IRI="http://xmlns.com/foaf/0.1/#currentProject"/>
        <Class IRI="http://www.w3.org/2002/07/owl#Thing"/>
      </ObjectSomeValuesFrom>
    </ObjectIntersectionOf>
    <Class IRI="http://eulergui.sf.net/contact.owl#interesting-contact"/>
  </SubClassOf>
</Ontology>

In fact this is an issue with OWL API and/or Jena. In the N3 translation interesting-contact and homepage are completely missing :

@prefix :        <http://www.w3.org/2002/07/owl#> .

[]    <IRI>   "http://xmlns.com/foaf/0.1/#homepage" .

[]    a       :Ontology ;
      :SubClassOf
              [ a       :ObjectIntersectionOf ;
                :ObjectIntersectionOf
                        [ a       :Class ;
                          <IRI>   "http://xmlns.com/foaf/0.1/#Person"
                        ] ;
                :ObjectSomeValuesFrom
                        [ a       :ObjectProperty ;
                          <IRI>   "http://xmlns.com/foaf/0.1/#currentProject"
                        ]
              ] ;
      <ontologyIRI> "http://xmlns.com/foaf/0.1/" .

[]    <IRI>   "http://www.w3.org/2002/07/owl#Thing" .

I upgraded OWL API to 3.3 , and no better ! :(

OWL API Maven artefacts are on Sonatype repo http://oss.sonatype.org/content/groups/public/

I also updated Pellet on my mvn repo.

2012-06-12

I got an indirect contact here : http://www.automatedbusinesslogic.com/faq

Introducing the Knowledge Graph 'Google's) : not a single reference to Semantic Web :(

http://www.youtube.com/watch?v=mmQl6VGvX-c&feature=youtu.be

Demos with Attempto

2012-06-11

Cyril: bonjour

trouvé la semaine dernière, un framework java de petite taille : http://jodd.org/

TODO:

this runs forever:

eulergui http://dbpedia.org/page/Music_genre

2012-06-10

http://xmlns.com/foaf/spec/

http://sort-of.crabdance.com/deductions-software.com/

New features in EulerGUI

http://www.jedit.org/users-guide/macro-tips.html

Add uri to project

COMMIT

add AddURIToProjectAction in jEdit editor

* new entry "eulergui-add-uri-to-project" in right click menu in jEdit editor

* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props

TODO : documentation of AddURIToProjectAction, LaunchBrowserURIAction

TESTED with abbrevated FOAF URI with http://jmvanel.free.fr/jmv.rdf

Launch Web Browser on N3 term in editor

Mail on the EG list:

There is a new feature in EulerGUI .

When one is in the N3 editor (jEdit) , when right clicking on an N3 (RDF) resource, there is a new menu item "eulergui-launch-uri" .

This menu item launches the default (platform) Web Browser on the URI corresponding to the N3 term at caret or cursor position.

It was TESTED with unabrevated FOAF URI .

I works also with N3 abbreviated resources like foaf:PersonalProfileDocument .

For testing you can open my FOAF Personal Profile :

http://jmvanel.free.fr/jmv.rdf

There is a snapshot of EulerGUI minimal: Download: http://sourceforge.net/projects/eulergui/files/eulergui/1.11/

Implementation notes:

* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props

( alternative at doing a regular jEdit plugin, as I don't know how to embed my plugin in the EulerGUI unique jar )

* TODO : documentation, DownloadURIAction like LaunchBrowserURIAction

Twitted !

Enjoy !

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

Twitt : https://twitter.com/jmvanel/status/211784092428140546

New feature #EulerGUI minimal: Launch Web Browser on N3 term in editor right click menu "eulergui-launch-uri"

Download: http://sourceforge.net/projects/eulergui/files/eulergui/1.11/

http://t.co/Lwr0NOgL

http://www.w3.org/2000/10/swap/log#

COMMIT

add LaunchBrowserURIAction in jEdit editor

* new entry "eulergui-launch-uri" in right click menu in jEdit editor

* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props

( alternative at doing a regular jEdit plugin, as I don't know how to embed my plugin in the EulerGUI unique jar )

TODO : documentation, DownloadURIAction like LaunchBrowserURIAction

TESTED with unabbrevated FOAF URI ( should work also with N3 abbreviated )

2012-06-09

writing jEdit plugins:

http://www.jedit.org/users-guide/writing-plugins-part.html

Thread [AWT-EventQueue-0] (Suspended)
EnhancedMenuItem.<init>(String, String, ActionContext) line: 60
GUIUtilities._loadMenuItem(String, ActionContext, boolean) line: 1897
GUIUtilities.loadMenuItem(ActionContext, String, boolean) line: 447
GUIUtilities.loadPopupMenu(ActionContext, String, JEditTextArea, MouseEvent) line: 354
GUIUtilities.loadPopupMenu(String, JEditTextArea, MouseEvent) line: 298
JEditTextArea.createPopupMenu(MouseEvent) line: 606
JEditTextArea.handlePopupTrigger(MouseEvent) line: 583
MouseHandler.mousePressed(MouseEvent) line: 88
AWTEventMulticaster.mousePressed(MouseEvent) line: 279
TextAreaPainter(Component).processMouseEvent(MouseEvent) line: 6501
TextAreaPainter(JComponent).processMouseEvent(MouseEvent) line: 3321
TextAreaPainter(Component).processEvent(AWTEvent) line: 6269
TextAreaPainter(Container).processEvent(AWTEvent) line: 2229
TextAreaPainter(Component).dispatchEventImpl(AWTEvent) line: 4860
TextAreaPainter(Container).dispatchEventImpl(AWTEvent) line: 2287
TextAreaPainter(Component).dispatchEvent(AWTEvent) line: 4686
LightweightDispatcher.retargetMouseEvent(Component, int, MouseEvent) line: 4832
LightweightDispatcher.processMouseEvent(MouseEvent) line: 4489
LightweightDispatcher.dispatchEvent(AWTEvent) line: 4422
View(Container).dispatchEventImpl(AWTEvent) line: 2273
View(Window).dispatchEventImpl(AWTEvent) line: 2713
View(Component).dispatchEvent(AWTEvent) line: 4686
EventQueue.dispatchEventImpl(AWTEvent, Object) line: 707
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
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: 87
EventQueue$4.run() line: 680
EventQueue$4.run() line: 678
AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method]
ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76
EventQueue.dispatchEvent(AWTEvent) line: 677
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

A game in PHP by Arié http://www.designpattern.fr

Reading "Collective Intelligence in Action" , by Satnam Alag

Exploring named graph in SPARQL database

Finding the list of named graphs

CONSTRUCT { ?g ?pg ?vg }
WHERE { GRAPH ?g { ?X ?P ?V }
        ?g ?pg ?vg }

This does only return empty result ofr the usual servers, which shows that no metadata is associated to graphs in these servers, contrary to usage suggested by the spec (http://www.w3.org/TR/rdf-sparql-query/#namedAndDefaultGraph).

SELECT DISTINCT ?g
WHERE { GRAPH ?g { ?s ?p ?o } }

For DBPedia, this gives rather quickly :

http://www.openlinksw.com/schemas/virtrdf#
b3sonto
urn:rules.skos
facets
dbprdf-label
b3sifp
http://dbpedia.org/void/
http://www.w3.org/2002/07/owl#
http://dbpedia.org
http://dbpedia.org/resource/classes/opencyc-readable#
http://dbpedia.org/resource/classes/umbel#
http://dbpedia.org/resource/classes/yago#
http://www.ontologyportal.org/WordNet#
http://dbpedia.org/resource/classes/opencyc#
http://dbpedia.org/resource/classes#
http://opengraphprotocol.org/schema/
http://www.ontologyportal.org/SUMO#
http://www.dcs.shef.ac.uk/~mrowe/ontologies/sism.rdf
http://dbpedia.org/virt_curi
http://dbpedia.org/schema/property_rules#
http://dbpedia.org/sparql
virtrdf-label
urn:sumo:fao:mappings:data
http://aims.fao.org/aos/geopolitical.owl
http://www4.wiwiss.fu-berlin.de/dbpedia/links/dbpedia_links.zip

When some triples are in a named graph, , DBPedia Virtuoso server returns the same thing if it is queried as GRAPH, or not :

select ?P ?V WHERE { GRAPH ?G { <http://dbpedia.org/void/PeopleFromTorontoStat>   ?P ?V } }

or:

select ?P ?V WHERE { <http://dbpedia.org/void/PeopleFromTorontoStat> ?P ?V }

These triples are in the graph <http://dbpedia.org/void/> .

2012-06-08

http://repmus.ircam.fr/antescofo

http://en.wikipedia.org/wiki/PureData

http://en.wikipedia.org/wiki/Antescofo

Trying Jena Fuseki with existing TDB database

After reading the doc. :

jena.apache.org .. getting-started-with-fuseki

I start Fuseki server this way, reusing the database directory that was made by the EulerGUI test :

./fuseki-server --update --loc=/home/jmv/.eulergui/TDBDatabases/Dataset1 /ds

Then my data is available like this :

http://localhost:3030/ds/query?query=select+*+where+%7B+%3FX+%3FP+%3FV+%7D&output=text

-----------------------------------------------------------------------------------------------------------------------------------
| X                                   | P                                                 | V                                     |
===================================================================================================================================
| <http://example.com#DiamondAge>     | <http://example.com#writeBy>                      | "<http://example.com#NealStephenson>" |
| <http://example.com#DiamondAge>     | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>"           |
| <http://example.com#Neuromancer>    | <http://example.com#writeBy>                      | "<http://example.com#WilliamGibson>"  |
| <http://example.com#Neuromancer>    | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>"           |
| <http://example.com#NealStephenson> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#scifiWriter>"    |
| <http://example.com#MazeOfDeath>    | <http://example.com#writeBy>                      | "<http://example.com#PhilipKDick>"    |
| <http://example.com#MazeOfDeath>    | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>"           |
| <http://example.com#WilliamGibson>  | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#scifiWriter>"    |
| <http://example.com#PhilipKDick>    | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#scifiWriter>"    |
| <http://example.com#PlayerOfGames>  | <http://example.com#writeBy>                      | "<http://example.com#IainBanks>"      |
| <http://example.com#PlayerOfGames>  | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>"           |
| <http://example.com#Ubik>           | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>"           |
-----------------------------------------------------------------------------------------------------------------------------------

Chrome browser also accepts :

http://localhost:3030/ds/query?query= select * where { ?X ?P ?V } &output=text

I can also output RDF

http://localhost:3030/ds/query?query= construct { ?X ?P ?V } where { ?X ?P ?V } &output=xml

, but alas no turtle .

sudo aptitude install ruby

./s-put http://localhost:3030/ds/data default /home/jmv/src/eulergui/examples/po.n3
400 Unknown content type for triples: text/n3; charset=utf-8
http://localhost:3030/ds/data?default

<jmvanel> we must grunt on the list !

<rszeno> they drop n3

<jmvanel> :( alas

<rszeno> is politics

<jmvanel> or lack of time ?

<rszeno> "is not popular"

<jmvanel> not popular among those who only know RDF or JSON, or SEE the world through Protégé or TopBraid glasses

Anyway, RDF works :

 ./s-put http://localhost:3030/ds/data default /home/jmv/jmvanel.free.fr/jmv.rdf

But the preceding content has been removed . I guess s-post would add content. No! s-post also removes preceding content. Maybe there is something in the N3 configuration for set different behavior.

Now I must better understand named graphs.

This stores my FOAF profile in the named graph http://eulergui.sf.net/graph :

./s-put http://localhost:3030/ds/data http://eulergui.sf.net/graph /home/jmv/jmvanel.free.fr/jmv.rdf

The key phrase from the spec. about named graphs :

When querying a collection of graphs, the GRAPH keyword is used to match patterns against named graphs. GRAPH can provide an IRI to select one graph or use a variable which will range over the IRI of all the named graphs in the query's RDF dataset.

The use of GRAPH changes the active graph for matching graph patterns within that part of the query. Outside the use of GRAPH, matching is done using the default graph.

So, to retrieve the triples in this named graph, the simplest is :

http://localhost:3030/ds/query?query= construct { ?X ?P ?V } where { GRAPH <http://eulergui.sf.net/graph> { ?X ?P ?V } } &output=xml

NOTE: this does not work:

http://localhost:3030/ds/query?query= construct FROM NAMED <http://eulergui.sf.net/graph> { ?X ?P ?V } where { ?X ?P ?V } &output=xml

Search for "TDB Jena GUI"

Idea: I could use the N3 shell to pilot the internal TDB database via its API.

This would work much like the eXist shell.

Pilot, that is : manage the named graphs, query, insert

Posted here : http://stackoverflow.com/questions/5332937/desktop-sparql-client-for-jena-tdb/10945860#10945860

http://stackoverflow.com/questions/5332937/desktop-sparql-client-for-jena-tdb

If you don't already expose your TDB dataset via HTTP try using Fuseki as it is ridiculously easy to use and can be run just on your local machine when necessary to make your TDB store available via HTTP for use with my tool e.g.

java -jar fuseki-0.1.0-server.jar --update --loc data /dataset

Please see the Fuseki wiki for more information on running Fuseki and the various options. In the above example Fuseki is run with SPARQL Update enabled (the --update flag), using the TDB dataset located in the directory data (the --loc data argument) and with a base URI of /dataset for the data.

Once running you can use my tool to connect to a Fuseki server by going to File > New Generic Store Manager, selecting the Fuseki tab from the dialog that appears, entering the URI http://localhost:3030/dataset/data and then clicking Connect to Fuseki

He's speaking of http://www.dotnetrdf.org/

2012-06-07

COMMIT

- add TripleStoreTDB : Jena TDB RDF database backend TODO : test

- RuleBasedApplicationStarter : add accessor getTripleStoreRETE() ; refactor

- TableRowTransferHandler : enhancement for typed Java primitive types corresponding to N3 literals ( coming from player app)

- ApplicationKB : replace this.insert() by tripleStore.store()

2012-06-06

<jmvanel> Tail-Call Optimization in Scala resembles Prolog's

2012-06-05

Updated pellet-2.2.2.pom

ls -ltr target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar

-rw-r--r-- 1 jmv jmv 44278425 5 juin 21:41 target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar

After updating pellet-2.2.2.pom :

ls -ltr target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar

-rw-r--r-- 1 jmv jmv 43841811 5 juin 22:01 target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar

Updated pellet-2.2.2.pom on EulerGUI Maven depot ; kept old in ~/src/eulergui/pellet-2.2.2.pom

COMMITS

migrate to Jena 2.9.0-incubating ; add Jena TDB , cf http://jena.apache.org/download/maven.html

TESTS pass

TODO : upgrade dependencies of Pellet towards Jena

- In N3TableModel.setValueInTableModel(ITriple triple) , put a Java Typed Value in the TableModel ( for Boolean, etc )

tried in N3TableModelTest

- add in N3JavaHelper ( for the musical player app )

/** the inverse function of the preceding

* @return the corresponding N3 value */

public static String getN3FromJavaTypedValue(Object value)

- add N3TermHelper.getN3FromJavaTypedValue(value)

2012-06-04

COMMIT

FIX N3TableModel.addColumn() ; now @Deprecated ; should use addColumnURI

FIX previous FIX on N3TableModel

Committed revision 3090.

Trial of Google text-to-speech in Chrome 11

In tranlate :

EulerGUI is the best tool for the Semantic Web ==> no maggie is the best 2070 win

the lunch is on the table ==> no lunch is on the table

https://www.google.com/chrome?platform=linux&hl=fr

http://www.youtube.com/watch?v=TIuz36zF2pc

2012-06-03

http://www.youtube.com/watch?v=_-6mhdjE1XE

COMMIT

Finish migration from TableModelFromN3 to N3TableModel

TODO leveraging on this , achieve real time updates: 1) when the N3 source is saved; 2) when result is updated because of relaunch

DBPedia tests

TODO : DBPedia connector : generated URI from name, select relevant properties according to class

http://dbpedia.org/resource/John_Lennon

dbpedia-owl:abstract

dbpedia-owl:background solo_singer

dbpedia-owl:birthDate 1940-10-09 (xsd:date)

dbpedia-owl:birthPlace dbpedia:Liverpool

dbpedia-owl:deathDate 1980-12-08 (xsd:date)

dbpedia-owl:genre

dbpedia-owl:instrument

dbpedia-owl:thumbnail

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

http://dbpedia.org/page/Imagine_(song)

dbpprop:fromAlbum

dbpedia:Imagine_(album)

dbpprop:genre

dbpedia:Rock_music

dbpedia-owl:abstract

dbpedia-owl:writer

dbpprop:artist

dbpprop:length

dbpprop:label

replace Unix shell with interpreted Scala ?

<jmvanel> i was wondering if I could replace Unix shell with interpreted scala

<jmvanel> suppose that i want to call gedit on all *html files not

containing "Creative Commons"

<jmvanel> not trivial in sh

<jmvanel> first I need the equivalent of ls

<jmvanel> then getting the lines of a file

* asflierl (~asflierl@p5B0EA88A.dip.t-dialin.net) a rejoint #scala

<jmvanel> filtering the list I know how to do

* trepidacious est parti (Ping timeout: 250 seconds)

<jmvanel> then calling executable by Java System.exec()

<jamil_1> scala.sys.process._ may help you

<jamil_1> Process("ls").lines.filter(_.length < 5).toList

<jmvanel> thanks jamil_1 ;

2012-06-01

Tests in error

Failed tests:   testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, 

Tests in error: 
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical)
  testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
  testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
  test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules)
  test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
  testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded

Tests run: 183, Failures: 1, Errors: 9, Skipped: 0

Classification mechanism for ontologies

<jmv_> the starting point for me was : what info is missing in a site like prefix.cc ?

<jmv_> and I thought that the topic is the main thing,

<jmv_> and dbpedia is a large reference for topics

<jmv_> otherwise an ontology is its own descrption

<jmv_> normally everything has rdfs:label and comments

<rszeno> but the ontologies from prefix.cc have already their own description, need only a classification mechanism

<rszeno> :)

<rszeno> we think in paralel, :)

<rszeno> yes, agree

<rszeno> agregating, skos, dbpedia, void, prefix.cc

<rszeno> anyway is hard to search

<jmv_> I'd like to have a SPARQL for ontologies ;

<jmv_> for example I could ask for ontologies having dct:subject :)

Experimenting with ATTEMPTO and several prefix URI's

% ape -uri http://dbpedia.org/resource/ -text 'if X v:foaf_publications something then X is a n:Scientist.' -solo owlfsspp
Ontology(
   http://dbpedia.org/resource/
   ObjectPropertyDomain(
      ObjectProperty(:foaf_publications)
      Class(:Scientist)
   )
)

 % ape -uri http://dbpedia.org/resource/ -text 'if X v:foaf_publications something then X is a n:Scientist.' -solo owlxml
<?xml version="1.0" encoding="UTF-8"?>

<Ontology
    xml:base="http://www.w3.org/2002/07/owl#"
    xmlns="http://www.w3.org/2002/07/owl#"
    ontologyIRI="http://dbpedia.org/resource/">
  <ObjectPropertyDomain>
    <ObjectProperty IRI="http://dbpedia.org/resource/#foaf_publications"/>
    <Class IRI="http://dbpedia.org/resource/#Scientist"/>
  </ObjectPropertyDomain>
</Ontology>

<jmv_> I just had an idea :

eg foaf:

<jmv_> would download the FOAF ontology, reusing prefix.cc

2012-05-31

Debugging demo with JLabel dynamically added

Here is the order of events:

#TRACE ( "FocusLostEvent" _:sk_JTEXT_FIELD_35 _:sk_FIELD_33 "gui:newValue" "JMV" )
#TRACE ( "gui:FocusLostEvent new_value" <http://deductions.sf.net/runtime#event1> _:sk_FIELD_33 " ?RESOURCE ?PREDICATE ?VALUE" "    " _:sk_RESOURCE_37 <http://jmvanel.free.fr/ontology/examples/person#name> "JMV" )
#TRACE ( _:sk_RESOURCE_37 ":name" "JMV" "is a nice guy." )
#TRACE ( "generic_to_java-rules.n3 >>> implement gui:components" <http://jmvanel.free.fr/ontology/examples/person#FORM> _:sk_L_38 )
DeferredMethodCall.assign(): # DeferredMethodCall>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> <http://java.sun.com/method#forceRepack> [<http://jmvanel.free.fr/ontology/examples/person#FORM>]
 ; calledObject deductions.runtime.GUIKBAdapter@4f8befbb , arguments [# Assign>> <http://jmvanel.free.fr/ontology/examples/person#FORM> ==> class JPanel : javax.swing.JPanel[,0,0,210x290,invalid,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
]
DeferredMethodCall.assign(): # DeferredMethodCall>> <http://jmvanel.free.fr/ontology/examples/person#FORM> <http://java.sun.com/method#add> [_:sk_L_38]
 ; calledObject javax.swing.JPanel[,0,0,210x290,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] , arguments []
DeferredMethodCall.assign() : argument not ready: _:sk_L_38
#TRACE ( "generic_to_java-rules.n3 " _:sk_L_38 " a java:javax-swing-JLabel" )
DeferredMethodCall.assign(): # DeferredMethodCall>> <http://jmvanel.free.fr/ontology/examples/person#FORM> <http://java.sun.com/method#add> [_:sk_L_38]
 ; calledObject javax.swing.JPanel[,0,0,210x290,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] , arguments [# Assign>> _:sk_L_38 ==> class JLabel : javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=He's a nice guy.,verticalAlignment=CENTER,verticalTextPosition=CENTER]
]

So, in this rule, triples in right hand side occur in reverse order:

{ # rule to translate the gui:components (containment) property in Java terms
  ?CONTAINER gui:components ?COMPONENT .
} => {
  ?CONTAINER javam:add ( ?COMPONENT ) .
  javapr:GUIKBAdapter javam:forceRepack ( ?CONTAINER ) .
 _:d eg:trace ( "generic_to_java-rules.n3 >>> implement gui:components" 
                 ?CONTAINER ?COMPONENT
  ) .
}.

Moreover, also in this rule, gui:components, (and hence its consequences) occur before ?L instantiation (which creates the "argument not ready" message in Deferred Method Call attempt) :

{ ?P per:name ?N .
  ?N log:equalTo "JMV" .
} => {
   ?L a gengui:Label
      ; java:text "He's a nice guy." .
   per:FORM gui:components ?L .
   _:d eg:trace ( ?P ":name" ?N "is a nice guy." ).
} .

So, again, in this other rule, triples in right hand side occur in reverse order.

Coincidence , or systematic ? ==> Question to ask on to Drools IRC or list .

COMMIT

FIX demo with Swing Componernt dynamically added : Window.pack() was not called late enough

demo person-app.n3p in the dynamic case where one enters "JMV" in input field

2012-05-30

https://docs.google.com/spreadsheet/newform?ref=submitpage

COMMIT

fix windows generated by swing3.n3p rule base: now the newly appeared windows are packed after launching Drools

Glad because I fixed a small item that was apparent in the demo

When a missing N3 prefix was found and fixed, the file is saved automatically.

Article : New Semantic Web rules and new reasoning framework

Revue : ???????????????????,

Abstract

Nassim Douali a* MD., MSc, Jos De Roo b PhD, Jean Marc Vanel c, Marie-Christine Jaulent a PhD

a INSERM UMR_S 872, Eq 20, Medicine Faculty – Pierre and Marie Curie University (Paris 6), France. nassim.douali@crc.jussieu.fr

b Agfa HealthCare, Agfa HealthCare NV, Moutstraat 100, 9000 Gent, Belgium

c Déductions SARL, 27 ave. du Maine, 75015 Paris

Abstract

Semantic Web attracted much attention both for academic and industry research. It is not only considered as the next step of world wide web, but several Semantic Web applications are used in many areas like medicine. Ontologies and rules play a key role in knowledge representation and semantic data access. However, traditional logic becomes less suitable in a domain in which the concepts to be represented do not have a precise definition and relationship between concepts is fuzzy. In this paper we describe a new semantic web rules based on Case Based Fuzzy Cognitive Maps and notation3, and we describe also a new reasoning framework.

Keywords

Case Based Fuzzy Cognitive Maps, Fuzzy Logic, Decision Making, Notation3, Artificial Intelligence, Decision Support Systems, Knowledge Representation, Semantic web.

Ideas

Medicine researchers, and other disciplines as well, are in need of a simple tool for reasoning and decision making services, which encompasses: design knowledge bases, import models and data from several sources, launch inference, analyze results. EulerGUI Minimal is the Semantic Web and rule designer swiss knife; it is flexible, Open Source and Multi-platform. The Minimal EulerGUI has exactly the same licence as Maximal (full) EulerGUI, that is LGPL. It is just a simpler version for Semantic Web users, with only one inference engine available: Euler EYE engine ( http://eulersharp.sourceforge.net/ ).

The project gather a growing Open Source, research and teaching community, itself aggregation of several communities: Open Data, ontology, rules engines, Controled Natural Languages.

The basic features are:

The more sophisticated features of EulerGUI minimal are:

When a reasoning engine or other tool has been designed by researchers, the laboratory team often needs to make a end user software application on top of the reasoning engine to disseminate the knowledge, and facilitate usage to non researchers and non-computer scientist. Generally, the developers attached to the laboratory must start a development from scratch for input form, input validation, visualization of results. Here is where the other "incarnation", full EulerGUI, comes to help. Beyond "pure" reasoning, it allows to also reason dynamically about software objects like graphics, network connections and databases. EulerGUI is both an Interactive Development Environment (IDE), and a framework used for making application. It can be used by developers in laboratories to make applications on top of the reasoning engine, either local or web. This is achieved by reusing the Knowledge Representation, in the form of an ontology, together with Decision Logic, supplemented by application logic, and a choice of generic visualizations like table, forms, tree, graphs. All this is interpreted in real time by a RETE Open Source Java rule engine, Drools. This resembles RAD (Rapid Application Development), but rather than being a disposable prototype, it is based on a reusable business model.

generated_form_spec => generated_form

Figure NNN : the generic form generator

Figure NNN : the EulerGUI framework architecture diagram

2012-05-28

Video : EulerGUI minimal : a GUI for the Semantic Web

Show how to download and visualize an ontology by its prefix, like FOAF ( friend of a friend), make queries about this ontology, and edit an N3 file for one's personal profile.

Scenario of the demo here:

http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/ideas-videos.html#L32

Download EulerGUI minimal : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L953

Tags: Semantic Web, RDF, Notation3, rule, FOAF, ontologies

REJECTED by youtube , because too long !

<jmvanel> to upload above 15 mn , i must give them my phone number !

<jmvanel> on the upload page , the first time.

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

<lcpvrr> we can imagine create a thid system starting from two other system

<rszeno> McCarthy 1978, then Guha

<lcpvrr> I do not know these guys

<rszeno> most of what is used now and in the past in ai and programming is more or less McCarthy contribution

<lcpvrr> I think now understand about context

<lcpvrr> thank you

<rszeno> :)

<rszeno> you are welcome, :)

<rszeno> i didn't know that Guha, Liskov and Moore was McCarthy students

<rszeno> now one more step, combinatory calculus, :)

<lcpvrr> why not :)

<rszeno> need lambda calculus before, are tied togheter

<rszeno> is simple to start with both

<rszeno> i ignored combinatory calculus a long time mainly because i didn't find something useful to do with it

<rszeno> i was convinced the only application is in study complexity but accidentaly i found that is not realy true

<lcpvrr> so not only to manage all possibles states ?

<rszeno> ?

<lcpvrr> so I do not understans you

<rszeno> what i said about cl?

<lcpvrr> the only application is in study complexity

<rszeno> ah,

<rszeno> can be used to simplify complex expression, to reduce them to the minimal form

<rszeno> are only two operators in cl, S and K and no variable

<lcpvrr> starting system state constraint/ivariant are express with expression (FOL for example)

<rszeno> yes

<rszeno> and this can be converted to a lambda expression

<rszeno> but lambda expression can be converted to cl

<rszeno> some expression can be reduced to a simple form or prove that there is no other simple form

<rszeno> then you can convert back to lambda and back to fol

<lcpvrr> what is cl ?

<rszeno> combinatory logic

<rszeno> a formalism

<lcpvrr> ok

<rszeno> most of this can be done automatic

<rszeno> i don't know about reduction, yet

<rszeno> look scary but is not

<rszeno> http://www.madore.org/~david/programs/unlambda/

<rszeno> not too good to start with it, :)

<rszeno> David Madore is french if i'm not wrong, :)

<rszeno> anyway i guess you prefere this then a math book, :)

<lcpvrr> I am not good in math

<rszeno> you can open djvu?

<lcpvrr> no

<rszeno> you don't have ubuntu installed?

<rszeno> i don't find a pdf version, only djvu

<rszeno> http://vew.0catch.com/books/Wolfengagen_CLP-2003-En.djvu

Pitivi bug in rendering

the 1rst ogv has resolution : 1280x752 .

the 2nd ogv is 1312x720 .

pitivi -i -a eulergui_mini_intro.ogg eulergui_sf_net.png eulergui_sf_net_eg_mini.png eg_minimal.webm-2.ogv eg_minimal.webm-3.ogv &

 % pitivi eg_minimal.xptv
ERROR [13082] [0x7fc70decd700] "<Pipeline at 0x3f46fd0>"        pipeline          mai 29 10:54:16      _handleErrorMessage: error from /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc (__main__.GstFileSrc): GStreamer a rencontré une erreur générale de flux. (gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc:
streaming task paused, reason not-linked (-1)) (/usr/lib/pitivi/python/pitivi/pipeline.py:858)
Traceback (most recent call last):
  File "/usr/lib/pitivi/python/pitivi/pipeline.py", line 901, in _binPadAddedCb
    stream = get_stream_for_caps(caps, pad)
  File "/usr/lib/pitivi/python/pitivi/stream.py", line 351, in get_stream_for_caps
    stream_type = get_pad_type(pad)
  File "/usr/lib/pitivi/python/pitivi/stream.py", line 321, in get_pad_type
    return caps[0].get_name().split('/', 1)[0]
IndexError: list index out of range
ERROR [13082] [0x7fc70decd700] "<Pipeline at 0x3f46fd0>"        pipeline          mai 29 10:54:16      _handleErrorMessage: error from /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc (__main__.GstFileSrc): GStreamer a rencontré une erreur générale de flux. (gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc:
streaming task paused, reason not-linked (-1)) (/usr/lib/pitivi/python/pitivi/pipeline.py:858)

<jmvanel> it's very time consuming to record video :(

<jmvanel> but I think it pays more than doing in-person presentations

 pitivi -i -a eulergui_mini_intro.ogg eulergui_sf_net.png eulergui_sf_net_eg_mini.png eg_minimal.webm-2.ogv eg_minimal.webm-3.ogv &

Building EulerGUI minimal

svn propset svn:mime-type text/html *.html

/join #vivo

TODO EulerGUI (added in Manual )

2012-05-27

extra HDMI display on laptop HP 4310S : slow mouse

https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1004958

http://www.jedit.org/index.php?page=devel

9th Extended Semantic Web Conference (ESWC 2012)

http://www.deri.ie/research/events/

http://graphite.ecs.soton.ac.uk/

http://alexsmirnov.wordpress.com/category/semantic-web/ Google Apps Web Services Hub

Twit: "state of the art" in Java development

The "state of the art" in Java development is use Object Oriented domain model with relationnal databases.

These are 2 obsolete techniques, plus the worries of combining them #ORM .

The issue: use rule engine + SPARQL databases, as with #EULERGUI .

Building jEdit_4.5.1

cd ~/src/jEdit_4.5.1/
ant build

http://subversion.apache.org/

Working on the Lotico RDF database

Actually the URI to use with Jena ARQ and EulerGUI is :

http://www.lotico.com:3030/lotico/query

Trond Anders Sorvoja is the only other one having interest in business-rules-engine on Lotico/Meeetup .

I sent him a message through Facebook ( could do better since the members FOAF URI's are not on lotico database ) .

I try the all graph query in ARQ command line :

CONSTRUCT { ?s ?prop ?val . } WHERE { ?s ?prop ?val . }

I run ARQ with the EulerGUI jar like this:

java -cp $HOME/.m2/repository/eulergui/eulergui/1.11-SNAPSHOT/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar \
  arq.remote --file all_graph.rq --service=http://www.lotico.com:3030/lotico/query > all_graph.lotico.rdf &

So far it runs, but the arq.remote keeps all in memory before writing to disk :( .

According to help, the arq.remote command has no way to save directly in Turtle/N3, but in fact it does by default .

In fact it ran in the time to write the mail to Marco, and the result has size : 204,112,341 bytes.

Then I try opening the lotico local dump with EulerGUI .

This time, I run EulerGUI like this:

eg all_graph.lotico.n3

Then I add this query to the project :

{ <http://www.lotico.com/resource/member_13080252>
  ?p ?o  .
} => { 
  <http://www.lotico.com/resource/member_13080252>
  ?p ?o  .
} .

Yap Prolog takes 2.3 Gb and cannot release them until the result is passed to the Java side, which should not take a large amount of memory (because the result is small). But the fact is that the run lasts forever, and there is an error :

YAP 6.2.3 (i686-linux): Wed Feb  8 11:14:50 CET 2012
starting 68 [msec cputime] 79 [msec walltime]
GET /home/jmv/src/eulergui/examples/all_graph.lotico.n3 SC=1794184
GET /home/jmv/src/eulergui/examples/all_graph.lotico-query.n3 SC=1
networking 73258 [msec cputime] 104512 [msec walltime]
Exception in thread "Thread-8" java.lang.OutOfMemoryError: Java heap space
	at java.util.Arrays.copyOf(Arrays.java:2367)
	at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130)
	at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114)
	at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415)
	at java.lang.StringBuilder.append(StringBuilder.java:132)
	at euler.Process.run(Process.java:90)
	at java.lang.Thread.run(Thread.java:722)

I should debug this .

So such a large case cannot run with EulerGUI (I've already done some adaptations for larges cases, but more are needed). Now I'll kill the run, and test with Euler directly:
% date ; eye --nope all_graph.lotico.n3 --query all_graph.lotico-query.n3 > all_graph.lotico-result.n3

Id: euler.yap 5355 2012-05-23 22:07:32Z josd
YAP 6.2.3 (i686-linux): Wed Feb  8 11:14:50 CET 2012
starting 52 [msec cputime] 60 [msec walltime]
GET all_graph.lotico.n3 SC=1794184
GET all_graph.lotico-query.n3 SC=1
networking 72539 [msec cputime] 103797 [msec walltime]
TC=44 TP=88 BC=0 BP=45 PM=0 CM=0 FM=0 AM=0
reasoning 4212 [msec cputime] 4824 [msec walltime]

which means that it takes 103 seconds to read the 207Mb file, and only 4 seconds to infer.

I also tested the N3 editor in EulerGUI (jEdit) on the large file. I does not open after several minutes, and the memory slowly increeses around 1.2Gb and the CPU at 100% . And it's in the AWT event thread, so the EulerGUI applicaiton is frozen. I killed it.

As the jEdit in EulerGUI is not the latest, I try with the latest jEdit 4.5.1 .

It displays a warning popup about the size , which recommends to disable syntax highlight, or just have local highlight. But even then, nothing appears in the editor for many minutes :( . I must report that to jEdit .

So, what is not surprising, Euler cannot compete with Jena Fuseki to query such a large data.

What is planned for EulerGUI is to add internal Fuseki storage, to be used for for big data, and persistence, see :

http://eulergui.sourceforge.net/documentation.html#L9989

Moreover, there are plans to leverage on an N3 rule base to generate SPARQL queries, see:

http://eulergui.sourceforge.net/backward_chaining_sparql.html

2012-05-26

Trond Anders Sorvoja

cd ~/src/eulergui/examples/
java -cp $HOME/.m2/repository/eulergui/eulergui/1.11-SNAPSHOT/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar \
   arq.remote  --file lotico.rq --service=http://www.lotico.com:3030

https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1004958

http://www.lotico.com/browser/?uri=http://www.lotico.com/resource/member_13080252

http://fr.wikipedia.org/wiki/MetaPost

Nice work on Genifer NL GUI :

https://mail.google.com/mail/u/0/?shva=1#inbox/13789a6f5d7422a1

Ideas for a video on EulerGUI

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

when deactivating person-events.n3 in person-app.n3p :

JavaObjectsRetractionListener.retrieveJavaObjectFromName(): javax.swing.JPanel[,0,0,234x273,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]
java.lang.IllegalArgumentException: argument type mismatch
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 eulergui.inference.drools.impl.JavaObjectsRetractionListener.invokeRemoveMethod(JavaObjectsRetractionListener.java:98)
at eulergui.inference.drools.impl.JavaObjectsRetractionListener.objectRetracted(JavaObjectsRetractionListener.java:36)
at org.drools.event.WorkingMemoryEventSupport.fireObjectRetracted(WorkingMemoryEventSupport.java:78)

FIXED warnings Resource leak: 'XXX' is never closed

2012-05-25

Interesting discussion on KJena list :"Storing jena model to Non SQL Datastore"

I just answered to an old job message from Google .

http://agi-conf.org/2012/schedule/

http://semtechbizsf2012.semanticweb.com/

oem-laptop: ~/src/eulergui/ % 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

com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/9/D/A/9DA5A8AB4375CDF8E783B740A8C81D12.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:906)
at eulergui.project.Project.prepareDrools(Project.java:878)
at eulergui.project.Project.doRunDrools(Project.java:832)
at eulergui.project.Project.runDroolsTriples(Project.java:783)
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)

COMMIT

- found an error in pricing sample : pricing.n3 :

typename a owl:ObjectProperty;

should be:

typename a owl:DatatypeProperty;

- replacing princing with pricing

- accessing swing-rules via relative URI

2012-05-24

http://en.isep.fr/academic-research/rdi

Sent mail to DCO team ( error in xmlns ).

http://www.debugit.eu/contact.html

Bug :
- ajouter une nouvelle propriété.
- remplir une cellule de cette propriété


Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 26, Size: 26
   at java.util.ArrayList.rangeCheck(Unknown Source)
   at java.util.ArrayList.get(Unknown Source)
   at deductions.runtime.swing.EditCellListener.tableChanged(EditCellListener.java:37)
   at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
   at javax.swing.table.AbstractTableModel.fireTableCellUpdated(Unknown Source)
   at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source)
   at taxochronos.Playlist.addNewColumnToModel(Playlist.java:124)
   at taxochronos.gui.PlayerGUI.addNewColumn(PlayerGUI.java:514)
   at taxochronos.gui.AddPropertyUI$1.actionPerformed(AddPropertyUI.java:71)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
   at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
   at javax.swing.DefaultButtonModel.setPressed(Unknown Source)

upload a new EulerGUI minimal

<jmv> will soon upload a new EulerGUI minimal

<jmv> a bit smaller - I had reports of failures of EG mini , but never any precision

# uncomment 1 line :

gvim src/main/java/**/EulerGUI.java

mvn -Dmaven.test.skip=true -f pom_minimal.xml package

java -jar target/eulergui_minimal-1.11-SNAPSHOT-jar-with-dependencies.jar

2012-05-23

http://www.w3.org/2001/02pd/gv

UBUNTU_MENUPROXY= amaya &

COMMIT :

add to doc : Why use a Rule Engine? in Drools engine documentation ;

http://sourceforge.net/apps/mediawiki/vivo/index.php?title=Development

PHP Rules - A lightweight, forward-chaining inference engine based on the "Rule Archetype Pattern"

Running ATTEMPTO APE from git on Ubuntu

git clone git://github.com/Attempto/APE.git
cd APE
chmod u+x ./make_exe.sh
sudo apt-get install swi-prolog
 ./make_exe.sh
 ./ape.exe

2012-05-21

Fixing the form generator with pricing sample

<jmvanel> it's not clean ... enough .

<jmvanel> found an error in pricing sample : pricing.n3 :

typename a owl:ObjectProperty;
 rdfs:domain ConsumerType;
 rdfs:range xsd:string.

<jmvanel> and it's by Luc

<jmvanel> should be:

typename a owl:DatatypeProperty;
 rdfs:domain ConsumerType;
 rdfs:range xsd:string.

<jmvanel> but that's interesting, as such errors could be checked by rules ,

<jmvanel> or maybe just by OWL ontology for OWL, plus generic rules for OWL

COMMIT

Indirect instantiation through variable containing Java type ( ?FEATURE )

missing feature was enabling deferred method calls with Java property results ( ?R ).

This allowed to simplify src/main/resources/eulergui/gui/controller/application-rules.n3

test suite PASSES!

{ ?GUI a java:n3_project-ProjectGUI .
  java:n3_project-ProjectGUI soft:hasResultFeature ?FEATURE .
} => {
  ?Action a ?FEATURE ; javam:setProjectGUI( ?GUI ) .
  ?GUI javap:resultManagement ?R .
  ?R javam:addAction ( ?Action ) .
}.

2012-05-20

rule "application-rules.n3 2"
when
  $GUI_reference : n3_project.ProjectGUI()
  Assignment( $GUI : name, reference == $GUI_reference )
  n3_project.ProjectGUI( $R_reference : resultManagement , this == $GUI_reference )
  $Triple_1 : Triple( subject == "<http://java.sun.com/class#n3_project-ProjectGUI>", predicate == "<http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature>", $FEATURE : object )
then
  Triple newTriple;
  TripleResult newTripleResult;
  String $Action = Triple.resource("Action") ;
  newTriple = new Triple(  );
  newTriple.setSubject( $Action );
  newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
  newTriple.setObject( $FEATURE );  insertLogical( newTriple );
  Object $Action_reference =  Class.forName(  eulergui.util.N3TermHelper.makeClassName(  Triple.unwrapN3URI( $FEATURE ) ) ) . newInstance();
;
  insertLogical( new Assignment( $Action.toString(), $Action_reference ));
  insertLogical( $Action_reference );
  DeferredMethodCall dpa_Action5 = new DeferredMethodCall();
  dpa_Action5.setSubject($Action.toString() );
  dpa_Action5.setPredicate( "<http://java.sun.com/method#setProjectGUI>" );
  ArrayList argumentsList5 = new ArrayList();
  argumentsList5.add( $GUI );
  dpa_Action5.setObjects( argumentsList5 );
  insertLogical( dpa_Action5 );
  (  ( n3_project.ResultManagement )  $R_reference ) . addAction(   (  ( Object )  $Action_reference )  );
end

Grave: Drools compile ERROR: Rule Compilation error : [Rule name='application-rules.n3 2']

application_rules_n3_1/Rule_application_rules_n3_2_582693992cd44414b4db57f66983f495.java (25:1980) : The method addAction(Action) in the type ResultManagement

is not applicable for the arguments (Object)

How to change tooltip background color in Unity and eclipse ?

http://askubuntu.com/questions/70599/how-to-change-tooltip-background-color-in-unity

Install and open gnome-color-chooser.

Go to Specific → Tooltips and put black foreground over pale yellow background.

No need to restart for me. – ubuntudroid Apr 3 at 14:21

2012-05-18

Albert Lejeune

http://www.mantech.uqam.ca/enseignants/fiche.php?id=51

2012-05-17

URICacheImpl.getURITimeStamp(): http://nemo.nic.uoregon.edu/ontologies/NEMO.owl : java.net.SocketException: Trop de fichiers ouverts
URICacheImpl.getURITimeStamp(): http://nemo.nic.uoregon.edu/ontologies/NEMO.owl : java.net.SocketException: Trop de fichiers ouverts
URICacheImpl.getURITimeStamp(): http://nemo.nic.uoregon.edu/ontologies/NEMO.owl : java.net.UnknownHostException: nemo.nic.uoregon.edu

Could not load N3 source from URL http://nemo.nic.uoregon.edu/ontologies/NEMO.owl
ERROR in reasoning with External Prolog: [--nope, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, /home/jmv/.eulergui/n3_cache/owl-subclass-assertions-to-rules.n3_6619285382926826495.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, /home/jmv/.eulergui/n3_cache/variableSubstitution.n3_4996882872687718712.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /home/jmv/.eulergui/n3_cache/swrl-n3-rules.n3_467287758364091539.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /tmp/eg-5173904991530601087.n3, --query, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3]
Cause:
java.lang.RuntimeException: ** ERROR ** /tmp/eg-5173904991530601087.n3 ** invalid_document(after_line(275))

2012-05-15

issue with Drools on owl-rules.n3 during translation :

oem-laptop: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/deductions/n3_nojs/ % 15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2:  at java.util.ArrayList.rangeCheck(ArrayList.java:604)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2:  at java.util.ArrayList.get(ArrayList.java:382)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2:  at eulergui.inference.drools.impl.LogBuiltins.acceptAntecedentSubjectList(LogBuiltins.java:214)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2:  at eulergui.inference.drools.impl.DroolsTripleHandler.acceptAntecedentSubjectList(DroolsTripleHandler.java:1251)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2:  at eulergui.drools_engine.ParserLink.visitAllURI(ParserLink.java:749)

2012-05-13

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
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)
at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:114)
 ... 39 more

<jmv_> RDFa 1.1 http://www.w3.org/News/2012#entry-9442

COMMIT

After Drools/N3 engine update, simplify EulerGUI configuration file :

src/main/resources/eulergui/gui/controller/application-rules.n3

TESTS : BasicRuntimeTest, TestDroolsQuery and TestGenericGuiGenerationInsertLogicalRefactorRules pass

test suite should pass

EulerGUI minimal : remove unused dependencies

mvn -Dmaven.test.skip=true -f pom_minimal.xml install

Now there is a reduction of 12Mb at 31Mb :

-rw-r--r-- 1 jmv jmv 31442274 13 mai 10:03 /home/jmv/.m2/repository/eulergui/eulergui_minimal/1.11-SNAPSHOT/eulergui_minimal-1.11-SNAPSHOT-jar-with-dependencies.jar

I didn't use dependencies excludes :

http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html

2012-05-12

Implementing "indirect instantiation through variable containing type"

Test:

:app :hasComponentClass java:javax-swing-JLabel .
{ :app :hasComponentClass ?COMP .
} => {
   ?C a ?COMP ; javam:setText( "Hello!" ) .
}.

Assert : a JLabel must be in the KB, with the right "text" property.

Bug report for Drools : on GitHub

<jmv_> conan, I updated my pull request https://github.com/droolsjbpm/drools/pull/118

<jmv_> I should have done a special new branch , but It think it's good enough.

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 .

{
  ?GUI a java:n3_project-ProjectGUI
  ; javap:resultManagement ?R .
  java:n3_project-ProjectGUI soft:hasFeature ?FEATURE .
} => {
   ?Action a ?FEATURE ; javam:setProjectGUI( ?GUI ) .
   ?R javam:addAction ( ?Action ) .
}.

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_8ea63c30d1004a678f4d3b2e2b0291be.java (22:1642) : $R cannot be resolved

The generated Drools :

rule "bbeuler_project.xml.0.n3 0"
when
  $GUI_reference : n3_project.ProjectGUI()
  Assignment( $GUI : name, reference == $GUI_reference )
  n3_project.ProjectGUI( $R_reference : resultManagement , this == $GUI_reference )
  $Triple_1 : Triple( subject == "<http://java.sun.com/class#n3_project-ProjectGUI>", predicate == "<http://deductions.sf.net/ontology/software_applications.owl.n3#hasFeature>", $FEATURE : object )
then
  Triple newTriple;
  TripleResult newTripleResult;
  String $Action = Triple.resource("Action") ;
  newTriple = new Triple(  );
  newTriple.setSubject( $Action );
  newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
  newTriple.setObject( $FEATURE );  insertLogical( newTriple );
  DeferredMethodCall dpa_Action5 = new DeferredMethodCall();
  dpa_Action5.setSubject($Action.toString() );
  dpa_Action5.setPredicate( "<http://java.sun.com/method#setProjectGUI>" );
  ArrayList argumentsList5 = new ArrayList();
  argumentsList5.add( $GUI );
  dpa_Action5.setObjects( argumentsList5 );
  insertLogical( dpa_Action5 );
  DeferredMethodCall dpa_R6 = new DeferredMethodCall();
  dpa_R6.setSubject($R.toString() );
  dpa_R6.setPredicate( "<http://java.sun.com/method#addAction>" );
  ArrayList argumentsList6 = new ArrayList();
  argumentsList6.add( $Action );
  dpa_R6.setObjects( argumentsList6 );
  insertLogical( dpa_R6 );
end

The immediate cause is that, since all variables are bound in the method call ?R javam:addAction ( ?Action ) , an immediate call is tried.

The red line is the root cause : ?FEATURE variable has Java type java:eulergui-gui-actions-ResultEditorAction, but the corresponding instantiation is not implemented.

One solution is to make a new ad-hoc builtin in the consequent :

} => {
   ?Action eg:javaInstantiation ?FEATURE ; javam:setProjectGUI( ?GUI ) .
   ?R javam:addAction ( ?FEATURE ) .
}.

Onother solution without ad-hoc stuff is add this rdfs:type triple 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 ).

Npote that this rdfs:type triple could be added via a rule:

{ ?APP soft:hasFeature ?FEATURE .
} => {
  ?FEATURE a java:java-lang-Class .
} .

But there's yet another possiblity here . In the cponsequent, this triple is a sure sign that ?Action is a Java instance:

 ?Action javam:setProjectGUI( ?GUI ) .

In fact, it makes little sense to instatiate a Java object, and not making use of it.

So, the Java instantiation could be done at this point, reusing the identifier that was just created.

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-arq
svn co https://svn.apache.org/repos/asf/jena/Jena2/Fuseki/trunk jena-fuseki
svn co https://svn.apache.org/repos/asf/jena/Jena2/IRI/trunk jena-iri
svn co https://svn.apache.org/repos/asf/jena/Jena2/jena/trunk jena-core
svn co https://svn.apache.org/repos/asf/jena/Jena2/JenaTop/trunk jena-top
svn co https://svn.apache.org/repos/asf/jena/Jena2/JenaZip/trunk apache-jena
svn co https://svn.apache.org/repos/asf/jena/Jena2/SDB/trunk jena-sdb
svn co https://svn.apache.org/repos/asf/jena/Jena2/TDB/trunk jena-tdb
svn 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 adding 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/

Read Write Web : 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 running 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 petit truc crafter au coin du 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