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, Me