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
--------------------------
Comparison of semantic modeling and object-oriented modeling
http://www.w3.org/TR/sw-oosd-primer/
http://www.w3.org/2001/sw/BestPractices/SE/ODSD/
<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
Work on Semantic forms and related Banana-RDF bug
bbc rdf linked data yvesr
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/
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
TODO : bad # at end of URI for OWL :
eg test/simple_hierarchy.owl &
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.
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
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 &
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
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);
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)
<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 )
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.
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 :
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 ?
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"
<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 !
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, 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
The real list is longer !
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
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.
<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
http://pcp.oxfordjournals.org/search?author1=Naama+Menda&sortspec=date&submit=Submit
https://github.com/NUKnightLab/TimelineJS
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 .
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>!
http://www.meaningengines.com/blog/
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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
https://www.google.fr/search?q=semantic+web+based+application+development
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 ?
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
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.
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
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/
Questions to answer
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
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>
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
<jmv> meanwhile I look at this : http://wiki.dbpedia.org/lookup/
<jmv> can be very useful in EG applications
Synthesis:
<span id="user-name">User name goes here</span>
You'd have code like this in your snippet:
"#user-name *" #> user.name
"a clean separation of web design from application logic" says http://notes.3kbo.com/lift
http://www.coderanch.com/t/604166/Scala/Play-Lift
http://stackoverflow.com/questions/13387554/play-vs-lift-pain-points
http://prac.im.pwr.wroc.pl/~jlemiesz/info/listy/compWebFrameworks.pdf
http://archive.org/stream/Play-frameworkBook/Introducing_the_Play_Framework-final_djvu.txt
<jmv> I begin to find my way around in Banana-RDF ,
<jmv> and came with a list of questions to Alex
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
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)
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
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 )
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/
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
New feature : Drop from EulerGUI N3 source buttons to EulerGUI buttons panel
file:///home/jmv/src/eulergui-code/eulergui/examples/materials-form.n3
into EulerGUI buttons panel
getTransferData: file:///home/jmv/src/eulergui-code/eulergui/examples/materials-form.n3, java.awt.datatransfer.DataFlavor[mimetype=application/x-java-serialized-object;representationclass=java.lang.String]
What implementations exist?
Transferable built in trait SemanticDragRecognizer and inner class N3Transferable;
implemented yesterday: in class ButtonsForN3Source :
editN3Button = new JButton() with SemanticDragRecognizer { addComponent(this) def getN3Source(): N3Source = n3 }
NOTE: some implementation could be reused in SourceFactory
current feature : drop URL or file path from a file manager or web browser or text editor (gedit)
implemented in DropURLTranferHandler
used in SourceFilesView.makeButtonsPanel()
Transferable read in
SemanticTransferHandler, containing class DropTargetImpl(n3Form: N3Form) extends DropTargetAdapter
with trait URIOrTextTransferSupport, SemanticDropResult
no need to adapt what is implemented for N3Form, just created a
DataFlavor[mimetype=application/x-java-serialized-object;representationclass=java.lang.String]
in SemanticDragRecognizer.N3Transferable.getTransferData(flavor: DataFlavor)
Exception in thread "main" java.io.FileNotFoundException: /home/jmv/ebics/client/users/13004414/keystore/CMBRFR2BXXX.p12 (Aucun fichier ou dossier de ce type)
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
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)
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
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
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
TODO
http://jena.apache.org/documentation/tdb/tdb_transactions.html#multi-threaded-use
see what Banana-rdf does
futures or Actors
bootstrap without rules
http://www.smartlogic.com/taxonomy-ontology-management?gclid=CMPFicq-tLsCFSnpwgodRk4ATg
There could be a Scala grammar for DRS, maybe made with help from the existing OCAML grammar.
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
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
dancer Perl
COMMIT
- FIX /DataGUIWindow, RuleBasedMutable
- TripleComboBoxes : make main combobox smaller
- DBPediaComboBoxAddTriple :
* add message : "Triple saved in persistant store: ..."
* dispose windows after tagging
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"
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) } ^
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 ec prefix on prefix.cc http://eulergui.sourceforge.net/contacts.owl.n3#
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
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.
val handler = new TableRowTransferHandler() table.setTransferHandler(handler) table.setDropMode(DropMode.INSERT_ROWS) table.setDragEnabled(true) val handler = new TableRowTransferHandler() table.setTransferHandler(handler) table.setDropMode(DropMode.INSERT_ROWS) table.setDragEnabled(true)
see how to use existing form to design a form
propose properties given a class
http://stackoverflow.com/questions/864448/how-to-set-content-encoding-with-gzip
if the browser sends
Accept-Encoding: gzip
you can compress the content of your http response, not the file on the server's file system. Then in your HTTP response you must set these headers:
Content-Length: totalBytes
Content-Encoding: gzip
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
http://www.scalatra.org/
restlet.com http://restlet.org/
e.g. filling a form from data
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
apidays2013
APIdays-loundge
apinetwork
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/
, // 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" )
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
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
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
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/
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 ???
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)
liste de morceaux synchronisées, liste de propriétés
téléphone
synchronisation
JNLP
HTML5 + JavaScript
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 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 :)
http://stackoverflow.com/questions/6425165/statically-decide-if-a-scala-class-is-immutable
there is such a project:
https://github.com/scala-js/scala-js
It seems to be in active development:
I concatenated to do items since 2012-12-11
TODO
ordinary URI display proeprties
property URI : addded to the form
class URI : created with URI with that class
N3 fragment : add to KB and store
what more ?
( idealy, update an ordered list )
Already writen:
Wikipedia combobox for downloading & displaying,
Wikipedia combobox for addind a dc:subject
text search on local database
global non contextual triple input
com.hp.hpl.jena.tdb.transaction.TDBTransactionException: Checksum error reading from the Journal.
and after 1 more the app. is frozen !!!!
http://jmvanel.free.fr/jmv.rdf#me
but retrieve it from cache
p:x a foaf:Person.
also add foaf: ontology to the KB
also in N3 editor
to add skos:subject to an ontology or N3 source (from analysing rdfs:label , rdfs:comment , etc
cd ~/src/eulergui-code/eulergui/ time svn log --verbose > log.txt
scala_translate n3_project/helpers
Last Appearance of java/deductions/runtime : Revision r3806
TODO
https://github.com/cygri/prefix.cc/issues/10
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
Wikipedia combobox for downloading & displaying,
Wikipedia combobox for addind a dc:subject
text search on local database
global non contextual triple input
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
https://gitorious.org/gitorious
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 on EulerGUI mailing 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.
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
[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
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
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
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.
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
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.*"
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)
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/
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 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" :
// 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é
http://docs.scala-lang.org/overviews/core/futures.html
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
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.
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
[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
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
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
https://github.com/openlink/Virtuoso-RDFIzer-Mapper-Scripts/blob/master/xslt/ics2rdf.xsl
Found nothing in http://www.w3.org/community/groups/
Started a page in EG:
Semantic web based applications
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)
Access Scala constants from Java?
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
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/
Access to Scala fields of objects from Java?
object O1 { val s = "XXX" }
Yes, this way :
String s = O1.s()
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
<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
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 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
with migration batch program ProjectFormatMigration.scala
e.g. dbpedia:Jimi_Hendrix , foaf: , sioc: , sioc:Role
( uses prefix.cc web service )
implementation uses web service http://www.w3.org/2012/pyRdfa/extract?uri=url
Rule engines
* use Euler Argument --pass to output the deductive closure, like Euler does
* now Euler builtin e:trace does not break Drools / N3 engine
Framework
It uses both triples store in memory (Drools backed rule engine), and persistent TDB store.
* N3FormApp, generates a form from an ontology : show Datatype Input error as tooltip; the incorrect field are red like in N3 Table
* SWExplorer, Semantic Web Explorer displays contents of an URI as a form view, and navigates by hyperlinks, uses new Jena TDB cache,
combobox for WikiPdepia disambiguation, opening matching dbpedia URI (using JSON Web API)
* DataGUI extends SWExplorer: allows to enter context based triples while navigating the semantic web
* SWMonitorGUI triple store (SPARQL) monitor: shows simplified N3 queries and named graphs
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
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 !
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
"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!"
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 :(
<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.
[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)
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
git config --global push.default simple
https://github.com/jmvanel?tab=activity
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 ⇒
TODO : a vocabulary to describe architectures; that is the first step to later assemble components semantically by configuration in Turtle.
The people I know:
http://blog.3kbo.com/about/
richard.hancock at 3kbo.com
https://github.com/3kbo/groovy-rdfizers
http://blog.3kbo.com/2011/11/17/linked-data-soa-software-development-process/
https://larlet.fr/david/biologeek/archives/
Other path to explore:
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.
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
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
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.
http://code.google.com/p/py2scala/
http://surguy.net/articles/scala-spelling.xml
http://neopythonic.blogspot.fr/2008/11/scala.html
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 }
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
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
https://github.com/rickynils/scalacheck/wiki/User-Guide
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
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
https://class.coursera.org/reactive-001/class/index
[<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 . ]
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
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
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://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"
not reproduced!
answer by Andy : NO !!!!!!!!!!!
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.
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
- 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
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 )
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}
<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
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
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/
<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&
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 .
<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)
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
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
Project-management
http://www.opensourcesoftwaredirectory.com/Medium-and-small/Project-management
http://www.redmine.org
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
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
http://www.ebics.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
@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)
http://en.wikipedia.org/wiki/Maude_system
Installed on my Android:
https://play.google.com/store/apps/details?id=com.intsig.BCRLite&hl=fr
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
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
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
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
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
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)
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
http://jmvanel.free.fr/jmv.rdf#me
but retrieve it from cache
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.
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 .
http://www.playframework.com/documentation/2.2.x/ScalaTodoList
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.
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
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.
http://torrez.us/ics2rdf/
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.
UI features:
connecting these main objects type should be done easily (D'n'D)
use component N3Form
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
\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>
{ ?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."/> ...
http://marmotta.incubator.apache.org/
tdbCache.getModel().getNsPrefixMap()
is empty
not reproduced !
not reproduced !
p:x a foaf:Person.
also add foaf: ontology to the KB
play framework semantic web
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)
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/
http://en.wikipedia.org/wiki/Robot_Operating_System
http://stackoverflow.com/questions/7804388/what-is-the-right-rtos-for-a-humanoid-robot
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.
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
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:
dbpedia:FrancoisPaulServant
in bottom triple UIdbpedia: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:
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)
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.
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:
giving
modifier_pp(A,on,string(2013-10-03))-1/6
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
<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
[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
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 ] ;
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 :
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
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}.
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
{?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>}.
http://www.openworldforum.org/
Telemeta : open web audio CMS in Python : http://telemeta.org/
http://www.google.fr/search?q=scala+machine+learning
http://www.quora.com/What-are-the-best-Scala-libraries-for-machine-learning#
https://github.com/factorie/factorie
https://code.google.com/p/scalalab/
Results : Tests run: 224, Failures: 0, Errors: 0, Skipped: 0
TODO :
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);
<http://dbpedia.org/property/regnum> a rdf:Property ; rdfs:label "regnum"@en ; owl:sameAs <http://dbpedia.org/property/regnum> .
To download my stuff from Google:
https://www.google.com/takeout/#downloads
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
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 )
The recipe for scalagen is :
mvn com.mysema.scalagen:scalagen-maven-plugin_2.9.3:0.3.1:main -DtargetFolder=target/scala
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 ?)
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 */
@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
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
COMMIT
COMMIT
- in SWExplorerWindow (& DataGUI), when URI to load gives an error, try to recover triples from TDB
TODO EulerGUI
http://svn.code.sf.net/p/eulergui/code/trunk/eulergui/html/documentation.html#L5773
<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
public void replaceNamedModel(String uri, Model model) ;
git status --short -uno
eulergui.gui.TestEulerGUIOutputs
eulergui.gui.TestEulerGUIOutputs
eulergui.gui.TestGenericGuiGenerationInsertLogical
eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules
eulergui.gui.TestJavaEditor
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
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
https://www.coursera.org/course/reactive
jeudi 15h30 docteur Gentilhomme
http://en.wikipedia.org/wiki/Reactive_programming
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)
<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
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
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
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)
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)
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
% 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
COMMIT
- DataGUI : (WIP) possible to paste a new value in combobox for property or object value
- update doc. for DataGUI
FIX loading URI's with # ( WIP ) : the rule in N3From.subscribeTripleAdded( String instanceURI ) was badly translated when its base URI includes a #
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)
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
tdbdump| grep test.n3 <file:/home/jmv/.eulergui/n3_cache/test.n3%23me_4274764945958880928.n3#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> <http://jmvanel.free.fr/tmp/test.n3#me> .
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
TODO
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.getDatasetGraphToQuery(DatasetGraphTransaction.java:83) at com.hp.hpl.jena.tdb.solver.QueryEngineTDB$QueryEngineFactoryTDB.dsgToQuery(QueryEngineTDB.java:162) at com.hp.hpl.jena.tdb.solver.QueryEngineTDB$QueryEngineFactoryTDB.create(QueryEngineTDB.java:173) at com.hp.hpl.jena.sparql.engine.QueryExecutionBase.getPlan(QueryExecutionBase.java:554) 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 unif.TripleStoreTDB.sparqlQuery(TripleStoreTDB.java:97) at deductions.runtime.RuleBasedApplicationWithCache.sparqlQuery(RuleBasedApplicationWithCache.scala:82) at deductions.runtime.swing.data_manager.DataGUIWindow$$anon$1.actionPerformed(DataGUIWindow.scala:87)
open source structs
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 ?
a. <a ==> b>.
FIX nasty bug: most outputs were gone
the text to display should be computed BEFORE calling SwingUtilities.invokeLater()
TODO
character $ works with ACE, but the N3 prefixes are not replaced:
per$Person is a owl$Class .
cd ~/src/eulergui-code/eulergui/examples/ace/ ; grep has *
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
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.
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.
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) }
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
Hyperion, Dan Simmons
Bitcoin, Tor
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 ?
<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
With Euler, it can be done by doing a difference between the input fact triples, and the output fact triples with --pass .
With Drools, the inferred triples are of type TripleResult .
eg -text 'Every card is a n:means of a payment .'
(note: it's already possible to with an ACE file:
echo 'Every card is a n:means of a payment .' > payment.ace ; eg payment.ace &
So the same effect can be achieved with a shell script: ??????????????????
cat egace ACE="$1".ace echo $1 > $ACE ; eg $ACE &
<jmv> Hi failed to find a vocab' on civil engineering ...
Intergated in EulerGUI's DataGUI application:
http://www.orbital-computer.de/JComboBox/
http://en.wikipedia.org/wiki/Rule_engine
new resource : given list of properties
It is possible to mix several items above, like 2 & 3, or 1 & 3, or 1 & 2 .
http://en.wikipedia.org/wiki/Event_condition_action
#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
Ask the RDF/NLP guys: vocab' for lexicons
---------------
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
TODO in SWExplorer
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
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)
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:
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, ...
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 ...
COMMIT
- upgrade Euler to 2013-07
- DataGUIWindow.scala : show N3 form View instead of N3 table
- fix button label inNewWindowInstanceObjectPropertyGUIComponent
% 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"
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 :(
TODO
?S ?P <given-URI>
.
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. }
------------------------
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.
DataGUI ideas
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
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 --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/
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
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
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 .
<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 )
http://aima.eecs.berkeley.edu/slides-pdf/
http://www.cis.temple.edu/~wangp/
http://en.wikibooks.org/wiki/Prolog/Search_techniques
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.
// TODO store each N3 source in a named model
http://www.w3.org/wiki/SweoIG/TaskForces/CommunityProjects/LinkingOpenData
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
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/
<uri> ?P ?V.
(will then be copied to in-memory KB from TDB)
TODO examples/deductions_person.n3p.n3 does not work.
Missing in saved project :
<> a owl:Ontology.
with this scenario:
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 ) ) ) )
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); }
TODO
Keep in a cache the donwloaded URI's.
http://jena.apache.org/documentation/tdb/datasets.htm
COMMIT
SWExplorer :
set label and value column sizes ( maybe set prefered size )
TODO
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
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
Some developments that I left aside the last mounths:
% 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.
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
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.
------------------
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 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.
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
http://www.hermit-reasoner.com/support.html
https://groups.google.com/forum/?fromgroups#!topic/hermit-users/iLsjGoTuK6k
http://lisfs2008.irisa.fr/ocsigen/squall/examples
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.
<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 ) .
========================
:- 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.
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 )
========================
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.
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/
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 ...
-------------
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>
<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 .
<jmv> installing GF to try ACE-in-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
When latest GF is installed, ACE-in-GF works like a charm:
make pgf_Geography ... linking ... OK Writing
A bizz contact old me about http://www-igm.univ-mlv.fr/~unitex/
http://www.w3.org/TR/owl2-syntax/#Time_Instants
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)
http://www.ii.uib.no/~bezem/
http://www.ae-info.org/ae/Acad_Main/Sections/Informatics/Informatics_Workshop_Bergen_2012
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
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' .
for example the noun plant has 4 senses, and the botany sense is number 2;
for example the synset 100017222 has 3 words:
plant, flora, plant life ,
and plant has W_num=1 here :
s(100017222,1,'plant',n,2,37).
n = NOUN
v = VERB
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 :(
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).
----------------------
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
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/
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 ?
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
See New ideas TODO
TODO :
replace with Hermit (GPL) and first OWL API
https://sourceforge.net/projects/owlapi/
other non-RDF non N3 inputs: plain XML
<PROJ> owl:import file1.rdf , file2.owl .
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>
<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
DONE check about my bug report " problem with -uri parameter in ape.exe : URI ending in # "
https://github.com/Attempto/APE/commit/50638c6d2e293406dbfc70e553e2a8b1098054db#L0R2
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 ) ) )
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.
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 .
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.*"
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
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
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
eg:currentSession eg:user <myFOAF.n3>
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).
see what I have already done in form generation ...
Semweb explorer should use a cache;
EulerGUI cache should use Jena TDB;
TODO rewrap the cache as interface to be pluggable (by Scala mechanism)
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/
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]
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)
<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 .
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.
<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
TODO
<jmvanel> I guess that in Drools 6, all basic classes that were in org/drools like WorkingMemory, are now in org/drools/core
*.as.rules.n3 should not be saved
ACE not saved !
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 ?
<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)
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
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/
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).
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
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 ?
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)) */
<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
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)
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
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!
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 :
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.
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 ?
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 !!!!!!!!
<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
<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 .
% 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
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
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/
http://en.wikipedia.org/wiki/Kim_Dotcom
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 :
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
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
<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, :)
<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 :(
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/
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> a free book
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
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 :
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
kings_of_France-genealogy_smart.rq
family_kings.n3p
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
Leafsnap is an electronic field guide (leaf recognition) for tree and plant species in NE USA.
[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/
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:
( 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
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> .
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, :)
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
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/
<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
[ANN] Jena 2.10.1 released ! http://s.apache.org/jira-jena-2.10.1
<jmvanel> Hi looking for examples of business applications (eg CRM, etc) TDB or SDB backed
-----------------------
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
See TODO EulerGUI
tested on n3rulestoclips-test.n3p
https://deductions.svn.sourceforge.net/svnroot/deductions/clips/n3rulestoclips-test.n3p
search : implement consequent side of rule
implement correctly backward operator in N3 <=
replace Pellet with OWL API;
generic semantic web tree view ( parameterized parent child relation )
eg org: &
does the same thing as
eg 'http://www.w3.org/ns/org#' &
cd ~/apps/ng4j-0.9.3/ gvim tabulator-devs.sparql bin/semwebquery -sparqlfile tabulator-devs.sparql -retrieveduris
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
TODO : integrate into EulerGUI roadmap
label:word_or_value "words word2"
on a triple store (SPARQL or in-memory);
result shown as N3 table, or synthesis ( label , class, "important properties" ) + statistics
annotate with owl:sameAs , dct:subject (cf http://www.w3.org/TR/skos-primer/#secindexing ), ...
implementation: use existing class WikipediaCompletion.scala
needs a prefix ( default current document base URI, or user associated URI, ... )
choose class
then use N3 form
implementation: needs a list of known prefixes : asked to cygri
on a triple store ITripleStore (so could be SPARQL or in-memory)
create combobox
update triple store on focus lost : test
pulldown menu for cross-domain properties: owl:sameAs , dct:subject, rdfs:label, rdfs:comment, rdfs:type, ...
open an N3 form for URI's
implement Combobox with WikipediaCompletion.scala
add in N3 form
is only for the rdfs:subclassOf relation
is dependent of Pellet
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)
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
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
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);
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> . ]
http://multiverseaccordingtoben.blogspot.hk/2013/05/the-dynamics-of-attachment-and-non.html
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.
orthograph : DeferredMethodCall ==> DeferedMethodCall
COMMIT
* in rule project-java-rules.n3 : ensure project Is Loaded from its URI;
* in ProjectFactory.restoreAny() : hack to filter "phantom" projects
tested with https://deductions.svn.sourceforge.net/svnroot/deductions/sparql/sparql.n3p.n3
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
?PROJ :postProcessing ?POSTPROJ .
rules must ensure that Java objects are populated
in class Project, there is confusion between URI (possibly relative to main project) , and absolute URI ( probaly same thing with N3Source )
<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 ?
<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 ...
Save as new N3/OWL format does not save sub-project and post-processing project.
ProjectFactory line 419 !!!!!
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'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><project>/.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
<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 !
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
<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
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&action=edit" />
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
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
http://stanbol.apache.org/docs/trunk/tutorial.html
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
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
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.
<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
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/
_: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>
Upgrades : Java 7 21 ; Drools 6.0.0.Beta1
http://search.maven.org/#artifactdetails%7Corg.drools%7Cdrools-compiler%7C6.0.0.Beta1%7Cbundle
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 !
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/
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
- add test TestProject.testOpenN3Project() , that simulates what happens when opening from File menu (NPE in Drools)
No NPE :
eg src/main/resources/eulergui/gui/controller/project-java-rules.n3 examples/BloodPressure-small.n3p.n3 &
Current conclusions: either:
<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 a TripleUser object:
<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
fireAllRules is called 4 times :
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
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
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
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
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
dbpedia:Jimi_Hendrix
: use prefix.cc ;
open a vocabulary from prefix.cc database, e.g. :
foaf:
open last project when command line has --last
from File menu:
Caused by: java.lang.NullPointerException at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:196)
even when commenting out :
<> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
must write a Drools bug report
with only this no NPE but nothing happens:
<> <http://eulergui.sf.net/ontology/project.owl.n3#hasN3Query> <catch_allQ.n3> . <catch_allQ.n3> <http://eulergui.sf.net/ontology/project.owl.n3#isMainQuery> true . <> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> .
Minimal input for NPE:
<> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#Ontology> . <> <http://www.w3.org/2002/07/owl#imports> <BloodPressure.n3> .
# 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
Added in prefix.cc
@prefix prolog: <http://eulersharp.sourceforge.net/2003/03swap/prolog#>.
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.
Installing F# on Ubuntu Linux
http://www.cs.princeton.edu/courses/archive/fall10/cos597C/FsharpUbuntuInstall.htm
unit tests for EYE plugins:
<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:
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]
<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" } }, ... }
<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
<error code="unknown_format" info="Unrecognized value for parameter 'format': 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.
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 .
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" ! )
Sequence of operations (could be events):
=> rules instanciate Project and N3Source objects
Dependencies on events
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
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
- 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
(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 )) )
- 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
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"(..)
OpenNARS Web Interface by automenta ( sseehh )
https://docs.google.com/document/d/1u97UBlLoyXoXu7x940_yahPlbZhMWh4tVEWKS6Wj3AQ/edit#heading=h.8lnyjkkhwgyd
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();
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.
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
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
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).
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 .
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.
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/
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.
http://stackoverflow.com/questions/896867/tool-to-convert-java-to-c-sharp-code
http://answers.semanticweb.com/questions/911/ontology-mapping-tools
possibly add inference engine rules:
same name and same domain: possible alignment;
decompose alongs eparators : camel-case, - , _
recompose abbreviations
leverage on dbPedia and WordNet for disambuguating synomyms, and attachment to a business / knowledge domain
See EulerGUI TODO , TODO ideas for EulerGUI , TODO in EulerGUI
FIX N3 CLIPS translation rules for multiple input rules,
translate facts in a parallel Euler run;
manage end of CLIPS run
solve problem with EulerGUI EYE integration
reusing semantic web for BI:
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 >> ?
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
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
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.
----------------------
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 )
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.
IN: <(*,red,blue) --> pattern1>. %1.00;0.90% {0 : 1} IN: << blue --> $b >==><(*,red,$b) --> pattern1>>? {0 : 2} 3000
Yesterday heard Martin Odersky at Devoxx.
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'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 .
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}
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
Jigsaw ?
String interpolation
Javascript
null checking?
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>)!
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
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
eg ~/jmvanel.free.fr/jmv.rdf ~/ontologies/foaf.n3 examples/owl-rules.n3 &
?X a foaf:Agent . # no result at first ; must enter a non query to trigger Drools engine fire
# no paste possible, no control C, no selection
# no completion
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.”]
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
./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
a null TruthValue has zero everywhere;
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:
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 .
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):
https://maven.java.net/content/repositories/snapshots/net/jthink/jaudiotagger/
http://blog.opencog.org/2013/03/24/why-hypergraphs/
http://en.wikipedia.org/wiki/Abductive_logic_programming
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
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:
Currently just one Failed test.
Failed tests: testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical,
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
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
[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
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
Added 2 sed scripts:
https://docs.google.com/document/d/1NQCoEghY5rGyEx9tRulQlPz8Do1JPA8O-uoLq3tpTJk/edit
---------
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
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
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 :
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}
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 ...
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
<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 !!!!
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
Failed to install:
https://github.com/ldodds/dowl#readme
https://www.google.fr/search?q=open+source+sql+schema+analyser
http://schemaspy.sourceforge.net/
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.
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 ...
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 ) )
<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
now (march 14) I know that it can be reproduced by changing the ConceptForgettingRate to be the TaskForgettingRate
http://x.com/y#z
as identifiers, and/or the N3 translator
could output prefixed URI'smore non-regression high level test: multistep
fix the cast exception for Equivalence in a version of my mail use case,
and check more Equivalence unit tests
allow writing in text areas;
cons: Aplet will be more difficult to run
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
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
/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
)
C:\Users\jmvanel> more Documents\script.sql
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
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/
the graph is synchronized with the tree view,
but there should be a larger graph connecting classes and properties through domain and ranges ( TODO : some work for EulerGUI )
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)
cf mail on march 1
Pattern Recognition In NARS
Matthew Zaikowski 05/04/2011
linked from http://www.cis.temple.edu/~pwang/demos.html
java -jar /home/jmv/src/open-nars-1.3.3/NARS.jar &
<(&&, <#r --> [red]>,<#b --> [blue]>) ==> <(*,#r,#b) --> pattern1>>. // in general a red object precedes a blue object. <{r1} --> [red]>. <{b1} --> [blue]>. <(*,{r1},{b1}) --> pattern1>? // Which asks if the pair “r1 b1” is an element in “pattern1” 57
% 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
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".
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 ?
/** 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
http://subclipse.tigris.org/wiki/JavaHL
Added this at the end of eclipse.ini :
-Djava.library.path=/usr/lib/x86_64-linux-gnu/jni
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:
if ((predicate instanceof CompoundTerm) && ((CompoundTerm)predicate).containComponent(subject)) { return true;
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>
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 []
TODO: how to generate report for an ontology ?
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
ava.util.concurrent.ExecutionException: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver
, 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:
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;
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.
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
https://github.com/mysema/rdfbean/wiki/Getting-started
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)
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/
<<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
< 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
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
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:
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 ) :
https://github.com/mysema/scalagen/issues/39
var t1: Term = _
edited by hand as
var t1: Term = null
case _ }
edited by hand as
case _ => return }
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"}
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):
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>
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
---------
<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"
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.
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
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
After Jos' article: Data Definition Ontology (DDO) (Ontology B1)
http://www.w3.org/TR/rdb-direct-mapping/
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 ))
)
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 .
<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
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 > ) > .
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
--] : 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
<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
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/
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.
Reconsidering the RAD workflow...
"better flow of information" said Zeno
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
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 :
Also begun CLIPS.
Updated Rule base repositorer and community site
http://www.w3.org/TR/2013/NOTE-rif-in-rdf-20130205/
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
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
Need to have a correspondance between NARSese and FOL, to facilate implementation of importers from various formats and data sources to NARS.
Book: algorithms of the intelligent web by haralambos mouratidis
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.
------------------
< <(*,#m,$VAL) --> $PROP > ==> #m --> uResponse>>. ?
~/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
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).
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
<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
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 .
http://www.pps.univ-paris-diderot.fr/seminaire/
<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]
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)
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.
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.
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.
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 )
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:
it does not occur (mail sent to the list)
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
TODO : try in AIMA code the general environment simulator.
jmvanel> Through Mark Proctor , got a contact with RedHat France .
<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.
https://www.google.fr/search?q=weka+semantic+web+importer
http://stackoverflow.com/questions/11139102/protege-weka-integration-classpath-error
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
<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/
-----------------
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
<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 ??????
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);
<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.
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)
new OWL project format
make a batch converter .n3p ==> OWL ;
remove save as .n3p
URI or abridged URI keyboard input with combobox; based on ontology, or based on dbPdepia disambiguation:
in fw
in new N3 source from URI
in editor
to add skos:subject to an ontology or N3 source (from analysing rdfs:label , rdfs:comment , etc
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:
the objective function would be the # of contracts signed ;) (I'm kidding)
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
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
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)
https://github.com/evantill
A Proposed Design for Distributed Artificial General Intelligence _ Version 2.2
By Matt Mahoney, Oct. 13, 2008
<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
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.
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 . }.
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
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
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> 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
I wonder how in NARS a literal can be represented. this is necessary for N3 to NARS translation.
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
To build a Open Source community, it requires several ingredients, many common with commercial software :
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 .
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.
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
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.
(mail to sseehh first )
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" .
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
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(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>) Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test> DLSafeRule( Body( ClassAtom( :salt Variable(<urn:swrl#x1>) ) ClassAtom( :water Variable(<urn:swrl#x2>) ) ) Head( ObjectPropertyAtom( :dissolve Variable(<urn:swrl#x1>) Variable(<urn:swrl#x2>) ) ) ) ) </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
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".
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
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.
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 :
<(*,#mold,#value)--> #prop>,
<(*,m5,#value) --> #prop>,
<(*,#manswer_old,#mold) --> replyTo>,
<(*,#manswer_old,U) --> sender>,
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.
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 .
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
------------------
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
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.
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 :)
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
<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/
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 |
http://agi-school.org/2009/dr-joscha-bach-the-micropsi-architecture
<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> this page says : VIDEO OF TALKS WILL BE UPLOADED SOON ;)
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 /
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.
<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
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
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" ) )
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
construct { ?s1 ?p1 ?o1 . ?o1 ?p2 ?o2 .} where { ?s1 ?p1 ?o1 . ?o1 ?p2 ?o2 .}
rules for :
configure - make projects
Java : Ant , Maven
etc
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)
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
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
<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
<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
This is kind of getting started page:
http://code.google.com/p/open-nars/wiki/MultiStepExamples
But:
http://metagear.de/articles/spring-introduction/index.html#springAOP
http://search.maven.org/#artifactdetails%7Corg.springframework%7Cspring-aop%7C3.2.0.RELEASE%7Cjar
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 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.
Free/open-source machine translation software
http://computing.dcu.ie/~mforcada/fosmt.html
<jmvanel> good to know : http://www.cygwin.com/acronyms/
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/
http://www.cs.waikato.ac.nz/~ml/weka/
Some missing features :
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.
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) .
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
<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 !
<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 ...
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 ...
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,[],[])])
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
<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
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
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.
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:
/tmp/opencog_build
:(Recent commits:
http://wiki.opencog.org/w/Fishgram
Messages retrieved: 76296
68315
gives nothing : "euler" eye constraint satisfaction
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
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/
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
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 :
Other implementations: http://nlp2rdf.org/implementations
Their ontologies :
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
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 .
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
The property skos:subject is a sub-property of dc:subject.
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"
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"
http://anchakor.github.com/GRASP/
https://github.com/Anchakor
Thesis : mud.cz/sw/GRASP_thesis.pdf
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)
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, ...
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.
<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 !
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 ...
http://www.swi-prolog.org/build/unix.html
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
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,
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
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:
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
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 ?
<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
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
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
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
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
<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
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
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
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/
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é
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
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 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)
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
back home in Paris
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)
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
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.
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
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/
<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
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
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, :)
https://repository.apache.org/content/repositories/releases/org/apache/jena/jena-tdb/
<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
contact AGI 2012
It was a fascinating conference in Oxford on Artificial General Intelligence #AGI http://agi-conference.org/2012/
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
Mark Proctor & salaboy (Mauricio)
Drools core will be redesigned; it will be possible to reuse persistance engine, not only JPA; neo4j is considered
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
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 :
"Laurent ORSEAU" <Laurent.ORSEAU@agroparistech.fr>
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"
ilesteban.????
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 ????
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.
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 :( .
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/
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
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
Self aware Software
US drone, Iron dome ( Israel ); cyber warfare; self driving cars;
rational
aproximately rational agent
-----------
WBE == Whole Brain Emulation
foresight != forecast
boring !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
"AI winter"
65 paper by Dreyfus "computers can't cope with ambiguity"
many AGI designs have the potential unexpected dangerous behavior
"footbridge" dilemna http://en.wikipedia.org/wiki/Trolley_problem
frame problem for morality
"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 :
---------------
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.
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
wirehead ?
GewIrth
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
<jmvanel> interesting conf by Ben's father
<jmvanel> "minimizing risks in in developing AGI"
graphs : NO ; key-value pairs possible
reuse ontologies or rules (e.g. pure Prolog) : NO
main input formats curently: characters and words; rectangular images with characters in cells (including chess board)
there are builtin heuristics/rules for chess, and probably other domains (?); are there standard API/plugin architecture for creating new domain heuristics?
there are tutorials, mailing list;
the user community seems mainly psychologists seeking comparisons with humain perception mechanisms
<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 )
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/
general reinforcement learning
http://wiki.lesswrong.com/wiki/AIXI
read-write acces to memory by the environment !
the neuralizer problem : can you trust your own memory?
MDL/MML ?
does not mention animals !
SARSA (reenforcemnt learning ) : works well
can ask clarifying questions
"add nouns to grammar"
Q: guess a name by elimination?
vetoes actions based on DB (e.g. sensible to Aspirin)
video on youtube
still missing : add initiative; impro, experimental learning
peoples's estimates has an S curve ( but below real P in average)
"cognition is grounded"
homestatic
how can a artificial system "give rise to a first person experience" ?
duration : 18Hz to 3s
http://www.academia.edu/1929361/On_the_Feasibility_of_Concept_Blending_in_Interpreting_Novel_Noun_Compounds
analogy-making, and concept blending
http://cogsci.uni-osnabrueck.de/~c3gi/2012/c3gi_pre-proceedings_20120803.pdf
HDTP == Heuristic Driven Thery Projection
many sorted FOL?
anti-unification !
pattern matching & constraint satisfaction
Alas no implementation (personal comm.)
http://www.flov.gu.se/english/contact/staff/claes-strannegard/
all is labelled
SENOR ---->MOTOR
MIN
fire together == wire together
Ebbington rule : makes me think of pheromone paths of ants
imaginary activity == intermediary results
implementations in Haskell and C#
self-programming ?
program generator ==> building blocks --> int *prog(int ...)
A Framework for Representing Action Meaning in ...- Mindmakers
www.mindmakers.org/attachments/download/.../paper_67.pdf
Embodied intelligence == AGIE
nice videos
convex domains in kinematic space :)))))))))))
ex : push , move
give book : convex ?????
force vectors : differenciate hit and push
inductive assumption
bounded rationality
Goldbach conjecture
What's the fractal for real world ?
the odd one : novelty
nice images : cats & owl
Non zero self distance !!!!!!!!!!!!!!!!
scotch topology ????????????????
taboo of denotational semantics??
predict consequence of one action
MDP
same question with FOL?
Experts:
http://www.mindmakers.org/users/768
http://www.examachine.net/blog/
Solomonoff Memorial 2011 - Eray Ozkural - Diverse Consequences ... ► 25:56
http://linas.org/
http://linas.org/agi.html
http://www.mindmakers.org/projects/agiconf-2012/wiki/Schedule
http://www.hansonrobotics.com/
Bina48 : Bayesian network; "feelings"
Robot says "tell me what do you think my intelligence comes from?"
JMV: it's like when cars appeared, they looked like horse cars; think about telephone interaction
www.GENI.ai : no content !
https://www.assembla.com/spaces/glue_ai/wiki
not much content ! mainly a pom.xml
https://www.assembla.com/code/glue_ai/subversion/nodes/trunk/extern_maven?rev=8#
uses ask.com, Drools, Scala, RDF, ...
JMV: eat your dog food principle
René Thom ( théorie des catastrophes )
emes == emergent memes
Hanson Robotics - Email: info@hansonrobotics.com - Tel: 214-927-1300
computational Compassion & Ethical AI
http://en.wikipedia.org/wiki/Three_Laws_of_Robotics
Man has created god to his image, and now some robotic researchers want to create robots to man's image ( or, even, to what is trendy ! ).
Matt Chaman, opencog
JMV : singleton ? question of how mankind will control ( question of democracy )
tripwire
JMV : limit the AGI by "bureaucratic" procedures : the AGI will have to present an inquiry if it wants to access more that
spreading activation networks
https://github.com/policecar/micropsi2
JMV: does the system create new nodes at runtime?
hoteaven
Q : JMV : comparison with Jason ?
"micropsi getting started"
relative rationality
<jmvanel> he writes better than he talks .
humanobs.org
http://act-r.psy.cmu.edu/actr6/
Scone == reasoner
Homine : ontology; uses WordNet , FrameNet
computer vision + all the above
chrest.info : combines perception and interpretation
Debate:
symbol vs subsymbolic?
OpenCog == hypergraph
DeSTIN Itamar Arel
https://github.com/opencog/opencog/blob/master/README
LinkParser == LinkGrammar ?
http://wiki.opencog.org/w/Building_OpenCog
http://wiki.opencog.org/w/The_Open_Cognition_Project
http://cs.usc.edu/~rosenblo/
graphical models
grand unified
reinforcement learning
deep blending of rules and statistical
Ben : people are not as broad as OpenCog
Failed tests: testRunDrools(eulergui.drools_engine.TestReasonning): check Pattern Triple Handler,(..) test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3> Tests in error: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Any javax.swing.JFrame test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testFocusLost(deductions.runtime.TestRulesForUserEvents): 0 Tests run: 202, Failures: 2, Errors: 8, Skipped: 0
TODO EulerGUI
- SPARQL or N3 query generator wizard from a resource :s
.
in a browsable graph : checkbox for each triple :s ?P ?O
, + create contain constraint (?), create variable, navigate to other URI;
COMMIT
- When Entering URL for N3 source, also allow for N3 abbreviated term with well-known prefix, e.g. dbpedia:Jimi_Hendrix
- ProjectGUI_Updater , SWRLTranslator, N3ConversionRefesher, etc were subscribed twice in ProjectChangeSupport.listeners.:
- add "xsd", "fn" in importantPrefixes (appearing in new files)
- fix adding """ wrappers to N3 strings when necessary (WIP) + new methods used in eulergui_mail module
TODO : Failed tests: test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>
Tests run: 202, Failures: 1, Errors: 0, Skipped: 0
----------------------------
jBPM5 - The Evolution of BPM Systems
Wednesday, December 12, 2012, by Mauricio Salatino and Esteban Aliverti
http://www.meetup.com/JBoss-User-Group/events/85267232/
<jmvanel> I've set a meetup in London , in need of a location : http://www.meetup.com/LondonSWGroup/events/94447932/
<jmvanel> twitted
<jmvanel> Nothing in twiter about ATTEMPTO : https://twitter.com/search/realtime?q=%23ATTEMPTO&src=hash
Knowledge representation with Controlled English, ontologies and rules
I'll present ATTEMPTO controlled English (ACE) and EulerGUI
ACE is a controlled natural language, i.e. a rich subset of standard English designed to serve as knowledge representation language. ACE appears perfectly natural, but — being a controlled subset of English — is in fact a formal (logic) language.
The ATTEMPTO tools are:
- command line tool
- AceWiki , an collaborative Web interface
- ACE View , a Protégé plugin
- ACE rule engine
- EulerGUI
I'm the main developper of EulerGUI.
EulerGUI has nice features to explore the Semantic Web and vocabularies.
The EulerGUI Integrated Development Environment (IDE) and framework allows one to develop and run rules in N3 logic language, applied to data and models in various formats converted in N3 syntax (Notation 3).
There are 4 reasoning engines: Euler proof engine , CWM , Drools, and FuXi
----------------
<jmvanel> I can now talk in french to Google Translate !
<jmvanel> thought : I should stop entering my contact data in a non semantic way in Google contacts !
<jmvanel> indeed I think of my own application :) ; see my post in deductions-fr !
https://sites.google.com
Saturday I'll be at AGI Artificial (General Intelligence) conf in Oxford http://agi-conference.org/2012/
How can an agent learn from its experience?
TODO
Set(eulergui.project.ProjectState@26657102, eulergui.gui.controller.ApplicationKB@4dde4dff, eulergui.gui.tools.SWRLTranslator@6d3af84f, eulergui.gui.controller.ProjectGUI_Updater@7852b5d6, eulergui.gui.controller.N3ConversionRefesher@7e203250, eulergui.gui.fcm.FCMProjectListener@63471c6f, eulergui.gui.controller.PersistenceListener@2cbe7925, eulergui.gui.tools.SWRLTranslator@6a1adbaf, eulergui.gui.controller.ProjectGUI_Updater@94cf495, eulergui.gui.controller.N3ConversionRefesher@1b4d66f8, eulergui.gui.fcm.FCMProjectListener@76a331c8, eulergui.gui.controller.PersistenceListener@54197e51)
Two stacks are adding the listeners :
Thread [main] (Suspended (breakpoint at line 947 in ProjectGUI))
ProjectGUI.addDefaultProjectListeners(Project) line: 947
ProjectGUI.setProject(Project) line: 941
ProjectGUI.initFromProject(Project) line: 151
ProjectGUI.<init>(Project) line: 142
ProjectGUI.newWindow(Project, boolean) line: 290
ProjectGUI.openLastProjectFromFileHistory() line: 260
ProjectGUI.main(String[]) line: 219
and
Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 947 in ProjectGUI))
ProjectGUI.addDefaultProjectListeners(Project) line: 947
ProjectGUI.setProject(Project) line: 941
ProjectGUI$2.run() line: 359
Thread.run() line: 722
COMMIT
- add in EulerGUI tricks : Google refine, RDFa</a> extractor as a service
- FIX transportation example in rules-examples.html
[ape.exe, -text, If someone Q studies a subject S and S impacts an enterprise E and Q v:has-interest-in E then Q v:has-a-conflit-concerning S. , -solo, owlxml, -uri, null]
Exception in thread "main" java.lang.NoSuchMethodError: org.semanticweb.owlapi.model.IRI.compareTo(Lorg/semanticweb/owlapi/model/OWLObject;)I at uk.ac.manchester.cs.owl.owlapi.OWLObjectPropertyImpl.compareObjectOfSameType(OWLObjectPropertyImpl.java:279) at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:199) at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:69) at uk.ac.manchester.cs.owl.owlapi.SWRLBinaryAtomImpl.compareObjectOfSameType(SWRLBinaryAtomImpl.java:96) at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:199) at uk.ac.manchester.cs.owl.owlapi.OWLObjectImpl.compareTo(OWLObjectImpl.java:69) at java.util.TreeMap.compare(TreeMap.java:1188) at java.util.TreeMap.put(TreeMap.java:531) at java.util.TreeSet.add(TreeSet.java:255) at java.util.AbstractCollection.addAll(AbstractCollection.java:334) at java.util.TreeSet.addAll(TreeSet.java:312) at java.util.TreeSet.<init>(TreeSet.java:160) at uk.ac.manchester.cs.owl.owlapi.SWRLRuleImpl.<init>(SWRLRuleImpl.java:105) at uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl.getSWRLRule(OWLDataFactoryImpl.java:1255) at org.coode.owlapi.owlxmlparser.SWRLRuleElementHandler.createAxiom(SWRLRuleElementHandler.java:67) at org.coode.owlapi.owlxmlparser.AbstractOWLAxiomElementHandler.endElement(AbstractOWLAxiomElementHandler.java:98) at org.coode.owlapi.owlxmlparser.OWLXMLParserHandler.endElement(OWLXMLParserHandler.java:942) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source) at org.coode.owlapi.owlxmlparser.OWLXMLParser.parse(OWLXMLParser.java:87) at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:210) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:889) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:837) at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:853) at eulergui.project.N3SourceFromOWL.convertOWLToN3(N3SourceFromOWL.java:76) at eulergui.project.N3SourceFromACE.convertToN3(N3SourceFromACE.java:28) at eulergui.project.N3Source.manageN3Cache(N3Source.java:632) at eulergui.project.N3Source.doUpdate(N3Source.java:434) at eulergui.project.N3SourceFromRDF.prepare(N3SourceFromRDF.java:72) at eulergui.project.N3Source.placeInProject(N3Source.java:360)
[16:30] <rszeno> you usualy find mixed app
[16:30] <rszeno> for example identica
[16:30] <rszeno> it use foaf for users profiles
[16:31] <Abdennour> Nice, THIS is a concrete application
[16:31] <Abdennour> to bad it's not famous
[16:31] <Abdennour> too*
[16:31] <rszeno> are many used daily but as far as i know all are private stuff
[16:32] <rszeno> new york times, the site use rdf too
[16:32] <rszeno> i try to remember the public one only, :)
[16:33] <rszeno> weird, :)
[16:33] <rszeno> i forget this, you will like it, foafpress
[16:33] <rszeno> http://foafpress.org/
[16:33] <Abdennour> Let's see
[16:34] <rszeno> entirely rdf
[16:35] <Abdennour> It seems appealing, and it's in php
[16:35] <rszeno> the main idea is to not to have something to use daily, at least at that stage
[16:36] <rszeno> but to build a network with open linked data in a machine readable format
[16:36] <Abdennour> I see
[16:37] <rszeno> when you have sources of data on the net about every useful piece of information you can build a custom interface, instant, to solve a given problem
[16:38] <rszeno> for example you don't go to oslo every day
[16:39] <rszeno> once you want to go you just need to find info about trip, climate, weather, routes, whatever you need
[16:39] <rszeno> after that you can forget about it
[16:39] <Abdennour> Well that's already a big thing
[16:39] <rszeno> not realy
[16:40] <rszeno> you already have on the net a lot of data
[16:40] <Abdennour> Yeah but the point of access of data are search engine like google
[16:40] <rszeno> you need only some general tools to aggregate, filter, infere
[16:40] <rszeno> no
[16:40] <Abdennour> If you can have an interface for machine to get data it's nice
[16:41] <rszeno> probably i didn't explain to well, :)
[16:41] <Abdennour> Or I'm too dense :P
[16:41] <rszeno> linked data is linked
[16:42] <rszeno> if you have a data source with countries, it will contain links to capitals, probably administrative information
[16:43] <rszeno> and each link point to another link related with him
[16:43] <rszeno> and so on
[16:43] <Abdennour> yeah like a graph
[16:43] <rszeno> it's a graph
[16:44] <rszeno> with subgraph ...
[16:45] <rszeno> you think you can answer to your classmates now? :)
[16:45] <Abdennour> Yeah kind of ^^
[16:46] <rszeno> probably sem web is not silver bulet, like usual, :)
[16:47] <rszeno> eulergui, your teacher tools is such a tool
[16:47] <rszeno> i don't know if he explain about it
[16:48] <Abdennour> We tried it but to be honest it's not very intuitive to us
[16:48] <Abdennour> maybe because we start
[16:49] <rszeno> well is something new, a new philosophy, people expect to see something closer to what they seen before
16:49] <rszeno> this is why is hard to understand from start
[16:50] <Abdennour> People tend to understand better through example
[16:50] <rszeno> yes, true
[16:51] <rszeno> but for this, to build example, you need to have something very stable, else is confusing
[16:51] <Abdennour> Yup
[16:52] <rszeno> only old technologies are very stable
[16:52] <rszeno> this one have at most 12 years
[16:53] <rszeno> 7 for sure, i discover it 7 years ago
[16:54] <Abdennour> It needs some big actor like google to get a boost :P
[16:55] <rszeno> no, google is a silos of information
[16:56] <rszeno> more damage then good things
[16:57] <rszeno> this must be decentalized or to not be at all
[16:58] <rszeno> the point is to publish brute information not interfaces to access it
[16:58] <rszeno> interface is user business
[16:59] <rszeno> is like i know from few minutes and we start to talk
[16:59] <rszeno> just change information
[17:00] <rszeno> each of us, you and me, we have our own 'interface'
[17:00] <Abdennour> true but without standard people won't use it
[17:01] <Abdennour> I mean if everyone have his own interface, how can we make a machine access information through different sources ?
[17:01] <rszeno> you don't need a standard
[17:01] <rszeno> rdf
[17:01] <rszeno> rdf is self descriptive
[17:02] <rszeno> is a subject predicate object thing, a statement, a triple
[17:02] <Abdennour> yeah i understand
[17:03] <rszeno> using triple you can describe things but also describe triple, see ontologies
[17:03] <rszeno> concepts, ideas, abstractions
[17:03] <rszeno> you build the 'standard', the protocol, at run time
[17:03] <rszeno> on going
[17:04] <Abdennour> It can become very complex ^^"
[17:04] <Abdennour> Moreover if everyone add his own namespace how do we figure out all ?
[17:05] <rszeno> by discovering things
[17:06] <rszeno> same way you do when you go in an unknown place
[17:06] <rszeno> you start to ask around looking for answer to solve your problem
[17:06] <rszeno> a namespace doesn't make sense if doesn't carry information
[17:07] <rszeno> a url is a name, not only a namespace
[17:08] <rszeno> http://jmvanel.free.fr/jmv.rdf#me
[17:09] <Abdennour> So the main concern to have linked data is to have valid uri :P
[17:09] <rszeno> this name identify your teacher
[17:10] <rszeno> if you read it soon or later you will find me, :)
[17:11] <rszeno> i'm egocentic so i don't mention others, :)
[17:11] <Abdennour> lol !
[17:12] == CrazyThinker [~CrazyThin@unaffiliated/crazythinker] has joined #eulergui
[17:12] <Abdennour> Why do you have multiple foaf profile ?
[17:13] <rszeno> me, :)
[17:13] <Abdennour> yes
[17:13] <rszeno> not really multiple, is owl:sameAs there
[17:13] <Abdennour> oh ok !
[17:14] <rszeno> are not many tools to test the logic of foaf today
[17:14] <rszeno> in fact i don't know to be one, :)
[17:14] <rszeno> was something few years ago
[17:14] <Abdennour> You live in romania ? ^^
[17:14] <rszeno> yes
[17:15] <rszeno> timisoara
[17:15] <rszeno> you can use geolocation to point directly to my house, :)
[17:16] <Abdennour> I have some classmates who will go to Prague this night
[17:16] <Abdennour> It's a little near
[17:16] <rszeno> yes, :)
[17:17] <rszeno> http://goossens.web.cern.ch/goossens/sweb-stack.gif
[17:17] <rszeno> this is how probably will work
[17:18] <rszeno> some levels are work in progress, some are not even started
[17:18] <Abdennour> Digital signature ?
[17:18] <rszeno> read, write, trusted web
[17:18] <rszeno> yes, webid
[17:18] <rszeno> authentication, authorisation
[17:19] <rszeno> needed for write, sometime for read
[17:21] <rszeno> you will find this picture in may places but in most of them you will find some particular point of view, wrong imo
[17:21] <rszeno> for example this one: http://kimmicblog.files.wordpress.com/2012/01/layer-cake-copy.jpg
[17:22] <Abdennour> What's different in this one ?
[17:23] <rszeno> this guy already 'know', that querying: sparql is the silver bullet which will solve any problem
[17:23] <Abdennour> ahh ok !
[17:23] <rszeno> this is a wrong point of view
[17:23] <Abdennour> He put aside RDQL
[17:24] <rszeno> self desc. doc. is more than anything called 'query'
[17:24] <rszeno> is a wider pov
[17:25] <rszeno> doesn't matter rdql or not
[17:26] <rszeno> you can use informations in may ways, rules are the most general way
[17:26] <rszeno> infering things is more then simple filtering
https://plus.google.com/112399767740508618350/posts/RwvAFV2cAe2
RDFa extractor as a service
http://www.w3.org/2012/pyRdfa/extract?uri=http%3A%2F%2Fshop.oreilly.com%2Fproduct%2F9780596516499.do&format=turtle&rdfagraph=output&vocab_expansion=false&rdfa_lite=false&embedded_rdf=true&space_preserve=true&vocab_cache=true&vocab_cache_report=false&vocab_cache_refresh=false
http://www.w3.org/2012/pyRdfa/extract?uri=http://shop.oreilly.com/product/9780596516499.do
PENDING: how to design forms semantically? Is it clean to use ad-hoc classes, since
?X a ad-hoc_class ; p v .
constrains ?X to belong to p's domain, and v to belong to p's range.
It is not enough to specifiy a form by giving an ad-hoc class C1 subclassOf C, because all properties of C will be properties of C.
As a simple definition, one can give an arbitrary list of properties for the form's fields :
f a eg:Form ; hasProperties ( p1, p2, p3 ).
But that's not enough; the form's fields can can mandatory or not , etc.
Re-use Xform would probably be good.
http://www.w3.org/TR/vocab-dcat/
11. Building a business application backed by Linked Data <<<< NEW by jmvanel
<jmv> never saw this before : http://ontologi.es/
<rszeno> is tobyink site
<jmvanel> there are even some N3 rules :) :
<rszeno> yes and acl
<jmvanel> http://ontologi.es/like#
rszeno> is old stuff
http://trueg.wordpress.com/about-me/
http://trueg.wordpress.com/tag/sparql/
TODO ???? EulerGUI : add in default prefixes in editor:
prefix afn: <http://jena.hpl.hp.com/function#>
Details on the Virtuoso bif: and sql: functions can be found in the "Calling SQL from SPARQL" section of the documentation at http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsqlfromsparql
Basically, "bif" are Built In Functions either predefined (like contains) or user defined which can be call within SPARQL with the bif:<functiona-name> prefix. Likewise "sql" are the predefined SQL PL functions that can be called with SPARQL.
http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTab
http://protege.cim3.net/cgi-bin/wiki.pl?SWRLDroolsTab
Google refine seems a nice tool; and it seems to have an RDF export as well. Moreover it has an interesting architecture mixing Web and local application .
http://www.youtube.com/watch?v=B70J_H_zAWM
http://openrefine.org/ ; an extended RDF export through plugin http://refine.deri.ie/ RDF Refine - a Google Refine extension for exporting RDF
SELECT (count(?A) as ?count) WHERE { ?A a dbpedia-owl:Person }
39582868^^http://www.w3.org/2001/XMLSchema#integer
SELECT DISTINCT (count(?A) as ?count_french) WHERE { ?A a dbpedia-owl:Person ; dbpedia-owl:birthPlace # dbpedia:United_States ; # dbpedia:France }
541889^^http://www.w3.org/2001/XMLSchema#integer
Same with United_States : 2293132 .
SELECT * WHERE { ?A a dbpedia-owl:Person } LIMIT 1000
Living persons born in France:
SELECT DISTINCT (count(?A) as ?count_french) WHERE { ?A a dbpedia-owl:Person ; dbpedia-owl:birthPlace dbpedia:France . FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} ) }
4585
Same thing grouped by class and ordered :
SELECT DISTINCT ?CLASS (count(?A) as ?count) WHERE { ?A a dbpedia-owl:Person ; dbpedia-owl:birthPlace # dbpedia:United_States ; # dbpedia:France . FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} ) ?A a ?CLASS } GROUP BY ?CLASS ORDER BY DESC(?count)
Notethat several classes are assigned to the same person, and that inference has been added in the database (Thing, Agent, schema.org/Person ... ).
http://www.w3.org/2002/07/owl#Thing 4585^^http://www.w3.org/2001/XMLSchema#integer
http://xmlns.com/foaf/0.1/Person 4585^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Person 4585^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Agent 4585^^http://www.w3.org/2001/XMLSchema#integer
http://schema.org/Person 4585^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Athlete 3150^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/Person100007846 3048^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/LivingPeople 2935^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/SoccerPlayer 2382^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/FrenchFootballers 1640^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/LiguE1Players 916^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/LiguE2Players 836^^http://www.w3.org/2001/XMLSchema#integer
http://umbel.org/umbel/rc/SoccerPlayer 385^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Cyclist 295^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/class/yago/FrenchExpatriateFootballers 290^^http://www.w3.org/2001/XMLSchema#integer
http://dbpedia.org/ontology/Artist 272^^http://www.w3.org/2001/XMLSchema#integer
http://umbel.org/umbel/rc/Cyclist 256^^http://www.w3.org/2001/XMLSchema#integer
Trying not writing type in select answer; but this does not sort :
SELECT DISTINCT ?CLASS (str(count(?A)) as ?count) WHERE { ?A a dbpedia-owl:Person ; dbpedia-owl:birthPlace # dbpedia:United_States ; # dbpedia:France . FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} ) ?A a ?CLASS } GROUP BY ?CLASS ?count ORDER BY DESC(xsd:decimal(?count))
Not writing type in select answer; this does sort , but we have an extra column :
SELECT DISTINCT ?CLASS (str(count(?A)) as ?count_string) (count(?A) as ?count) WHERE { ?A a dbpedia-owl:Person ; dbpedia-owl:birthPlace # dbpedia:United_States ; # dbpedia:France . FILTER( NOT EXISTS {?A dbpedia-owl:deathDate ?DATE .} ) ?A a ?CLASS } GROUP BY ?CLASS ?count ORDER BY DESC(?count)
Try to get people younger than 80 :
?A dbpedia-owl:birthDate ?NAISS . FILTER( fn:years-from-duration( "2012-12-05"^^xsd:dateTime - ?NAISS) < 80 )
alas Virtuoso :
Virtuoso 22003 Error SR087: Non numeric argument(s) to arithmetic operation.
ILP == Inductive Logic Programming
http://www.doc.ic.ac.uk/~shm/ilp.html
https://www.google.fr/search?q=sparql+application+framework
http://answers.semanticweb.com/
http://markwatson.com/opencontent_data/book_java.pdf
transactions, integrity
http://agi-conference.org/2012/
search administration+dataset+tools+sparql+1.1+databases
{x p "v"} => { x p _:v. _:v a pClass; hasV "v"}
def qsort[T <% Ordered[T]](list:List[T]):List[T] = { list.match({ case Nil => Nil; case x::xs => val (before,after) = xs.partition({ i => i.<(x) }); qsort(before).++(qsort(after).::(x))); }); }
Results : Failed tests: testRunDrools(eulergui.drools_engine.TestReasonning): check Pattern Triple Handler,(..) test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3> Tests in error: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Any javax.swing.JFrame testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..) testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait for "getText() Component Chooser "rdfs:label="Agent""(..) test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded testFocusLost(deductions.runtime.TestRulesForUserEvents): 0 Tests run: 202, Failures: 2, Errors: 13, Skipped: 0
regex pattern verbalizer : does not seems to exist
_:mess74051 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> "<http://jmvanel.free.fr/ontology/java_projection.owl#"com.sun.mail.imap.IMAPMessage">" .
instanceOf is as much a bad smell in Scala as in Java , but there is match :
triples2.foreach { x => outFileWriler.print( x match { case t: Triple => t. toStringSafe() case _ => toString } ) }
My first usage of yield
, to extract a Scala sequence out of a
Java API. The flatMap
is convenient to concatenate lists .
val multipart = message.getContent().asInstanceOf[Multipart] val multiparts = for( p <- 0 until multipart.getCount() ) yield multipart.getBodyPart(p) multiparts .flatMap ({ x : BodyPart => Java2N3.properties2N3( x, id, prefix = mailSemwebPrefix)._1 } ).toList
To add in a non Maven project having non standard directory for sources
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals><goal>add-source</goal></goals>
<configuration>
<sources><source>src</source></sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.8</version>
<configuration>
<buildOutputDirectory>classes-eclipse</buildOutputDirectory>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
</plugins>
</build>
javamail multipart encoding charset 7bit quoted-printable
https://travis-ci.org/read-write-web/rww-play
oem-laptop: ~/src/rww-play/ % Play20/play [info] Loading project definition from /home/jmv/src/rww-play/project [info] Set current project to RWWeb (in build file:/home/jmv/src/rww-play/) _ _ _ __ | | __ _ _ _| | | '_ \| |/ _' | || |_| | __/|_|\____|\__ (_) |_| |__/ play! 2.1-SNAPSHOT (using Java 1.7.0_09 and Scala 2.10.0-RC1), http://www.playframework.org > Type "help play" or "license" for more information. > Type "exit" or use Ctrl+D to leave this console. [RWWeb] $ run -Dhttps.port=8443 -Dhttps.trustStore=noCA
followup :
[info] Updating {file:/home/jmv/src/rww-play/}RWWeb... [info] downloading http://repo.typesafe.com/typesafe/snapshots/play/play_2.10/2.1-SNAPSHOT/play_2.10-2.1-SNAPSHOT.jar ... [info] [SUCCESSFUL ] play#play_2.10;2.1-SNAPSHOT!play_2.10.jar (32177ms) [info] downloading http://repo.typesafe.com/typesafe/snapshots/play/play-test_2.10/2.1-SNAPSHOT/play-test_2.10-2.1-SNAPSHOT.jar ... [info] [SUCCESSFUL ] play#play-test_2.10;2.1-SNAPSHOT!play-test_2.10.jar (1743ms) [info] Done updating. --- (Running the application from SBT, auto-reloading is enabled) --- SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/home/jmv/src/rww-play/Play20/repository/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.7.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/home/jmv/src/rww-play/Play20/repository/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder] [info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000 [info] play - Listening for HTTPS on port /0:0:0:0:0:0:0:0:8443
-------------
The symptom:
[15:18:51] Jean-Marc Vanel: value certs is not a member of play.api.mvc.RequestHeader [15:19:02] Jean-Marc Vanel: In /home/jmv/src/rww-play/app/org/www/play/auth/AuthN.scala at line 25.
NOT Found !!!
http://airccse.org/journal/ijwest/current2012.html
COMMIT
- upgrade Scala to 2.10.0-RC3
- add missing dependency to org.scala-lang:scala-swing:2.10.0-RC3
- Java2N3.scala : only generate N3 property if toStringRedeclared
- add DBPediaComboBox.scala, JSONParser.scala (WIP)
@puffnfresh I like this music generation process !
now we have to imagine the correspondance between
- the grid and the current sound,
- the change and duration of the sound when the game steps
announce a major upgrade of NERD - a Named Entity Recognition and Disambiguation framework (http://nerd.eurecom.fr). The NERD framework unifies the annotation of 10 entity extractors (http://nerd.eurecom.fr/documentation#extractors) using the NERD ontology (http://nerd.eurecom.fr/ontology) which provides a rich set of axioms aligning the taxonomies of these extractors. The NERD ontology is composed of two layers: a core layer of 10 main classes, based on a core schema used by the NLP community, and an extended layer composed of 75 classes which correspond to more fine-grained entity types that these extractors can recognize.
https://localhost:8443/test/webid/hello+world
This is a nice site, but it's a bit like CKAN, there is no SPARQL :
http://www.programmableweb.com/apis
( for CKAN , there is a SPARQL , but not much ion it, one has to rely on JSON :( )
<jmvanel> what is greasemonkey?
<rszeno> an extension for ffox but work with few other browsers
<rszeno> can be used to *fix* the web, :)
<rszeno> https://addons.mozilla.org/en-US/firefox/addon/greasemonkey/
<rszeno> http://www.greasespot.net/
<rszeno> is use it to build extensions/add-on's for ffox
<rszeno> i start with greasemonkey scripts to do what i want then i move code, javascript, in a dir in .mozilla/firefox/.../extensions/ and add few new files, tweek/test/fix problems and i get an add-on
<jmvanel> one more thing that you don't share :(
<rszeno> if you want to try the best place to start is http://commons.oreilly.com/wiki/index.php/Greasemonkey_Hacks
<jmvanel> installed greasemonkey
<rszeno> yes, proud of this, :)
<jmvanel> For now my worry is In ubuntu 12.10 how to change default application for calendar in system parameters
je rebondis sur ce sympathique message avec le lien vers mes slides : http://fr.slideshare.net/dgalichet/demystifying-scala-type-system
gnome-terminal \ --tab --title=eulergui--working-directory=$HOME/src/eulergui --active \ --tab --title=audio-dam--working-directory=$HOME/bizz/taxochronos/src/audio-dam/ui-swing \ --tab --title=eulersharp --working-directory=$HOME/src/eulersharp \ --tab --title=deductions--working-directory=$HOME/src/deductions \ --tab --title=ACE-in-GF--working-directory=$HOME/src/ACE-in-GF &
https://github.com/non/spire#readme
Hi again
I suppose that you have good arguments on this very important subject.
I keep telling people that for classical business applications, to gain flexility and compatibility with Open linked data, it's possible and even better to use semweb databases instead of the usual SQL.
Another argument is that with a framework based on rules and semweb like EulerGUI, there is no need of ORM, or RDF to object Mapping, a,d no need to generate code fir business classes.
I admit that I was blown away to hear even some LOD specialists say that to make a simple app., they go to SQL, partly by the strength of habit.
For me it is so obvious and not too complicated, that I did not test that so far.
But it was in my roadmap.
So just a question.
Is the force of habit, and the slope of the facility, or
Do you foresee any difficulties?
Say, to fix ideas, create an app. Web that will make
CRUD on FOAF data type.
To avoid security problems, say that SPARQL is based
on the same machine as the application. Web and its port is filtered to
outside.
Or SPARQL is based in the same process as the web server.
I'll try that ...
------------------
integrity to maintain the consistency of your data (primary key,
> Foreign key cascade delete etc ...).
This is an interesting debate, I do not have time to move
now, but this weekend yes.
The concepts of primary key and foreign key, they were due to URI.
The primary key is a URI in subject position that connects
naturally all the triples with that URI in subject position.
The foreign key, it is more complicated, because even if the ontology
specifies a functional property, or a cardinality> = 1,
deposits SPARQL does not impose not always. Sure, you can:
- Rotate generic scripts that will be out of
reports, or create nodes "blanks" to fill the gaps
- Rely on applications, also how many apps I
SQL-based exploit the capabilities of SQL really that?!
For cascade delete, I do not know.
I do not know if we really need to destroy the triplets
referenced immediately.
--
Jean-Marc Vanel
Déductions SARL - Consulting, services, training,
Rule-based programming, Semantic Web
http://deductions-software.com/
+33 (0)6 89 16 29 52
chat : irc://irc.freenode.net#eulergui
cd ~/src/eulergui/
linkchecker html/documentation.html
...
That's it. 1591 links checked. 126 warnings found (71 ignored or duplicates not printed). 106 errors found.
Stopped checking at 2012-11-28 16:47:50+002 (7 minutes, 21 seconds)
http://jena.apache.org/images/jena-logo/jena-logo-small.png
COMMIT
documentation.html : fix many of the bad links found with linkchecker
http://www.meetup.com/78-Hackers/members/19188881/
What applications are you thinking about/working on?
Which technologies are you most into?
Intéressé par : le Web Sémantique, l'intelligence Artificielle et la Logique Formelle, les moteurs à base de règles (Drools, JRules) le traitement du langage naturel la modélisation, le développement piloté par les modèles, Scala
How can this group be of the most value to you?
j'aime ces rencontres technologiques
Added comment here:
http://devandwhateverelse.blogspot.fr/2010/05/scala-swing-combobox-part-2.html
To make the comboBox editable, I changed comboBox declaration this way:
val comboBox = new ComboBox(List(OS("Ubuntu", "10.04"), snowLeopard, OS("Windows", "7"))) { implicit def editor(c: ComboBox[OS]): ComboBox.Editor[OS] = new ComboBox.BuiltInEditor(this)( s => OS(s,"no version"), // could split s with a possible comma separator os => os.name) {} makeEditable(); // renderer = Renderer(_.name) renderer = Renderer(_.toString) }
It took me quite some time to figure out the editor defintion.
But, after entering "Solaris" in the box, it gets transformed thus:
OS(OS(Solaris,no version),no version)
In fact OS.toString()
is called too. And it must play well with
the 2 functions given to ComboBox.BuiltInEditor.
And I guess that these 2 functions show be inverse of one another.
git remote -v
http://www.seemy.com/fr/products
http://soundview.co/research/#wrap
Added this a the end of project/plugins.sbt :
+addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "2.1.0")
like explained here :
https://github.com/typesafehub/sbteclipse#readme
This generates the 6 eclipse projects :
jena/.project ldp/.project plantain/.project rdf/.project rdf-test-suite/.project sesame/.project
I also did this:
./sbt doc
I don't know how to run the tersts in eclipse ! But this works:
./sbt test
...
[error] Could not run test org.w3.banana.plantain.LDPSTest: java.lang.IllegalArgumentException: Class is not an accessible org.scalatest.Suite: org.w3.banana.plantain.LDPSTest
...
[info] Passed: : Total 85, Failed 0, Errors 0, Passed 85, Skipped 0
java.lang.RuntimeException: Tests unsuccessful
at scala.sys.package$.error(package.scala:27)
at scala.Predef$.error(Predef.scala:123)
at sbt.Tests$.showResults(Tests.scala:192)
at sbt.Defaults$$anonfun$testTasks$6.apply(Defaults.scala:296)
...
[error] (plantain/test:test) Tests unsuccessful
[error] Total time: 208 s, completed 27 nov. 2012 19:36:23
It's not clear what is the added value compared to using directly Java API .
Nice Vim plugin : Mark : Highlight several words in different colors simultaneously.http://stackoverflow.com/a/7772282/1141737
This is the case of FOAF
Added this in rules-documentor.n3, to generated a plausible label:
_:o e:optional { ( ?URI "#" ) fn:substring-after ?LABEL . } . _:p e:optional { ( ?URI "/" ) fn:substring-after ?LABEL . } .
it's in deductions, but EulerGUI uses the file from Subversion, so no need to upgrade EG.
This was not detected :
:x a foaf:NonExistingClass .
cd ~/src/deductions/n3_nojs/ eg ~/src/eulergui/examples/blankNotation.n3 ~/ontologies/rdf.n3 rules-documentor.n3 --query rules-documentorQ.n3
<S11001001> jmvanel: then write lower: (A => B) => A PartialFunction B as a pimp on => and write {case partialbits} andThen (identity _).lower or whatever it is
<S11001001> orElse I think
<jmvanel> S11001001, thanks , but this goes far above my current level of consciousness :)
http://www.google.fr/search?q=scala+iamp+javamail
com.sun.mail.imap.IMAPBodyPart@7732e17e
Pattern matching and case classes in Scala:
def simplifyTop(expr: Expr): Expr = expr match { case UnOp("-", UnOp("-", e)) => e // Double negation case BinOp("+", e, Number(0)) => e // Adding zero case BinOp("*", e, Number(1)) => e // Multiplying by one case _ => expr }
http://blog.typesafe.com/free-pdf-from-typesafe-scala-for-the-impatien-64715
Shell commands from Scala interpreter :
scala> import sys.process._ import sys.process._ scala> "echo hello world" #> new java.io.File("/tmp/example.txt") ! res0: Int = 0 scala> "ls" !
http://thoughts.inphina.com/2011/03/05/getting-started-maven-archetype-for-scala/
http://www.oracle.com/technetwork/java/javamail/faq/index.html#examples
https://github.com/zcox/jetray#readme
http://oscaf.sourceforge.net/nmo.html
See below IMAP importer to TDB via JavaMail
IMAPN3Connector
xmllint --format pom.xml > pom2.xml mv pom2.xml pom.xml
first run:
[exec] 1: =?ISO-8859-1?Q?L'=E9quipe_Gmail?= <gmail-noreply@google.com>Gmail est différent des autres systèmes de messagerie. Voici ce que vous devez savoir. java.lang.NullPointerException at deductions.runtime.Java2N3$$anonfun$properties2N3$1.apply(Java2N3.scala:36) at deductions.runtime.Java2N3$$anonfun$properties2N3$1.apply(Java2N3.scala:34) at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:105) at deductions.runtime.Java2N3$.properties2N3(Java2N3.scala:34) at eulergui.eulergui_mail.IMAPN3Connector$$anonfun$importFromIMAP$1.apply(IMAPN3Connector.scala:39) at eulergui.eulergui_mail.IMAPN3Connector$$anonfun$importFromIMAP$1.apply(IMAPN3Connector.scala:34) at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:105) at eulergui.eulergui_mail.IMAPN3Connector$.importFromIMAP(IMAPN3Connector.scala:34) at eulergui.eulergui_mail.IMAP2TDB$delayedInit$body.apply(IMAP2TDB.scala:13) at scala.Function0$class.apply$mcV$sp(Function0.scala:40) at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.App$$anonfun$main$1.apply(App.scala:71) at scala.collection.immutable.List.foreach(List.scala:309) at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:32) at scala.App$class.main(App.scala:71) at eulergui.eulergui_mail.IMAP2TDB$.main(IMAP2TDB.scala:5) at eulergui.eulergui_mail.IMAP2TDB.main(IMAP2TDB.scala)
http://maven.apache.org/guides/getting-started/index.html#How_do_I_make_my_first_Maven_project
new Scala class Java2N3, that will be used by JavaMail connector ( Java2N3 will replace ObjectProperties2N3.scala )
http://subclipse.tigris.org/update_1.8.x/
Failed to load JavaHL Library. These are the errors that were encountered: no libsvnjavahl-1 in java.library.path no svnjavahl-1 in java.library.path no svnjavahl in java.library.path java.library.path = /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
/usr/lib/jni/libsvnjavahl-1.so.0.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, stripped
On Debian 6.0.6 I added this in eclipse.ini
-Djava.library.path=/usr/lib/jni
And I could reconnect to my SVN working directory.
http://www.w3.org/wiki/Search_engines
http://www.cs.umd.edu/projects/plus/SHOE/search/
http://www.bestechvideos.com/2012/05/30/railscasts-354-squeel
https://github.com/ernie/squeel
http://didier-martin.com/
http://blog.muhuk.com/2012/03/16/installing-subversion-1-7-on-debian-squeeze-via-apt.html#.UK-sk5sTGRY
Use generic Java properties to N3 translator, or just insert the Java object in KB, and rely on rules to convert to pure (non-Java) triples?
If the Java object is not intended to be called by rules, it's better to use generic Java properties to N3 translator.
TODO: generic Java properties to N3 translator:
See below Exploring named graph in SPARQL database
CONSTRUCT { ?s ?p ?v . } WHERE { GRAPH <http://dbpedia.org/schema/property_rules#> { ?s ?p ?v . }
That's all there is in GRAPH <http://dbpedia.org/schema/property_rules#> :
<http://dbpedia.org/ontology/wikiPageWikiLink> owl:equivalentProperty <http://dbpedia.org/property/wikilink>. <http://dbpedia.org/ontology/wikiPageRedirects> owl:equivalentProperty <http://dbpedia.org/property/redirect>. <http://dbpedia.org/ontology/deathPlace> owl:equivalentProperty <http://dbpedia.org/property/deathPlace>. <http://dbpedia.org/ontology/wikiPageRevisionID> owl:equivalentProperty <http://dbpedia.org/property/revisionId>. <http://dbpedia.org/ontology/birthDate> owl:equivalentProperty <http://dbpedia.org/property/birth>. <http://xmlns.com/foaf/0.1/givenName> owl:equivalentProperty <http://xmlns.com/foaf/0.1/givenname>. <http://dbpedia.org/ontology/wikiPageDisambiguates> owl:equivalentProperty <http://dbpedia.org/property/disambiguates>. <http://dbpedia.org/ontology/birthPlace> owl:equivalentProperty <http://dbpedia.org/property/birthPlace>. <http://dbpedia.org/ontology/deathDate> owl:equivalentProperty <http://dbpedia.org/property/death>. <http://dbpedia.org/ontology/wikiPageID> owl:equivalentProperty <http://dbpedia.org/property/pageId>. <http://purl.org/dc/terms/subject> owl:equivalentProperty <http://www.w3.org/2004/02/skos/core#subject>. <http://dbpedia.org/ontology/wikiPageExternalLink> owl:equivalentProperty <http://dbpedia.org/property/reference>.
The data on data.semanticweb.org is available in two flavours:
* There are rdf/xml dumps for each conference and workshop in the repository. All those dumps are available at http://data.semanticweb.org/dumps/ .
* The URIs of the named graphs also work as an alias to that graph's data dump.
* There is a SPARQL repository which contains all data for all conferences and workshops:
http://data.semanticweb.org/sparql
display : currentURI ?P ?V. as a form
update : use triple generator
display datasets, add triples, upload files;
nice to have : common API , HTTP SPARQL or local base
http://code.google.com/p/void-impl/wiki/SPARQLQueriesForStatistics
see below Exploring named graph in SPARQL database
SELECT (COUNT(?g) as ?num) WHERE { GRAPH ?g { ?X ?P ?V . } }
===
SELECT (COUNT(*) AS ?no) { ?s ?p ?o }
Result : 277552108^^http://www.w3.org/2001/XMLSchema#integer
===
CONSTRUCT { ?g hasCount COUNT(} } SELECT (COUNT(distinct ?g) AS ?no WHERE { ?g GRAPH { ?X P? ?V } }
Created an account on https://www.getrefinder.com
df ==> /dev/sda1 182863100 157542596 16031544 91% / % time zip musicbrainz_ngs_dump.rdf.ttl.zip musicbrainz_ngs_dump.rdf.ttl adding: musicbrainz_ngs_dump.rdf.ttl (deflated 89%) zip musicbrainz_ngs_dump.rdf.ttl.zip musicbrainz_ngs_dump.rdf.ttl 630,42s user 25,67s system 78% cpu 13:53,82 total oem-laptop: ~/data/ % ls -ltr mus* -rw-r--r-- 1 jmv jmv 25719386678 juin 16 2011 musicbrainz_ngs_dump.rdf.ttl -rw-rw-r-- 1 jmv jmv 2902391619 nov. 21 20:29 musicbrainz_ngs_dump.rdf.ttl.zip
./fuseki-server --verbose --loc=/home/jmv/data/tdb /test1
Damian Steer, davide.eynard@usi.ch
After playing with the SquirrelRDF tool to access to my IMAP mailbox in Google, I came to the conclusion that, although the mapping of IMAP and SPARQL is smart, it's more a research than a usable product.
First, it's not obvious to port it to latest Jena.
Second, in most cases it downloads all the mailbox before applying the query terms.
It would be nice to take into account all SPARQL filters, and LIMIT modifier, but that would quite a lot a work.
And third, as my goal is to make an intelligent agent that manages my mails and contacts, that's not what I need.
What I need is more a simple connector that mirrors the IMAP box into a local TDB database, with a simple vocabulary directly related to the IMAP fields. So the SPARQL queries will occur on the local IMAP mirror. Maybe that has already been done; anyway it's 2 or 3 days of work at most. Maybe the Gnowsis Email project can be re-used , but tha URL mentionned in the report "An IMAP plugin for SquirrelRDF" , https://www.getrefinder.com/about/content/apps , is no more active.
In the main :
System.setProperty( "log4j.configuration", "/log4j.properties" ); BasicConfigurator.configure();
In log4j.properties ("stdout" has no special meaning ) :
log4j.rootLogger=debug,stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern= %5p\t[%d] [%t] (%F:%L)\n \t%m%n\n
Continued from earlier 2012-??.
------------------------
Mail sent to Davide Eynard (should have sent to Damian Steer).
I think of reusing your code inside my GUI and framework EulerGUI [1] .
I would like to retrieve my Google mails to implement a Semantic management of contacts.
Are you aware of some users ?
I'm trying to compile the svn head .
This class is not in ARQ 2.5.0 :
com.hp.hpl.jena.sparql.engine.main.Stage
I could not take the abstract class
com.hp.hpl.jena.graph.query.Stage
Also StageList is not found .
There are 88 errors in eclipse, after doing
mvn eclipse:eclipse
Attached is the Maven pom.xml I have made .
Kind regards
[1] http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html
Lost 6 days of blog by a sudden stop of Ubuntu while editing in Amaya :((( !
Scalagen is a Java to Scala conversion tool. Convert via the command line like this:
mvn com.mysema.scalagen:scalagen-maven-plugin:0.1.3:main -DtargetFolder=target/scala
Or, simpler:
mvn scalagen:main # and to convert test sources mvn scalagen:test
Translated SourceFactory in Scala ( with scalagen and 2 manual corrections )
Failed tests: test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3> Tests in error: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..)
/home/jmv/src/eulergui/src/main/scala/eulergui/project/SourceFactory.scala:77: error: reassignment to val [INFO] url = openConnection.getURL [INFO] ^ [ERROR] /home/jmv/src/eulergui/src/main/scala/eulergui/project/SourceFactory.scala:95: error: recursive value looksLikeXMLStart needs type [INFO] val looksLikeXMLStart = looksLikeXMLStart(firstLine)
<ontologiae> jmvanel: do you know http://amine-platform.sourceforge.net/
Manual of preceding version:
http://www.doc.ic.ac.uk/~shm/Software/progol4.5/man/tutorial4.4.ps
Inductive Logic Programming: Theory and methods
Stephen Muggleton, Luc de Raedt
http://www.sciencedirect.com/science/article/pii/0743106694900353
An Introduction to Progol - Dottorato di ricerca
by S Roberts - 1997
http://dottorato.di.uniba.it/dottoratoXXVI/dm/Progol.pdf
I was able give Progol the output of Euler with eye --pcl :
cd ~/src/eulergui/examples/ eye --pcl kings_of_France.n3 > /tmp/k.pl cd ~/src/progol5_0/source/ ./progol /tmp/k.pl CProgol Version 5.0 [Testing for contradictions] [No contradictions found] [No observables found]
No very satisfying, but it's good that Progol accepts Prolog with atoms betweens '' like:
'<http://dbpedia.org/property/father>'( '<http://dbpedia.org/resource/Louis_Joseph,_Dauphin_of_France>', '<http://dbpedia.org/resource/Louis_XVI_of_France>').
Hopefully the type and mode declarations for Progol can be obtained from ontology.
Before doing more with semantic web data, I run the example in Introduction to Progol by S Roberts :
eastbound(train1). modeh(1,eastbound(+train))? train(train1). eastbound(train2). train(train2). eastbound(train3). train(train3). listing(eastbound/1)? nextcar(train1,car1_1). nextcar(train2,car2_1). nextcar(train3,car3_1). modeb(1,nextcar(+train,-car))? car(car1_1). car(car2_1). car(car3_1). modeb(1,shape(+car,#shape))? shape(car1_1,circle). shape(car2_1,circle). shape(car3_1,circle). shape(circle). % negative examples: :-eastbound(train4). :-eastbound(train5). :-eastbound(train6). train(train4). train(train5). train(train6). nextcar(train4,car4_1). nextcar(train5,car5_1). nextcar(train6,car6_1). car(car4_1). car(car5_1). car(car6_1). shape(car4_1,square). shape(car5_1,square). shape(car6_1,square). shape(square). % the big question generalise(eastbound/1)?
it did not find the complete rule, only half of it:
eastbound(A) :- nextcar(A,B).
instead of :
eastbound(A) :- nextcar(A,B), shape(B,circle).
Posted here : https://aiguy.wordpress.com/2012/06/09/more-on-progol
A Brute Force Approach to Solving the Knight’s Tour Problem using Prolog
Robert Borrell , Wells Fargo Bank, Phoenix, Arizona, USA
I develop EulerGUI, a GUI tool for semantic web and rules, and I'd like to generate the mode and type from ontologies.
My use cases are : recover rules to :
<jmvanel> this morning had a meeting with a guy working in identity management ; will probably work for them.
I dream of a browser plugin that will turn my navigation into N3
TODO
I was able to compile and run it on Ubuntu 12.10, after instaling mono-gmcs :
oem-laptop: ~/src/eulersharp/trunk/2004/01swap/src/Eulersharp/ % gmcs *.cs output/*.cs -r:System.Web ... Parser.cs(379,9): warning CS0219: The variable `start' is assigned but its value is never used Compilation succeeded - 29 warning(s) % ls -l *.exe -rwxrwxr-x 1 jmv jmv 121344 nov. 12 18:48 AssemblyInfo.exe % ./AssemblyInfo.exe Version: 1.5.97 Usage: Euler [--step count] [--debug] [--trace] axiom ... [--nope] [--think] [--filter|--query] lemma
Also, I changed this at line 58 in AssemblyInfo.cs :
// [assembly: AssemblyKeyFile("C:/sfcvs/2004/01swap/common/data/key.snk")] [assembly: AssemblyKeyFile("../../common/data/key.snk")]
However the result is empty for a simple case:
cd ~/src/eulergui/examples svn info https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/examples AssemblyInfo.exe --nope --think BloodPressure.n3 --query catch_allQ.n3
Empty output , just prefixes !
Response by Jos:
This one is in the category "Previous engines" see http://eulersharp.sourceforge.net/README
and will remain so for the time being.
I recommend to (web)invoke the "Current engine" http://eulersharp.sourceforge.net/README#eye
Inductive logic programming :
http://en.wikipedia.org/wiki/Inductive_logic_programming
http://www.doc.ic.ac.uk/~shm/ilp.html
Looking at Progol : http://www.doc.ic.ac.uk/~shm/progol.html
Progol is by Stephen Muggleton
cd ~/src/progol5_0/source/ make progol wc *c *h 13915 36436 370418 total
https://sourceforge.net/projects/n3editor/?source=recommended
https://sourceforge.net/projects/eulergui/files/eulergui/1.12/stats/timeline
Updated here about EG : http://stackoverflow.com/questions/5332937/desktop-sparql-client-for-jena-tdb
svn co https://svn.nextapp.com/svn/echo3/trunk echo3 cd echo3 ant dist export ECHO3_LIB_HOME=$HOME/src/echo3/dist/lib export SERVLET_LIB_JAR=$HOME/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar cd src/server-java-examples/numberguess ant war sudo cp war/NumberGuess.war /var/lib/jetty/webapps/ sudo /etc/init.d/jetty start sudoedit /etc/default/jetty sudo /etc/init.d/jetty start
http://localhost:8080/NumberGuess/app
By Dr. Davide Eynard, PhD
Post-Doctoral Fellow and Lecturer
Università della Svizzera Italiana (University of Lugano)
Faculty of Communication Sciences
Institute of Communication Technologies
http://davide.eynard.it/2009/04/25/squirrelrdf-imap-is-out/
www.hpl.hp.com/techreports/2007/HPL-2007-161.pdf
svn co https://jena.svn.sourceforge.net/svnroot/jena/SquirrelRDF/trunk SquirrelRDF
cd lib ln -s ~/.m2/repository/org/apache/jena/jena-core/2.7.3/jena-core-2.7.3.jar . ln -s ~/.m2/repository/org/apache/jena/jena-arq/2.9.3/jena-arq-2.9.3.jar .
Mail sent to Davide Eynard (should have sent to Damian Steer). Continued on 2012-11-20
local links on "Semantic web based application framework"
Translated from my fr blog:
One idea I have is to make a semantic task manager with business rules. We can reuse existing tools, such as Google Calendar, and add annotations according to Semantic Web technologies to tasks, emails, contacts (provided that Google provide URI for this). Must be able to recover the data via web services or IMAP. Then you can add annotations as:
:contact1 :a :Partner . :meeting1 a :Meeting ; :about :PartnerRelationship .
cf in french :
deductions-fr group :
Significant classes in ontology
CalendarEntry <|--- Visit, TelephoneCall, Encounter EMail EmployeeTitle, Company <|--- ITServices properties : followUp Contact <|--- Partner, Customer, Technical, Advisor (possible or actual), Candidate Expectancy <|--- Contract, Partnership Offer <|--- Training, Coaching, KnowledgeEngineering, Development
Rules
Features
http://code.google.com/intl/fr-FR/apis/contacts/
http://code.google.com/apis/calendar/
http://code.google.com/intl/fr-FR/apis/tasks/
http://docs.ckan.org/en/latest/linked-data-and-rdf.html
This works:
curl -L -H "Accept: text/n3" http://thedatahub.org/dataset/gold-prices
CKAN itself in thedatahub : http://thedatahub.org/dataset/ckan
I wonder what is the status of http://semantic.ckan.net/sparql/
Statistics:
SELECT (COUNT(?x) AS ?count) WHERE { ?x ?p ?o }
Result for dbpedia:
277551061^^http://www.w3.org/2001/XMLSchema#integer
Result for http://semantic.ckan.net/sparql/
720923^^http://www.w3.org/2001/XMLSchema#integer
Conclusion: http://semantic.ckan.net/sparql/ is useless : it does not contain the SPARQL endpoints, and not much data , as can be seen from this query :
CONSTRUCT { <http://thedatahub.org/dataset/data-incubator-musicbrainz> ?P ?V . } WHERE { <http://thedatahub.org/dataset/data-incubator-musicbrainz> ?P ?V . }
Bonjour
Je suis heureux d'annoncer la livraison 1.12 de EulerGUI, un outil de développement et un cadriciel pour le Web sémantique et les règles, sous licence LGPL, en Java.
Les améliorations concernent essentiellement des nouvelles fonctionnalités du client graphique pour le Web sémantique, et des corrections pour SPARQL. La liste complète est la suivante:
- Nouvel outil: si toutes les propriétés et les classes ne sont pas déclarées, générer un squelette d'ontologie pour les déclarations manquantes
- Nouvel outil: SPARQL 1.1 update : saisir du texte SPARQL et le serveur dans une fenêtre spécifique avec jEdit pour le texte SPARQL
- Une nouvelle source N3: Attempto Anglais Contrôlé
- Une nouvelle source N3: Squall : Anglais Contrôlé pour SPARQL
- Impression du temps de téléchargement dans la console pour SPARQL
- Améliorer la génération de Graphviz pour les faits et les règles
- Dans le champ de saisie d'une URL, la touche retour déclenche l'action
- Mises à niveau des bibliothèques : Euler: 2012-11, Drools 5.0 Beta1
Cadriciel
Cellule des tableaux N3: gérer les types XSD, représenter des propriétés objet sous forme d'hyperliens
FIX
- SPARQL: en cas d'erreur de syntaxe ou de temps limite, etc, montrer une fenêtre d'avertissement
- moteur Drools/N3 : CORRECTIF _:d kb:retract (?S ?P false ).
Télécharger:
ttps://sourceforge.net/projects/eulergui/
Documentation :
http://eulergui.sourceforge.net/documentation.html
Présentations, tutorials, vidéos :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L5890
[Announce] EulerGUI 1.12 - sent to semantic-web, eulergui-user
I am pleased to announce the release 1.12 of EulerGUI, a development tool and a framework for the Semantic Web and rules, under LGPL, in Java.
The improvements mainly concern new features in Semantic Web client GUI, and SPARQL fixes. The full list is :
GUI
- New tool: if all properties and classes are not declared, generate a skeleton ontology for missing declarations
- New tool: SPARQL 1.1 Update: enter SPARQL text and endpoint in a specific window with jEdit for SPARQL text
- new N3 source: ATTEMPTO Controled English parser
- new N3 source: Squall Controled English for SPARQL
- print download time in console for SPARQL
- enhance Graphviz generation for facts and rules
- in field for entering an URL, return key triggers action
- library upgrades : Euler 2012-11, Drools 5.0-Beta1
Framework
N3 table cell: manage XSD types, represent Object properties as hyperlinks
FIX
- SPARQL: in case of error, syntax, or timeout, etc, show a warning popup
- Drools/N3 engine : FIX _:d kb:retract ( ?S ?P false ) .
Download:
https://sourceforge.net/projects/eulergui/
Documentation :
http://eulergui.sourceforge.net/documentation.html
Presentations, tutorials, videos, screenshots
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L5890
Full Change Log :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/CHANGELOG
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8000 \ -jar target/eulergui-1.12-jar-with-dependencies.jar
In eclipse remote Java application , select "Socket attach" .
oem-laptop: ~/src/rww-play/ % git pull --verbose remote: Counting objects: 109, done. remote: Compressing objects: 100% (30/30), done. remote: Total 65 (delta 35), reused 58 (delta 28) Unpacking objects: 100% (65/65), done. From git://github.com/read-write-web/rww-play 502c2ce..97d6906 master -> origin/master fatal: Not a git repository: /home/jmv/src/w/rww-play/.git/modules/Play20
TODO : put it in EG manual "Comparison of EulerGUI with TopBraid Composer"
Upgraded to Java 1.7 09 :
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
May 26-30, 2013, Montpellier, France.
http://2013.eswc-conferences.org/
==== *Second Call for Workshops and Tutorials* ====
ESWC 2013 invites the submission of tutorial and workshop proposals on all topics related to semantic technologies and neighboring fields.
The workshops and tutorials will take place on 26th and 27th of May, 2013.
=== Time Schedule ===
Proposals due: Nov 23, 2012 - 23:59 Hawaii Time
Notification of acceptance: Dec 7, 2012 - 23:59 Hawaii Time
Workshop and Tutorial days: May 26 and May 27, 2013
=== More Information ===
http://2013.eswc-conferences.org/important-dates/call-workshops
http://2013.eswc-conferences.org/important-dates/call-tutorials
Bob Ducharme did this too :) :
http://www.snee.com/bobdc.blog/2011/04/getting-started-with-sparql-up.html
% ./fuseki-server --verbose --update --loc=/home/jmv/data/tdb /test1
15:33:13 INFO Server :: TDB dataset: directory=/home/jmv/data/tdb
15:33:14 INFO Server :: Dataset path = /test1
15:33:14 INFO Server :: Fuseki 0.2.6-SNAPSHOT 2012-11-01T09:09:12+0000
15:33:14 INFO Server :: Started 2012/11/02 15:33:14 CET on port 3030
Launching an update from EulerGUI,
PREFIX foaf: <http://xmlns.com/foaf/0.1/> INSERT DATA { <http://myprofile-project.org/XXXX#me> a foaf:Person ; }
with this server URI:
http://localhost:3030/test1/update
I get this on the Fuseki console :
18:31:42 INFO Fuseki :: [1] POST http://localhost:3030/test1/update
18:31:42 INFO Fuseki :: [1] Host localhost:3030
18:31:42 INFO Fuseki :: [1] Content-Length 954
18:31:42 INFO Fuseki :: [1] Content-Type application/sparql-update
18:31:42 INFO Fuseki :: [1] User-Agent Apache-HttpClient/4.1.2 (java 1.5)
18:31:42 INFO Fuseki :: [1] Connection keep-alive
18:31:42 INFO Fuseki :: [1] Update = PREFIX dc: <http://purl.org/dc/elements/1.1/> PREFIX dbpedia-owl: <http://dbpedia.org/ontology/> PREFIX e: <http://eulersharp.sourceforge.net/2003/03swap/log-rules#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> PREFIX void: <http://rdfs.org/ns/void#> PREFIX list: <http://www.w3.org/2000/10/swap/list#> PREFIX javam: <http://java.sun.com/method#> PREFIX log: <http://www.w3.org/2000/10/swap/log#> PREFIX javap: <http://java.sun.com/predicate#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> PREFIX eg: <http://eulergui.sourceforge.net/engine.owl#> PREFIX string: <http://www.w3.org/2000/10/swap/string#> PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX java: <http://java.sun.com/class#> PREFIX dbpprop: <http://dbpedia.org/property/> INSERT DATA { <http://myprofile-project.org/XXXX#me> rdf:type foaf:Person . }
18:31:43 INFO Fuseki :: [1] 204 No Content
Then I checked the database content with this user web interface : http://localhost:3030/sparql.tpl and the catch-all query :
construct { ?S ?P ?O } where { ?S ?P ?O }
Work fine :) BUT !!!!!!!!!! no N3 or Turtle from Fuseki !!!!!!!!!
Results : Failed tests: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700 Tests in error: testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*"
Release :
DISPLAY=:1 mvn release:prepare DISPLAY=:1 mvn release:perform
<jmvanel> release is well on the way : https://eulergui.svn.sourceforge.net/svnroot/eulergui/tags/eulergui-1.12
<jmvanel> meanwhile , reading "Programming in Scala"
[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 50:01.994s
<jmvanel> have to upgrade my svn directories
<jmvanel> it seems that my HDMI Ubuntu bug is over :)
jmvanel> just booked at http://agi-conference.org/2012/schedule/
rm test/new_source.n3 DISPLAY=:1 LANG=en mvn -f pom_jar.xml release:prepare -Dresume=false [INFO] Checking dependencies and plugins for snapshots ... There are still some remaining snapshot dependencies. : Do you want to resolve them now? (yes/no) no: : ^C % DISPLAY=:1 LANG=en mvn -f pom_jar.xml release:prepare -Dresume=false -DdryRun=true --debug [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7:22.169s [INFO] Finished at: Wed Nov 07 12:29:14 CET 2012 [INFO] Final Memory: 13M/168M [INFO] ------------------------------------------------------------------------
For release , revert to plain no-parent pom ( from Revision 3338 )
[INFO] Results : [INFO] [INFO] Failed tests: testStringUS(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...string, language=en-[us](..) [INFO] testAloneSubject(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..) [INFO] testListSubjectQVar(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..) [INFO] testPropertyList(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..) [INFO] testSimpleBracketBlocMakesJustOneTriple(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..) [INFO] testRootFormula(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#someName20(..) [INFO] [INFO] Tests in error: [INFO] testSquall(eulergui.inputs.TestSPARQL) [INFO] [INFO] Tests run: 202, Failures: 6, Errors: 1, Skipped: 0 [INFO] [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] BUILD FAILURE
On Debian:
[INFO] Failed tests: testAloneSubject(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..) [INFO] testListSubjectQVar(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..) [INFO] testPropertyList(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#A(..) [INFO] testSimpleBracketBlocMakesJustOneTriple(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...iable(..) [INFO] testRootFormula(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...t/projects/eulergui/[#someName20(..) [INFO] testStringUS(eulergui.parser.n3.impl.parser4j.service.TestN3FileParser): bad result expected:<...string, language=en-[us](..) [INFO] testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700
https://github.com/taskify/taskify.github.com
svn export -r 3038 https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/pom_minimal.xml A pom_minimal.xml Fin d'exportation. oem-laptop: /tmp/ % svn export -r 3038 https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/pom.xml
COMMIT
- remove prints on the console
- doc. about Scala build
http://www.w3.org/People/Berners-Lee/
Question EG IEC
<jmvanel> to manage versionning, what do you prefer : reification , or putting old triples in different named graphs ?
<jmvanel> 2 use cases: 1) evolution of an ontology
<jmvanel> 2) managing music tags: update tags from internet , or compute tempo
New feature in #EulerGUI : SPARQL 1.1 Update: enter SPARQL text and endpoint in a specific window
Download: http://sourceforge.net/projects/eulergui/files/eulergui/1.12/
COMMIT
- FIX TestN3FormatForProject
- upgrade Euler(sharp) to 2012-11
- update CHANGELOG
testSquall fails : normal on Ubuntu :( !
TEST Results : Tests in error: testSquall(eulergui.inputs.TestSPARQL) Tests run: 202, Failures: 0, Errors: 1, Skipped: 0 [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 15:49.167s [INFO] Finished at: Mon Nov 05 11:57:47 CET 2012 [INFO] Final Memory: 42M/380M
Thread [AWT-EventQueue-0] (Suspended) ApplicationKB.renameURI(String, String) line: 743 Project.setProjectURI(URI) line: 1447 SaveProjectAsN3LocalAction.actionPerformed(ActionEvent) line: 49 JMenu$1(AbstractButton).fireActionPerformed(ActionEvent) line: 2018
cat ~/bin/jvm-terminals gnome-terminal \ --tab --title=eulergui --working-directory=$HOME/src/eulergui --active \ --tab --title=audio-dam --working-directory=$HOME/bizz/taxochronos/src/audio-dam/ui-swing \ --tab --title=eulersharp --working-directory=$HOME/src/eulersharp \ --tab --title=deductions --working-directory=$HOME/src/deductions &
COMMIT
- try to make RuleBasedApplicationStarter and ApplicationKB more thread safe
- extract class SaveProjectAsN3LocalAction
TODO: Failed tests: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700
test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject): output contains <plants.n3>
TODO reestablish modification Checker for user preferences
bad N3 subject in internal KB, when adding an N3 source in a new (unsaved) project :
<file:/home/jmv/src/eulergui/> <http://www.w3.org/2002/07/owl#imports> <examples/plants.n3> .
Le sujet de #dig est : Decentralized Information Group @ MIT http://dig.csail.mit.edu/
webid Implementations
http://www.w3.org/2005/Incubator/webid/wiki/Implementations
https://github.com/stars
http://blog.webplatform.org/
construct { ?S ?P ?O } where { ?S ?P ?O }
oem-laptop: ~/src/jena-fuseki-0.2.6-SNAPSHOT/ % ./fuseki-server --verbose --loc=/home/jmv/data/tdb 15:31:17 INFO Server :: TDB dataset: directory=/home/jmv/data/tdb No dataset path name given
% ./fuseki-server --verbose --loc=/home/jmv/data/tdb /test1
15:33:13 INFO Server :: TDB dataset: directory=/home/jmv/data/tdb
15:33:14 INFO Server :: Dataset path = /test1
15:33:14 INFO Server :: Fuseki 0.2.6-SNAPSHOT 2012-11-01T09:09:12+0000
15:33:14 INFO Server :: Started 2012/11/02 15:33:14 CET on port 3030
http://localhost:3030/test1/update
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:397) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:397) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:148) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732) at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:208) at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:154) at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:128) at com.hp.hpl.jena.sparql.modify.UpdateProcessRemote.execute(UpdateProcessRemote.java:60) at eulergui.gui.tools.LaunchSPARQLUpdate.launchUpdate(LaunchSPARQLUpdate.java:89)
eg examples/table_app.n3p
Add this in N3 shell
<timbl> a foaf:Person ; foaf:name "Tim BL"; foaf:knows <http://jmvanel.free.fr>.
Then the table is updated with the triples about <timbl> .
Framework for Policy Aware Reuse of Content on the WWW
- 2009 - by Oshani Wasana Seneviratne.
http://dspace.mit.edu/bitstream/handle/1721.1/53327/550582069.pdf
http://aiti.mit.edu/accounts/37/
+ another on CNL ???
Drools, Jena rules : how to integrate in Banana ?
banana-rdf
https://dvcs.w3.org/hg/read-write-web/
See "to run the Web App" in README.markdown
Access the URL in EulerGUI:
linked data platform Proposed spec.: http://www.w3.org/2012/ldp/hg/ldp.html ( older : http://www.w3.org/TR/ldp/#toc )
Participants
Arnaud Le Hors == chair person
http://www.w3.org/2012/ldp/wiki/F2F1#Day_2_-_November_2nd
Eric Gordon Prud'hommeaux http://www.w3.org/People/Eric/
Decentralized ACL != pure ACL
http://www.w3.org/2012/ldp/wiki/AccessControl
Is this relevant ?
I need examples of what one cannot do with SPARQL servers , and could do with LDP servers .
long discussion on composition , strong or not : containment or agreggation
test suite : UCR <cygri> example of UC&R: http://www.w3.org/TR/rdf-dawg-uc/
BDD ?
<betehess> http://en.wikipedia.org/wiki/Behavior-driven_development
HTTP vocabulary in RDF
<rgarcia> cygri: HTTP-in-RDF may be relevant for this
http://www.w3.org/2005/Incubator/webid/spec/
http://semanticweb.com/spotlight-on-callimachus_b20500 ???
www.univ-valenciennes.fr/LAMIH-intra/site/specifique/publications/203569.pdf
Linked Data Platform
http://www.w3.org/2012/ldp/wiki/Main_Page
* [ericP] (eric@team.irc.w3.org): Eric Prud'hommeaux * [ericP] team.irc.w3.org :W3C Team IRC Server * [ericP] @#sparql @#ldp @#rdf-wg @#sw-team @#hcls2 @#hcls * [ericP] is connected via SSL (secure link) * [ericP] inactif 00:00:37, ouverture de session : Tue Oct 16 02:22:36 * [ericP] Fin de la liste WHOIS. * [ahaller2] (~ahaller2@public.cloak): Armin Haller * [ahaller2] public.irc.w3.org :W3C Public IRC Server * [ahaller2] #linkeddata #ldp * [ahaller2] inactif 00:24:43, ouverture de session : Thu Nov 1 13:08:36 * [ahaller2] Fin de la liste WHOIS. * [antonis] (~antonis@public.cloak): Antonis Loizou * [antonis] public.irc.w3.org :W3C Public IRC Server * [antonis] #ldp * [antonis] inactif 01:20:52, ouverture de session : Thu Nov 1 09:10:28 * [antonis] Fin de la liste WHOIS. * [ArnaudLH] (~alehors@public.cloak): Arnaud Le Hors * [ArnaudLH] public.irc.w3.org :W3C Public IRC Server * [ArnaudLH] #ldp * [ArnaudLH] inactif 00:01:25, ouverture de session : Thu Nov 1 08:49:51 * [ArnaudLH] Fin de la liste WHOIS. * [Ashok_Malhotra] (~5bd9a8dc@public.cloak): [5bd9a8dc] CGI:IRC User * [Ashok_Malhotra] public.irc.w3.org :W3C Public IRC Server * [Ashok_Malhotra] #ldp * [Ashok_Malhotra] inactif 00:00:39, ouverture de session : Thu Nov 1 13:31:17 * [Ashok_Malhotra] Fin de la liste WHOIS. * [BartvanLeeuwen] (~bart@public.cloak): Bart van Leeuwen * [BartvanLeeuwen] public.irc.w3.org :W3C Public IRC Server * [BartvanLeeuwen] #ldp * [BartvanLeeuwen] inactif 00:29:46, ouverture de session : Thu Nov 1 10:56:42 * [BartvanLeeuwen] Fin de la liste WHOIS. * [bblfish] (~bblfish@public.cloak): Henry Story * [bblfish] public.irc.w3.org :W3C Public IRC Server * [bblfish] #ldp #webid * [bblfish] inactif 00:08:10, ouverture de session : Thu Nov 1 16:52:00 * [bblfish] Fin de la liste WHOIS. * [betehess] (bertails@team.cloak): Alexandre Bertails * [betehess] team.irc.w3.org :W3C Team IRC Server * [betehess] #ldp #webid #validator #sw-team @#mouettes #RDB2RDF * [betehess] is connected via SSL (secure link) * [betehess] inactif 00:06:02, ouverture de session : Thu Nov 1 08:55:55 * [betehess] Fin de la liste WHOIS. * [cygri] (~cygri@public.cloak): Richard Cyganiak * [cygri] public.irc.w3.org :W3C Public IRC Server * [cygri] #ldp #gld #rdf-wg #RDB2RDF * [cygri] inactif 00:09:30, ouverture de session : Thu Nov 1 13:07:58 * [cygri] Fin de la liste WHOIS. * [davidwood] (~davidwood@public.cloak): David Wood * [davidwood] public.irc.w3.org :W3C Public IRC Server * [davidwood] #rdf-wg #ldp #swcg * [davidwood] inactif 00:14:48, ouverture de session : Thu Nov 1 13:12:13 * [davidwood] Fin de la liste WHOIS. * [develD] (~nrichter@public.cloak): Norman Richter * [develD] public.irc.w3.org :W3C Public IRC Server * [develD] #ldp * [develD] inactif 00:54:52, ouverture de session : Thu Nov 1 16:05:34 * [develD] Fin de la liste WHOIS. * [ivan] (ivan@team.cloak): Ivan Herman * [ivan] team.irc.w3.org :W3C Team IRC Server * [ivan] #ldp #sw-team #swcg #prov #rdfa #rdf-wg * [ivan] is connected via SSL (secure link) * [ivan] inactif 00:09:36, ouverture de session : Thu Nov 1 13:52:57 * [ivan] Fin de la liste WHOIS. * [jmvanel] (~jmvanel@public.cloak): jmvanel * [jmvanel] public.irc.w3.org :W3C Public IRC Server * [jmvanel] #ldp #webid * [jmvanel] is connecting from *@public.cloak 91.217.168.220 * [jmvanel] inactif 00:51:12, ouverture de session : Thu Nov 1 15:48:22 * [jmvanel] Fin de la liste WHOIS. * [JohnArwe] (~johnarwe@public.cloak): JohnArwe * [JohnArwe] public.irc.w3.org :W3C Public IRC Server * [JohnArwe] #ldp * [JohnArwe] inactif 01:46:51, ouverture de session : Thu Nov 1 15:13:41 * [JohnArwe] Fin de la liste WHOIS. * [jonathandray] (~jonathandray@public.cloak): Jonathan Dray * [jonathandray] public.irc.w3.org :W3C Public IRC Server * [jonathandray] #ldp * [jonathandray] inactif 00:50:57, ouverture de session : Thu Nov 1 16:09:16 * [jonathandray] Fin de la liste WHOIS. * [krp] (~krp@public.cloak): Kevin Page * [krp] public.irc.w3.org :W3C Public IRC Server * [krp] #ldp * [krp] inactif 00:39:32, ouverture de session : Thu Nov 1 16:13:51 * [krp] Fin de la liste WHOIS. * [LeeF] (~lee@public.cloak): Lee Feigenbaum * [LeeF] public.irc.w3.org :W3C Public IRC Server * [LeeF] #ldp #rdf-wg #RDB2RDF #sparql * [LeeF] inactif 02:43:26, ouverture de session : Thu Nov 1 14:17:10 * [LeeF] Fin de la liste WHOIS. * [MacTed] (~Thud@public.cloak): That Guy There * [MacTed] public.irc.w3.org :W3C Public IRC Server * [MacTed] @#virtuoso @#swxg #egov #RDB2RDF #federated #webid #rdf-wg #rdfa #prov #gld @#unhosted #sparql #hcls #hcls2 #privacy #ldp #rww * [MacTed] inactif 00:10:09, ouverture de session : Thu Nov 1 15:26:11 * [MacTed] Fin de la liste WHOIS. * [nmihindu] (~nmihindu@public.irc.w3.org): localhost/127.0.0.1 - W3C Public qwebirc * [nmihindu] public.irc.w3.org :W3C Public IRC Server * [nmihindu] #ldp * [nmihindu] inactif 00:56:44, ouverture de session : Thu Nov 1 16:03:57 * [nmihindu] Fin de la liste WHOIS. * [oberger] (~oberger@public.cloak): Olivier Berger * [oberger] public.irc.w3.org :W3C Public IRC Server * [oberger] #webid #ldp * [oberger] inactif 00:01:28, ouverture de session : Thu Nov 1 14:26:39 * [oberger] Fin de la liste WHOIS. * [rgarcia] (~rgarcia@public.cloak): Raúl García Castro * [rgarcia] public.irc.w3.org :W3C Public IRC Server * [rgarcia] #ldp * [rgarcia] inactif 00:34:54, ouverture de session : Thu Nov 1 16:03:17 * [rgarcia] Fin de la liste WHOIS. * [roger] (~roger@public.irc.w3.org): localhost/127.0.0.1 - W3C Public qwebirc * [roger] public.irc.w3.org :W3C Public IRC Server * [roger] #ldp * [roger] inactif 00:16:18, ouverture de session : Thu Nov 1 14:19:23 * [roger] Fin de la liste WHOIS. * [RRSAgent] (rrsagent@team.irc.w3.org): Chat Logger * [RRSAgent] team.irc.w3.org :W3C Team IRC Server * [RRSAgent] #prov #ab #html-techs-tf #i18n #webfonts #xproc #signage #multimodal #indie-ui #ldp #eo #crypto #dap #mlw-lt @#ac #webappsec #tpac #css #html-wg * [RRSAgent] is connected via SSL (secure link) * [RRSAgent] inactif 00:02:05, ouverture de session : Tue Oct 16 02:22:46 * [RRSAgent] Fin de la liste WHOIS. * [Ruben] (~ruben@public.cloak): Ruben Verborgh * [Ruben] public.irc.w3.org :W3C Public IRC Server * [Ruben] #ldp * [Ruben] inactif 00:39:27, ouverture de session : Thu Nov 1 15:46:58 * [Ruben] Fin de la liste WHOIS. * [sandro] (sandro@team.irc.w3.org): Sandro Hawke * [sandro] team.irc.w3.org :W3C Team IRC Server * [sandro] #tr #linkeddata #egov #gld #ldp #sw-team * [sandro] is connected via SSL (secure link) * [sandro] inactif 00:04:54, ouverture de session : Tue Oct 16 02:22:46 * [sandro] Fin de la liste WHOIS. * [SteveBattle] (~Steve@public.cloak): Steve Battle * [SteveBattle] public.irc.w3.org :W3C Public IRC Server * [SteveBattle] #ldp * [SteveBattle] inactif 00:04:11, ouverture de session : Thu Nov 1 13:08:59 * [SteveBattle] Fin de la liste WHOIS. * [SteveS] (~sspeiche@public.cloak): Steve Speicher * [SteveS] public.irc.w3.org :W3C Public IRC Server * [SteveS] #ldp * [SteveS] inactif 00:13:46, ouverture de session : Thu Nov 1 13:09:21 * [SteveS] Fin de la liste WHOIS. * [svillata] (~svillata@public.irc.w3.org): localhost/127.0.0.1 - W3C Public qwebirc * [svillata] public.irc.w3.org :W3C Public IRC Server * [svillata] #ldp * [svillata] inactif 00:26:34, ouverture de session : Thu Nov 1 16:03:57 * [svillata] Fin de la liste WHOIS. * [timbl] (timbl@team.cloak): Tim Berners-Lee * [timbl] team.irc.w3.org :W3C Team IRC Server * [timbl] #ldp #ac #tpac-chat #tagmem * [timbl] is connected via SSL (secure link) * [timbl] inactif 00:15:30, ouverture de session : Thu Nov 1 13:21:16 * [timbl] Fin de la liste WHOIS. * [tpacbot] (~nodebot@public.cloak): nodeJS IRC client * [tpacbot] public.irc.w3.org :W3C Public IRC Server * [tpacbot] #i18n #indie-ui #html-wg #webappsec #mlw-lt #ldp #crypto #dap * [tpacbot] inactif 02:04:39, ouverture de session : Thu Nov 1 13:51:22 * [tpacbot] Fin de la liste WHOIS. * [trackbot] (trackbot@team.cloak): TrackBot * [trackbot] team.irc.w3.org :W3C Team IRC Server * [trackbot] #tracker #html-media #wcag2ict #ldp #indie-ui #mediacap #crypto #mlw @#crm #mlw-lt #coremob #webid #hcg #webdocs @#test20111026 @#htmldata @#webschema #dntchairs #dnt #webappsec #council * [trackbot] @#oilgaschem #eval #gld #webrtc #rd #prov #audio #webtv #rdf-wg #webevents #ogd #webperf @#newstd #webfonts #fx #rdfa #html-a11y #dap @#wpag @#ws-ra #geolocation #cg @#wsri @#mediaann * [trackbot] #mediafrag @#tsdtf #webapps #egov #xmlsec @#pr-firm @#psig @#soap-jms @#awwsw #html-wg #ercimsys @#ws-policy-eds @#jltf @#owl @#sml-eds @#htmltest #exi @#rif @#ua #xslfo #math #eo @#au * [trackbot] #sparql #wai-wcag #swcg @#voice #multimodal #tagmem @#forms #pf #i18n @#er #css #svg #ab @#w3t * [trackbot] inactif 00:04:54, ouverture de session : Thu Nov 1 16:50:23 * [trackbot] Fin de la liste WHOIS. * [webr3] (~nathan@public.cloak): webr3 * [webr3] public.irc.w3.org :W3C Public IRC Server * [webr3] #ldp #identity #social #webid * [webr3] inactif 01:22:35, ouverture de session : Mon Oct 29 15:04:32 * [webr3] Fin de la liste WHOIS. * [Yves] (ylafon@team.irc.w3.org): The Fool on The Hill * [Yves] team.irc.w3.org :W3C Team IRC Server * [Yves] #tpac-chat #tpac #webapps #webidl #wam #wamt #monkeys #pirate #tagmem #mediafrag #ldp * [Yves] is an IRC operator * [Yves] is connected via SSL (secure link) * [Yves] inactif 03:07:20, ouverture de session : Tue Oct 16 08:02:15
Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended) ApplicationKB.projectLoaded(Project) line: 394 ProjectChangeSupport.fireProjectLoaded(Project) line: 116 Project.prepare() line: 1131 ProjectFactory.prepareProject(Project, boolean) line: 335 ProjectFactory.prepareProject(Project, URL, boolean) line: 328 ProjectGUI$2.run() line: 368 Thread.run() line: 722
Protégé 4.2.0 build 276, OWL API 3.2.5 1957
Reading :
<http://bla> a owl:Ontology ; <http://bla> owl:imports <plants.n3> .
Stack:
Error 4 Logged at Thu Nov 01 14:26:57 CET 2012 IllegalArgumentException: URI is not absolute java.net.URI.toURL(URI.java:1095) org.protege.editor.owl.model.io.WebConnectionIRIMapper.getDocumentIRI(WebConnectionIRIMapper.java:41) uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.getDocumentIRIFromMappers(OWLOntologyManagerImpl.java:950) uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:627) uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadImports(OWLOntologyManagerImpl.java:1090) uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.makeLoadImportRequest(OWLOntologyManagerImpl.java:1118) org.coode.owlapi.rdfxml.parser.TPImportsHandler.handleTriple(TPImportsHandler.java:89) org.coode.owlapi.rdfxml.parser.OWLRDFConsumer.handleStreaming(OWLRDFConsumer.java:1700) org.coode.owlapi.rdfxml.parser.OWLRDFConsumer.statementWithResourceValue(OWLRDFConsumer.java:1655) uk.ac.manchester.cs.owl.owlapi.turtle.parser.OWLRDFConsumerAdapter.handleTriple(OWLRDFConsumerAdapter.java:87) uk.ac.manchester.cs.owl.owlapi.turtle.parser.TurtleParser.parseObject(TurtleParser.java:362)
COMMIT
update doc.
TODO : persistance of SPARQL text and endpoint in project
TODO internal KB broken
NOTE: I'm obliged to redirect System.err , because the errors in execution such as :
TemporaryFrame.TemporaryFrame(): java.net.UnknownHostException: data.fm: Nom ou service inconnu
are swallowed deep inside ARQ 's UpdateProcessRemote class , by a printStackTrace().
java.net.UnknownHostException: data.fm: Nom ou service inconnu at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:866) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1258) at java.net.InetAddress.getAllByName0(InetAddress.java:1211) at java.net.InetAddress.getAllByName(InetAddress.java:1127) at java.net.InetAddress.getAllByName(InetAddress.java:1063) at org.apache.http.impl.conn.DefaultClientConnectionOperator.resolveHostname(DefaultClientConnectionOperator.java:242) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:130) at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149) at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:573) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:425) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732) at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:208) at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:154) at org.openjena.riot.web.HttpOp.execHttpPost(HttpOp.java:128) at com.hp.hpl.jena.sparql.modify.UpdateProcessRemote.execute(UpdateProcessRemote.java:60)
Thread [main] (Suspended (exception NullPointerException)) ProjectFactory.restoreN3ProjectInN3(URI) line: 301 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 407 ProjectFactory.restoreAny(URI, boolean) line: 391 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 62 ProjectGUI.main(String[]) line: 224 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 ClassReference.invokeMethod(String, Object[], Class[]) line: 137 ClassReference.startApplication(String[]) line: 101 TestN3FormatForProject(TestJemmy).launchEulerGUIWithArgument(String) line: 261 TestN3FormatForProject.test_read_newproject_n3p_n3() line: 49
Results : Failed tests: test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<3> Tests in error: testimportN3(eulergui.project.TestProjectWithSubProjects) testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Wait for "JComponent with tool tip "Open N3 result.*"" subcomponent to be displayed testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*" test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded Tests run: 202, Failures: 1, Errors: 5, Skipped: 0
COMMIT
FIX Graphviz generation :
- remove bad "" on nodes and links
- Implication edge for a rule is now bold ; edge is between nodes : TODO should be between subgraphs
- Implication Edges are now dashed for triples on consequent side of rules
TESTED with examples/family_kings.n3p
Regarding EulerGUI and WebId
Regarding your work with Play for a facebook like app
N3SourceFromSPARQLSource.doUpdate(): file:/home/jmv/jmvanel.free.fr/data_fm_construct2.rq ; https://data.fm Cause: HttpException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Test SPARQL 1.1 https://data.fm/
PREFIX foaf: <http://xmlns.com/foaf/0.1/> INSERT DATA { <http://jmvanel.free.fr/jmv.rdf#me> a foaf:Person ; foaf:family_name "Vanel" ; foaf:givenname "Jean-Marc" ; foaf:homepage <file:/home/jmv/jmvanel.free.fr/> ; foaf:knows <http://sort-of.strangled.net/foaf.rdf#me> , <http://sort-of.crabdance.com/foaf.rdf#me> , <http://danbri.org/foaf.rdf#danbri> , <http://bblfish.net/people/henry/card#me> , <http://fcns.eu/people/andrei/card#me> , <http://moustaki.org/foaf.rdf#moustaki> , <http://www.agfa.com/w3c/jdroo/card.rdf#me> ; foaf:name "Jean-Marc Vanel" ; foaf:phone <tel:+33-689-162-952> ; foaf:schoolHomepage <http://www.ens-cachan.fr/> , <http://unice.fr> ; foaf:title "Mr" ; foaf:workInfoHomepage <http://deductions-software.com> ; foaf:workplaceHomepage <http://deductions-software.com> . }
http://graphite.ecs.soton.ac.uk/browser/?uri=http%3A%2F%2Fmelvincarvalho.com%2F
sleep 8h 15m ; mplayer \ ~/Musique/Jimi\ Hendrix\ -\ 1967\ -\ Axis-Bold\ As\ Love/02\ Up\ From\ The\ Skies.flac
eg ~/jmvanel.free.fr/jmv.rdf cd ~/src/eulergui/examples eg kings_of_France-genealogy_smart.rq eg family_kings.n3p eg book.n3
Nice answer by Arnte Ranta to my suggestion on verbalizing GF:
This is an idea with a lot of potential. One could have an abstract syntax for grammar rules, linearized to both GF code and to natural language verbalizations. The trick is to keep the verbalizations high-level enough - not paraphrasing all details of the code, but just capturing some general patterns.
There is a small example of the idea - but not very high level - in GF/examples/grammar-terms, see
https://github.com/GrammaticalFramework/GF/tree/master/examples/grammar-terms
A resource that would be great to have to extend it is a multilingual dictionary of grammar terms. Parts of it could perhaps be extracted from a source like Wikipedia. The use case I have in mind is an automatic generation of grammar documents for different languages in the RGL. Another case is grammar programming by voice.
http://www.w3.org/community/rww/wiki/TPAC-Lyon-2012
identification , authentifition, authorization
philipp: we develop OntoWiki,
Content of http://www.w3.org/2005/Incubator/webid/tpac/group in EulerGUI :
<http://www.w3.org/2005/Incubator/webid/tpac/group#socWeb> a foaf:Group ; foaf:member <https://my-profile.eu/people/gregoryB/card#me> , <https://my-profile.eu/people/pmaret/card#me> , <https://my-profile.eu/people/annbass/card#me> , <https://my-profile.eu/people/canary/card#me> , <https://my-profile.eu/people/cora1618/card#me> , <http://www.normanrichter.de/webid/norman#me> , <https://my-profile.eu/people/pfrischmuth/card#me> , <https://my-profile.eu/people/fwagner/card#me> , <https://my-profile.eu/people/betehess/card#me> , <https://my-profile.eu/people/jonathandray/card#me> .
An export as HTML in EulerGUI would be nice !
GitHub/TEA-eboook
BananaBread : C++ ==> JavaScript
Kozea
@W3Training
W3C community group
http://jmvanel.free.fr/jmv.rdf#me
The bad stuff is output by rdfModel.getLocalN3().toString() ,
which is implemented as :
return IOManager.getLocalCache(this);
Stack:
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: java.lang.RuntimeException: failed to GET /home/jmv/.eulergui/n3_cache/jmv.rdf#me_906479892813769583.rdf
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at euler.Euler.fromWeb(Euler.java:2360)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at euler.Euler.fromWeb(Euler.java:2420)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at euler.Euler.load(Euler.java:479)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at n3_project.helpers.N3toGraphviz.doGraphviz(N3toGraphviz.java:35)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at eulergui.gui.actions.GraphvizFrame.showGraphvizFrame(GraphvizFrame.java:23)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at eulergui.gui.actions.GraphvizFrame$1.actionPerformed(GraphvizFrame.java:44)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Component.processMouseEvent(Component.java:6505)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Component.processEvent(Component.java:6270)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Container.processEvent(Container.java:2229)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Component.dispatchEventImpl(Component.java:4861)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Container.dispatchEventImpl(Container.java:2287)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Component.dispatchEvent(Component.java:4687)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Container.dispatchEventImpl(Container.java:2273)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Window.dispatchEventImpl(Window.java:2713)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.Component.dispatchEvent(Component.java:4687)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue.access$000(EventQueue.java:101)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue$3.run(EventQueue.java:666)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue$3.run(EventQueue.java:664)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.security.AccessController.doPrivileged(Native Method)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue$4.run(EventQueue.java:680)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue$4.run(EventQueue.java:678)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.security.AccessController.doPrivileged(Native Method)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
16:04:21 [AWT-EventQueue-0] [error] AWT-EventQueue-0: at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
This exists :
jmv.rdf%23me_9192449597394896009.n3
but after this line:
file = URLDecoder.decode(file);
it becomes : jmv.rdf#me_9192449597394896009.n3 , which does not exist !!!
IRC Config. for XChat : irc.w3.org/6665
http://www.w3.org/community/rww/wiki/TPAC-Lyon-2012
<bblfish> http://tools.ietf.org/html/rfc6698
<bblfish> http://tools.ietf.org/wg/dane/
timbl:
http://dig.csail.mit.edu/2005/ajar/ajaw/Developer.html : rather github ???
<trueg> Get a bleeding edge build of Tabulator here: http://dig.csail.mit.edu/2007/tab/snapshot
My WebId is : http://jmvanel.free.fr/jmv.rdf#me
------------------------
<betehess> RRSAgent, please generate minutes
<RRSAgent> I have made the request to generate http://www.w3.org/2012/10/29-webid-minutes.html betehess
% wget --server-response http://www.w3.org/2005/Incubator/webid/tpac/group
--2012-10-29 16:18:10-- http://www.w3.org/2005/Incubator/webid/tpac/group
Résolution de www.w3.org... 128.30.52.37
Connexion vers www.w3.org|128.30.52.37|:80...échec: Connexion terminée par expiration du délai d'attente.
Nouvel essai.
--2012-10-29 16:18:37-- (essai: 2) http://www.w3.org/2005/Incubator/webid/tpac/group
Connexion vers www.w3.org|128.30.52.37|:80...connecté.
requête HTTP transmise, en attente de la réponse...
HTTP/1.1 200 OK
Date: Mon, 29 Oct 2012 15:18:38 GMT
Server: Apache/2
Content-Location: group.rdf
Vary: negotiate,accept
TCN: choice
Last-Modified: Mon, 29 Oct 2012 12:57:26 GMT
ETag: "491-4cd3236113980;4cd3236207bc0"
Accept-Ranges: bytes
Content-Length: 1169
Cache-Control: max-age=21600
Expires: Mon, 29 Oct 2012 21:18:38 GMT
P3P: policyref="http://www.w3.org/2001/05/P3P/p3p.xml"
Access-Control-Allow-Origin: *
Connection: close
Content-Type: application/rdf+xml; qs=0.9
Longueur: 1169 (1,1K) [application/rdf+xml]
Sauvegarde en : «group»
JSSE : librairie Java pour WebId
WebID Protocol Implementations - W3C Wiki
http://www.w3.org/wiki/WebID_Protocol_Implementations
LDP ?
Unsorted and unchecked
https://www.google.fr/search?client=ubuntu&channel=fs&q=easily+develop+semantic+web+applications
http://protegewiki.stanford.edu/wiki/BuildingSemanticWebApplications
http://code.google.com/p/fortunata/
http://www.sciencedaily.com/releases/2010/07/100721085348.htm
http://www.designforsemanticweb.com/
Callimachus : http://fr.slideshare.net/bhylandwood/rapid-semantic-web-application-development
http://semanticweb.com/developing-semantic-web-applications-current-tools-best-practices-and-future-directions_b11836
http://semanticweb.com/callimachus-semantic-web-apps-made-easy_b16443
http://answers.semanticweb.com/questions/13068/how-to-develop-the-semantic-web-application
http://incubator.apache.org/clerezza/
COMMIT
- FIX : in N3TermHelper.getN3FromJavaTypedValue() and getJavaTypedValue() : URI is the Java type equivalent for an RDF resource (coherent with the N3TableModel)
Tests in error: testSquall(eulergui.inputs.TestSPARQL) testimportN3(eulergui.project.TestProjectWithSubProjects) testSimpleURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*|.*book\.n3_.*" test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded Tests run: 202, Failures: 0, Errors: 5, Skipped: 0
A GF guy : http://blog.johnjcamilleri.com/category/academic/research/
-- in abstract syntax: IsQuestion : Item -> Quality -> Phrase ; -- in concrete syntax: IsQuestion item quality = {s = "is" ++ item.s ++ quality.s ++ "?"} ;
Generate random phrase
Food> gr | l that wine is boring quel vino è noioso
I wonder why they have to use all the time this type that wraps a string:
SS : Type = {s : Str} ;
It's for extendibilty, for example to be able to add a number or gender.
http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html#toc70
http://www.grammaticalframework.org/doc/gf-editor-modes.html
sudo cp gf.lang /usr/share/gtksourceview-3.0/language-specs/
( in ~/.local/share/gtksourceview-3.0/language-specs/ : does not work )
Refering to the "Hello World" grammar
http://www.grammaticalframework.org/doc/tutorial/gf-tutorial.html
I order to learn GF by example, I'd like to have a an utility program that takes a GF source as input, and makes some paraphrasing, more or less like the above tutorial does.
Maybe this could be implemented by a GF grammar! That would be a GF grammar for GF itself.
I acknowledge that the eclipse plugin does some comment on the GF source by tooltips. But for beginners in GF, more explanations would be needed.
Is the Attempto directory really obsolete ?
Compiling the grammar and starting the gf interpreter:
make pgf_ontograph_40 gf TestAttempto.pgf
Note : make pgf_acewiki_aceowl also creates TestAttempto.pgf, but a smaller one .
Parsing to get the abstract syntax:
TestAttempto> p -lang=Ace -cat=Text "it is false that Mary is helped by nothing but travelers who X admires ." sText (falseS (vpS (pnNP mary_PN) (v2_byVP help_V2 (nothing_butNP (relCN (cn_as_VarCN traveler_N) (slashRS which_RP (termNP (var_Term X_Var)) admire_V2))))))
English ==> French translation
TestAttempto> p -lang=Ace "it is false that Mary is helped by nothing but travelers who X admires ." | l -lang=Fre il est faux que Mary est aidée par seulement des voyageurs que X admire .
The reverse!
p -lang=Fre "il est faux que Mary est aidée par seulement des voyageurs que X admire ." | l -lang=Ace it is false that Mary is helped by nothing but travelers who X admires .
NOTE: This works with my enhanced French TestAttemptoFre.gf:
aidée is feminine ;
with the original TestAttemptoFre ,
it should work with aidé.
Added in my enhanced French TestAttemptoFre.gf :
git diff words/ontograph_40/TestAttemptoFre.g ... -lin mary_PN = mkPN "Mary" ; -lin tom_PN = mkPN "Tom" ; -lin lisa_PN = mkPN "Lisa" ; -lin john_PN = mkPN "John" ; -lin sue_PN = mkPN "Sue" ; -lin bill_PN = mkPN "Bill" ; +lin mary_PN = mkPN "Mary" feminine; +lin tom_PN = mkPN "Tom" masculine; +lin lisa_PN = mkPN "Lisa" feminine; +lin john_PN = mkPN "John" masculine; +lin sue_PN = mkPN "Sue" feminine; +lin bill_PN = mkPN "Bill" masculine;
bash make-pgf.bash ... - compiling /home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoCat.gf... /home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoCat.gf: cannot unify the information lincat A = {s : ParamX.Degree => CommonRomance.AForm => Str; isPre : Prelude.Bool} ; lindef A = \str_0 -> {s = table ParamX.Degree { q_A__0 => table CommonRomance.AForm { q_A__1 => str_0 } }; isPre = Prelude.True} ; in module CatCat with lincat A = Syntax.A ; in module AttemptoCat make: *** [pgf_acewiki_aceowl] Erreur 1
This worked as expected:
cd words/clex/ gvim build.sh chmod u+x build.sh ./build.sh cd ../.. bash make-pgf.bash gf ACE-0_0_2.pgf
But this failed:
export PATH=$HOME/.cabal/bin:$PATH oem-laptop: ~/src/ACE-in-GF/ % make pgf_acewiki_aceowl gf --version Grammatical Framework (GF) version 3.3.3-darcs No detailed version info available Built on linux/x86_64 with ghc-7.4, flags: interrupt server gf --make --path=present:grammars/acewiki_aceowl:words/acewiki_aceowl:lib/src/ace:lib/src/api --startcat=ACEText --optimize-pgf --mk-index words/acewiki_aceowl/TestAttemptoAce.gf words/acewiki_aceowl/TestAttemptoCat.gf words/acewiki_aceowl/TestAttemptoDut.gf words/acewiki_aceowl/TestAttemptoEng.gf words/acewiki_aceowl/TestAttemptoFin.gf words/acewiki_aceowl/TestAttemptoFre.gf words/acewiki_aceowl/TestAttemptoGer.gf words/acewiki_aceowl/TestAttemptoIta.gf words/acewiki_aceowl/TestAttemptoSpa.gf words/acewiki_aceowl/TestAttemptoSwe.gf words/acewiki_aceowl/TestAttemptoDan.gf words/acewiki_aceowl/TestAttemptoNor.gf words/acewiki_aceowl/TestAttemptoLav.gf words/acewiki_aceowl/TestAttemptoPol.gf words/acewiki_aceowl/TestAttemptoRon.gf words/acewiki_aceowl/TestAttemptoRus.gf - compiling /home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoCat.gf... /home/jmv/src/ACE-in-GF/grammars/acewiki_aceowl/AttemptoI.gf:114: Happened in linearization of falseS no overload instance of mkS for Cl among Cl Tense Cl Ant Cl Pol Cl Tense Ant Cl Tense Pol Cl Ant Pol Cl Tense Ant Pol Cl Temp Pol Cl Conj S S Conj ListS Adv S with value type S make: *** [pgf_acewiki_aceowl] Erreur 1 Error on my side or else ?
I had an old directory belonging to root : /home/jmv/.cabal/bin .
The first time:
cabal install ... Registering httpd-shed-0.4... Configuring json-0.4.4... Building json-0.4.4... Preprocessing library json-0.4.4... [1 of 7] Compiling Text.JSON.Types ( Text/JSON/Types.hs, dist/build/Text/JSON/Types.o ) [2 of 7] Compiling Text.JSON.Pretty ( Text/JSON/Pretty.hs, dist/build/Text/JSON/Pretty.o ) [3 of 7] Compiling Text.JSON.ReadP ( Text/JSON/ReadP.hs, dist/build/Text/JSON/ReadP.o ) Text/JSON/ReadP.hs:104:22: Warning: A do-notation statement discarded a result of type b. Suppress this warning by saying "_ <- n", or by using the flag -fno-warn-unused-do-bind [4 of 7] Compiling Text.JSON.Parsec ( Text/JSON/Parsec.hs, dist/build/Text/JSON/Parsec.o ) Text/JSON/Parsec.hs:112:22: Warning: A do-notation statement discarded a result of type b. Suppress this warning by saying "_ <- n", or by using the flag -fno-warn-unused-do-bind [5 of 7] Compiling Text.JSON.String ( Text/JSON/String.hs, dist/build/Text/JSON/String.o ) [6 of 7] Compiling Text.JSON ( Text/JSON.hs, dist/build/Text/JSON.o ) Text/JSON.hs:159:10: Illegal instance declaration for `MonadError String Result' (All instance types must be of the form (T a1 ... an) where a1 ... an are *distinct type variables*, and each type variable appears at most once in the instance head. Use -XFlexibleInstances if you want to disable this.) In the instance declaration for `MonadError String Result' cabal: Error: some packages failed to install: fst-0.9 failed during the building phase. The exception was: ExitFailure 1 gf-3.3.3 depends on json-0.4.4 which failed to install. json-0.4.4 failed during the building phase. The exception was: ExitFailure 1 % ghc --version The Glorious Glasgow Haskell Compilation System, version 7.4.1
In fact this was not installed:
cabal configure
cabal update fst
cabal install
After that , it works, but it's rather long !
Installing library in /home/jmv/.cabal/lib/gf-3.3.3/ghc-7.4.1 Installing executable(s) in /home/jmv/.cabal/bin Registering gf-3.3.3... Installing [prelude] /home/jmv/.cabal/share/gf-3.3.3/lib/prelude Installing [Present] /home/jmv/.cabal/share/gf-3.3.3/lib/present Installing [AllTenses] /home/jmv/.cabal/share/gf-3.3.3/lib/alltenses setupWeb dist/build/gf/gf -make -s -optimize-pgf --gfo-dir=dist/build/gfo/foods --gf-lib-path=dist/build/rgl contrib/summerschool/foods/FoodsAfr.gf contrib/summerschool/foods/FoodsAmh.gf contrib/summerschool/foods/FoodsBul.gf contrib/summerschool/foods/FoodsCat.gf contrib/summerschool/foods/FoodsCze.gf contrib/summerschool/foods/FoodsDut.gf contrib/summerschool/foods/FoodsEng.gf contrib/summerschool/foods/FoodsEpo.gf contrib/summerschool/foods/FoodsFin.gf contrib/summerschool/foods/FoodsFre.gf contrib/summerschool/foods/FoodsGer.gf contrib/summerschool/foods/FoodsGle.gf contrib/summerschool/foods/FoodsHeb.gf contrib/summerschool/foods/FoodsHin.gf contrib/summerschool/foods/FoodsIce.gf contrib/summerschool/foods/FoodsIta.gf contrib/summerschool/foods/FoodsJpn.gf contrib/summerschool/foods/FoodsLav.gf contrib/summerschool/foods/FoodsMlt.gf contrib/summerschool/foods/FoodsMon.gf contrib/summerschool/foods/FoodsNep.gf contrib/summerschool/foods/FoodsPes.gf contrib/summerschool/foods/FoodsPor.gf contrib/summerschool/foods/FoodsRon.gf contrib/summerschool/foods/FoodsSpa.gf contrib/summerschool/foods/FoodsSwe.gf contrib/summerschool/foods/FoodsTha.gf contrib/summerschool/foods/FoodsTsn.gf contrib/summerschool/foods/FoodsTur.gf contrib/summerschool/foods/FoodsUrd.gf /home/jmv/src/GF/contrib/summerschool/foods/FoodsAmh.gf: Warning: no linearization of Pizza Warning: no linearization of These Warning: no linearization of Those /home/jmv/.cabal/share/gf-3.3.3/www/grammars/Foods.pgf dist/build/gf/gf -make -s -optimize-pgf --gfo-dir=dist/build/gfo/letter --gf-lib-path=dist/build/rgl examples/letter/LetterEng.gf examples/letter/LetterFin.gf examples/letter/LetterFre.gf examples/letter/LetterHeb.gf examples/letter/LetterRus.gf examples/letter/LetterSwe.gf /home/jmv/.cabal/share/gf-3.3.3/www/grammars/Letter.pgf
Made a bug report on Google Code :
http://code.google.com/p/grammatical-framework/issues/detail?id=54
/home/jmv/src/w/GF/ % cabal install Resolving dependencies... cabal: dependencies conflict: base-3.0.3.2 requires syb ==0.1.0.2 however syb-0.1.0.2 was excluded because json-0.7 requires syb >=0.3.3 % ghc --version The Glorious Glasgow Haskell Compilation System, version 6.12.1 /home/jmv/src/w/GF/ % cabal upgrade base Resolving dependencies... cabal: fromFlag NoFlag. Use fromFlagOrDefault oem-laptop: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/w/GF/ % cabal info base * base (library) Synopsis: Basic libraries Latest version available: 4.6.0.0 Latest version installed: 4.2.0.0 % cabal upgrade base Resolving dependencies... cabal: fromFlag NoFlag. Use fromFlagOrDefault
https://dvcs.w3.org/hg/read-write-web/
<jmvanel> Très intéressant ce matin la prés. de http://fr.wikipedia.org/wiki/G%C3%A9rard_Berry
<jmvanel> the rpesentation
<jmvanel> presentation
<lcpvrr> what he spoke about ?
<rszeno> hi
* lcpvrr (~luc@LNantes-156-76-33-68.w82-127.abo.wanadoo.fr) a quitté #eulergui
<jmvanel> time and events
<jmvanel> he mentioned Hop http://hop.inria.fr/usr/local/lib/hop/2.3.1/weblets/home/articles/hop-lang/article.html
This can help : <jmvanel> ( remove everything older than 10 days )
[jmvanel@shell-22005]~/eulergui_web/htdocs/maven2/eulergui/eulergui/1.12-SNAPSHOT% find . -ctime +10 -exec ls -l {} \; | less find . -ctime +10 -exec rm {} \;
I found SquirrelRDF for IMAP connector to RDF;
<jmvanel> it's part of the Jena tools that were not moved to Apache ...
By this I mean that, even with Free Software, our information does not really belong to us. That is because we cannot take it from where it is, and use it elsewhere.
I'm using several browsers: Firefox, Chrome. Also, Im' using two Operating Systems. This makes 4 combinations.
The browser information is quadrupled.
It would be nice to share the information (history, passwords, form inputs, etc ) in a single place. In theory an RDF format would be excellent, but right now we don't have enough connectors !
I think browsers now use a lightweight SQL storage for user information.
On the RDF side, a common vocabulary should be chosen or developped. For history and favorites, RSS, the format for site syndication seems apropriate.
I think this is one more use case for for EulerGUI framework !
Failed tests: test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<3> Tests in error: testSquall(eulergui.inputs.TestSPARQL) testimportN3(eulergui.project.TestProjectWithSubProjects) test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded Tests run: 202, Failures: 1, Errors: 4, Skipped: 0
Stack in test test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject) :
I think the trouble is that we are not supposed to load the subproject in this stack, because here only the GUI should be worked on.
java.lang.NullPointerException
at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:196)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903)
at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)
at unif.TripleStoreDrools.store(TripleStoreDrools.java:71)
at eulergui.gui.controller.ApplicationKB.add_project_owl_imports(ApplicationKB.java:336)
at eulergui.gui.controller.ApplicationKB.n3SourceAdded(ApplicationKB.java:303)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:93)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1323)
at eulergui.project.ProjectChangeSupport.rethrowEventsForListener(ProjectChangeSupport.java:203)
at eulergui.project.Project.rethrowEventsForListener(Project.java:1465)
at eulergui.project.ProjectFactory.restoreAny(ProjectFactory.java:386)
at eulergui.project.Project.ensureIsLoaded(Project.java:1545)
at eulergui.gui.main.SubProjectsManagement.addButton(SubProjectsManagement.java:35)
at eulergui.gui.main.SourceFilesManagement.addButtonToOpenImportedProjects(SourceFilesManagement.java:138)
at eulergui.gui.main.SourceFilesManagement.addSourceActions(SourceFilesManagement.java:124)
at eulergui.gui.main.ProjectGUI.addMenus(ProjectGUI.java:567)
at eulergui.gui.main.ProjectGUI.getMenu(ProjectGUI.java:455)
at eulergui.gui.main.ProjectGUI.layoutFrame(ProjectGUI.java:478)
at eulergui.gui.main.ProjectGUI.initFromProject(ProjectGUI.java:153)
at eulergui.gui.main.ProjectGUI.<init>(ProjectGUI.java:142)
at eulergui.gui.main.ProjectGUI.newWindow(ProjectGUI.java:289)
at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:235)
COMMIT
FIX Broken test_read_newproject_n3p_n3 (eulergui.gui.TestN3FormatForProject) :
I think the trouble is that we are not supposed to load the subproject in this stack, because here only the GUI should be worked on.
TODO : sometimes project.getURI() was null, because the KB is not ready yet, and it populates project URI;
but there must be a simpler way to populate the GUI without needing the KB
(or start the KB quicker)
-------------
COMMIT
- skeleton ontology generation: not automatic anymore: launched by Tools menu
- Reorder Tools menu :
"Normal" user
Average user (Java apps framework)
Advanced user (Internal KB)
Rules by Zeno:
@prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @forAll :x, :y, :z, :u . # see: http://www.w3.org/TR/rdf-mt/#RDFSRules, entailment rule rdf2 { :x rdfs:domain :y . :z :x :u . } => { :z rdf:type :y . } . # see: http://www.w3.org/TR/rdf-mt/#RDFSRules, entailment rule rdf3 { :x rdfs:range :y . :z :x :u . } => { :u rdf:type :y . } . # http://chatlogs.planetrdf.com/swig/2012-09-20.html#T17-16-17 # - download http://paste.kde.org/553760/ content as x.n3 # - this file: y.n3 # with: # # cwm -quiet x.n3 --filter=y.n3 # # output will be: # # @prefix : <#> . # # :ExampleCourse a :Course . # # :ExampleDepartment a :Department . # # :ExampleLecture a :Lecture . # # :John a :Professor . #
Reference : http://topquadrant.com/products/TB_Composer.html
Here are the features that are deactivated in free edition of BT:
Define ontologies using a graphical editor | it would be a lot of work to make something really ergonomic, and
Protégé, after 20 years of existance, does this quite good;
Plus, for really complex OWL classes, Controled English is better than GUI |
Create and execute Jena rules | Desirable feature, but we have N3 rules |
Import and convert to RDF data from XML, UML, Spreadsheets, RSS/Atom Feeds, and Relational Databases | EulerGUI does not have RSS, and Relational Databases (although there are several wrapper for SQL db's) |
Generate XML Schemas from RDF/OWL | We have the feature, thanks to Gloze. |
Roundtrip between XML and RDF/OWL (import – export) | We have the feature, thanks to Gloze, but Roundtrip is a questionable practice during a software project |
Work with RDF databases | We have wrapper API for TDB, but an internal TDB is not yet in GUI |
Work with different reasoners and configure inference options | We have 4 inference engines; and more to come |
Run TopBraid Ensemble and other web applications developed for the TopBraid Live platform | I don't know what are these products: TopBraid Ensemble, TopBraid Live platform, but we have the API and rule based framework |
Generate arbitrary (e.g., HTML) documents from data in your ontology using an integrated semantic Java Server Pages engine | We have some features, using
log:format and log:outputString to generate
templated output, but not enough documented |
Define and execute RDF data processing chains (SPARQLMotion) |
SPARQLMotion: I don't know what is this product; but there are pipelines in GUI and API |
Generate business intelligence reports and inserted into web pages to drive semantically enriched web applications |
Main missing feature: we plan not only "semantically enriched web applications" , but "semantic and rule based web applications" |
Convert e-mails into OWL, supporting semantic analysis and classification of emails | No e-mail connector, but there is at least a suitable library in Jena to reuse : SquirrelRDF an IMAP connector |
The other notable features from BT free missing in EulerGUI are :
Feature | Comments |
Save RDF/XML, and N-Triples files | Can be done by running CWM, and selecting and paste the console |
Define ontologies using form-based editors | form-based editors : is this just vocabularies
?
I doubt that it's convenient to enter OWL axioms in a form; prefer ATTEMPTO controled English |
SPARQL Rules (SPIN) | If I understand well SPIN, something equivalent is planned , link : backward_chaining_sparql |
Constraint Checking to validate user input (using SPARQL Rules (SPIN)) | in N3 table view, there is datatype validation ,
for generic user input validation something must be done; it used to work with exceptions in Javascript+Java framework |
Merge and re-factor RDF data across different namespaces and data
sources |
merge ? refactor ? what does this mean
?
rename and URI suffix : could be done with stateful triplestore and rules, or Jena code |
<rszeno> i'm talking about this http://eulersharp.sourceforge.net/2003/03swap/prolog.html
<rszeno> i bet jos want to use it with rif
<jmvanel> I didn't see this ; it's nice , as I understand it allows have the power of Prolog within N3 and EYE.
<rszeno> yes
http://en.wikipedia.org/wiki/Ben_Goertzel
http://wp.goertzel.org/
Quoted from open-nars site http://code.google.com/p/open-nars/
What makes this system different from conventional reasoning systems is its ability to learn from its experience.
Related to this, what would be necessary is to go to next step: provide some reusable "experience", the equivalent of what we produce by hand as "rule base".
And there where I think interesting stuff begins.
jmvanel> Something like a global cross langage repository does not seems to exist :
<jmvanel> https://www.google.fr/search?q=rule+base+repository
https://www.google.fr/search?q=rule+base+logic+models+inference+expert+systems+%2Brepository
http://en.wikipedia.org/wiki/William_McCune
<jmvanel> He was my age , and he's dead :(
<jmvanel> He once kindly answered to a question.
-------------
<jmvanel> I don't believe in AGI , but I must say that it's bettter to have great ambitions and fail, than to have small ambitions and fail !
See below : Non-Axiomatic Reasoning System
-----------------------
Why is this URI appearing when generating skeleton ontology?
http://eulergui.sourceforge.net/rules/#
TODO eliminate this URI from skeleton ontology generation: http://www.w3.org/2003/g/data-view#
I'd like to make a semantic web based framework for creating applications managing semantic data, such as:
I wonder why Dublin Core properties like :
created
are plain literal
With RDFS also : OK
eye --nope \ ~/src/deductions/n3_nojs/rules-documentor.n3 \ --wcache 'http://www.w3.org/2002/07/owl#' '/home/jmv/.eulergui/n3_cache/owl#_820021934678067316.n3' \ --wcache 'http://www.w3.org/2000/01/rdf-schema#' '/home/jmv/.eulergui/n3_cache/rdf-schema#_194091713274622538.n3' \ 'http://www.w3.org/2000/01/rdf-schema#' \ 'http://www.w3.org/2002/07/owl#' \ /home/jmv/src/eulergui/examples/book.n3 \ --query ~/src/deductions/n3_nojs/rules-documentorQ.n3
% date --rfc-3339=seconds 2012-10-20 10:47:39+02:00
eye --nope --wcache http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentor.n3 /home/jmv/.eulergui/n3_cache/rules-documentor.n3_3645444284436385759.n3 --wcache http://www.w3.org/2000/10/swap/reason# /home/jmv/.eulergui/n3_cache/reason#_6093099883242864295.n3 --wcache http://www.w3.org/1999/02/22-rdf-syntax-ns# /home/jmv/.eulergui/n3_cache/22-rdf-syntax-ns#_1704865449098808065.n3 --wcache http://www.w3.org/2000/10/swap/log# /home/jmv/.eulergui/n3_cache/log#_303426070996937170.n3 --wcache http://www.w3.org/2000/01/rdf-schema# /home/jmv/.eulergui/n3_cache/rdf-schema#_194091713274622538.n3 --wcache http://www.w3.org/2004/06/rei# /home/jmv/.eulergui/n3_cache/rei#_2172265562863617364.n3 --wcache http://eulersharp.sourceforge.net/2003/03swap/log-rules# /home/jmv/.eulergui/n3_cache/log-rules#_3129547664454615318.n3 --wcache http://www.w3.org/2002/07/owl# /home/jmv/.eulergui/n3_cache/owl#_820021934678067316.n3 http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentor.n3 http://www.w3.org/2000/10/swap/reason# http://www.w3.org/1999/02/22-rdf-syntax-ns# http://www.w3.org/2000/10/swap/log# http://www.w3.org/2000/01/rdf-schema# http://www.w3.org/2004/06/rei# http://eulersharp.sourceforge.net/2003/03swap/log-rules# http://www.w3.org/2002/07/owl# /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/bbb3.n3 --wcache http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentorQ.n3 /home/jmv/.eulergui/n3_cache/rules-documentorQ.n3_4024809405297772256.n3 --query http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentorQ.n3
Sent mail on deductions.fr about contacts management : Gestion (sémantique?) des contacts : comment faites vous ?
Echo3 TableModel is similar to Swing TableModel :
http://echo.nextapp.com/content/echo3/doc/3.0/api/public/app/nextapp/echo/app/table/TableModel.html
but it does not implement Swing TableModel .
(but issue: comments should not be lost)
<givenURI> ?P1 ?V . ?X ?P2 <givenURI>
much like dbpedia web pages
issue : add metadata (author, date, etc) to the new triple
<jmvanel> I should disclose my position as the main developer in the discussion page
<rszeno> probably is better to do it
<jmvanel> according to http://en.wikipedia.org/wiki/Wikipedia:Your_first_article#Are_you_closely_connected_to_the_article_topic.3F
<rszeno> if resists to bots cleanup will be ok, :)
<jmvanel> http://fr.wikipedia.org/wiki/Discussion:Notation3
<jmvanel> how often are bots working ?
<rszeno> mystbot added the link
<jmvanel> 1 per day ?
<jmvanel> mystbot ?
<rszeno> are async, from cmd line
<rszeno> yes is a linking bot
<rszeno> http://en.wikipedia.org/wiki/User:MystBot
http://en.wikipedia.org/wiki/Talk:Notation3
I should mention that I'm the main developer of EulerGUI, for which I just entered a link.
Downloaded Jena-tdb from Git : http://git.apache.org/ .
SquirrelRDF is an IMAP to RDF connector.
But SquirrelRDF is not here , and I'm not sure where it is on sf.net .
FIXES:
- Web based project was broken;
- URL's having no content-type
- plain XML and XML Schema import
<f1> a form; instance i1; interaction read_only; fields (property1, property2); rdfs:label "title" ; rdfs:comment "enter this and that".
<f2> a form; instance i12; interaction edit; fields (property3, property4); rdfs:label "title 2" ; rdfs:comment "enter words".
<f3> a form; instance i3; interaction edit; class C1; rdfs:label "title 3" ; rdfs:comment "enter 3 words".
Note : maybe distinguish form template and form instance?
implementation by a mixed Java rule
Jon Harrop @jonharrop
"Interactive Theorem Proving in Industry" by John Harrison, Intel. Mind-blowing stuff. http://events.inf.ed.ac.uk/Milner2012/slides/Harrison/harrison_slides.pdf …
Retweeté par Pierre-Alexandr Voye
Ouvrir Répondre Retweeter Favori
16 h Jon Harrop @jonharrop
"amplifying human intelligence" -- Robin Milner. What a great phrase! #fsharp #ocaml
Retweeté par Pierre-Alexandre Voye
Or Semantic Application for Collaboration.
Semantic Collaborative site for many things
I'm looking for some kind of web application Open Source framework, backed by a SPARQL endpoint , of some kind : either CMS, or collaborative, or data input and display.
Dublin core stuff
the text itself
in response to
the triples about R1 and pointing to R1 are shown à la dbPedia web site ;
the site renders these informations, together with Dublin core stuff;
all URI's are hyperlinks, either to the site, or to external if not on the site (also possibility to add a resource in the site)
connect means either show a summary of a topic, or item , or get the triples for a topic, or item
discussion: add
"billet": add
EulerGUI, server or API, integrates with existing applications.
We will write a chapter of the Manual to explain how to do it in any application, Java applications for a start.
http://localhost:8080/eulergui_server/
http://www.w3.org/2001/sw/sweo/public/UseCases/
saw JSON triples , alias JTriples http://www.w3.org/wiki/JTriples
Flint SPARQL Editor v1.0 : one more example of a Semantic Web tool whose configuration is NOT in Turtle.
git://github.com/TSO-Openup/FlintSparqlEditor.git
http://echo.nextapp.com/site/echo3
Failed tests: test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject): expected:<1> but was:<3> Tests in error: testSquall(eulergui.inputs.TestSPARQL) testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Wait for "JComponent with tool tip "Open N3 result.*"" subcomponent to be displayed testSimpleURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*|.*book\.n3_.*" test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded
Hi Mike
If you're looking for a textual tool to write Turtle syntax, you can try EulerGUI.
It has additional goodies:
It's an executable Java jar.
There's a YouTube Video:
http://www.youtube.com/watch?v=x6ZgoiH1K9Y
Stable version:
http://sourceforge.net/projects/eulergui/
Snapshots:
http://eulergui.sourceforge.net/maven2/eulergui/eulergui/1.12-SNAPSHOT/?C=M;O=D
---------------
You might find our graphical OWL editor useful, especially if you are familiar with concept mapping.
COE (http://www.ihmc.us/groups/coe/) will display OWL as a concept map, allow you to edit the map graphically and output the result as legal OWL. We find it useful simply as a way to view OWL ontologies and quickly see what they contain.
Good luck.
Pat Hayes phayes@ihmc.us via listhub.w3.org
http://www.essepuntato.it/lode/owlapi/http://usefulinc.com/ns/doap#
Due to Maven regression (bug report), Gloze in EulerGUI is now broken .
eg http://www.omg.org/spec/BPMN/20100501/BPMN20.xsd
kompare /home/jmv/src/Gloze-1.01-beta2/src/java/com/hp/gloze/Gloze.java \ /home/jmv/src/eulergui/src/main/java/com/hp/gloze/Gloze.java
Exception in thread "main" java.lang.IllegalAccessError: tried to access field com.hp.gloze.Gloze.target from class eulergui.inputs.N3SourceFromXML_Gloze at eulergui.inputs.N3SourceFromXML_Gloze.convertToN3(N3SourceFromXML_Gloze.java:94) at eulergui.project.N3Source.manageN3Cache(N3Source.java:628) at eulergui.project.N3Source.doUpdate(N3Source.java:430) at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:47) at eulergui.project.N3Source.placeInProject(N3Source.java:356) at eulergui.project.N3Source.prepare(N3Source.java:381) at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:46) at eulergui.project.SourceFactory.addSource(SourceFactory.java:173) at eulergui.CommandLineArguments.makeProjectFromEulerCommandLine(CommandLineArguments.java:137) at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:71) at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:224)
Remedy:
Exception in thread "addN3SourceInNewThread http://www.omg.org/spec/BPMN/20100501/BPMN20.xsd" java.lang.NoClassDefFoundError: com/ibm/icu/util/StringTokenizer at com.hp.gloze.www_w3_org_2001_XMLSchema.union.get_memberTypes(union.java:121) at com.hp.gloze.www_w3_org_2001_XMLSchema.union.defineType(union.java:213) at com.hp.gloze.www_w3_org_2001_XMLSchema.simpleType.defineType(simpleType.java:209) at com.hp.gloze.www_w3_org_2001_XMLSchema.attribute.toOWL(attribute.java:443) at com.hp.gloze.www_w3_org_2001_XMLSchema.extension.toOWLComplexContent(extension.java:284) at com.hp.gloze.www_w3_org_2001_XMLSchema.complexContent.toOWL(complexContent.java:99) at com.hp.gloze.www_w3_org_2001_XMLSchema.complexType.toOWL(complexType.java:500) at com.hp.gloze.www_w3_org_2001_XMLSchema.schema.toOWL(schema.java:1184) at com.hp.gloze.www_w3_org_2001_XMLSchema.Include.toOWL(Include.java:112) at com.hp.gloze.www_w3_org_2001_XMLSchema.schema.toOWL(schema.java:1160) at com.hp.gloze.GlozeEulerGUI.xsd_to_owl(GlozeEulerGUI.java:589) at com.hp.gloze.GlozeEulerGUI.runGloze(GlozeEulerGUI.java:814) at eulergui.inputs.N3SourceFromXML_Gloze.convertToN3(N3SourceFromXML_Gloze.java:95)
<jmv_> 90 employees , 1.5 m downloads
When an N3 Source is saved, if all properties and classes are not declared, a new N3 file is added to project, with a skeleton ontology for missing declarations.
The generation rules look in the whole current projet for undeclared
properties and classes in plain data triples (individuals), incomplete
declarations and rules. The generation rules consider that a property or class
is incomplete if it has no rdfs:comment
, or if the comment has
the (generated) value "???" .
For instance, from this book.n3 example:
@prefix : <http://example.com#> . :DiamondAge :writeBy :NealStephenson . :Neuromancer :writeBy :WilliamGibson . :NealStephenson a :scifiWriter . :Neuromancer a :book . :DiamondAge a :book . :MazeOfDeath :writeBy :PhilipKDick . :WilliamGibson a :scifiWriter . :PhilipKDick a :scifiWriter . :PlayerOfGames a :book . :Ubik a :book . :MazeOfDeath a :book . :PlayerOfGames :writeBy :IainBanks .
this skeleton ontology is generated:
ns1:book a owl:Class ; rdfs:comment "???" ; rdfs:label "book" . ns1:writeBy a rdf:Property ; rdfs:comment "???" ; rdfs:domain <http://my.com/xxx> ; rdfs:label "writeBy" ; rdfs:range <http://my.com/xxx> . ns1:scifiWriter a owl:Class ; rdfs:comment "???" ; rdfs:label "scifiWriter" .
CAVEAT: the generation rules currently do not guess the domain and range, they just output a placeholder for this.
Evaluation and Report Language (EARL)
http://www.w3.org/WAI/intro/earl
Failed tests: testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): inferred fact testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): initial fact testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject) Tests in error: testSquall(eulergui.inputs.TestSPARQL) testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-3868589679634015805.n3 ; http://dbpedia.org/sparql testimportN3(eulergui.project.TestProjectWithSubProjects) testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testTooltip(eulergui.gui.TestEulerGUITooltip): Wait for "getText() Component Chooser "tooltip.n3"(..) testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded Tests run: 201, Failures: 4, Errors: 19, Skipped: 0
Custom JPanel cell with JButtons in JTable
http://pekalicious.com/blog/custom-jpanel-cell-with-jbuttons-in-jtable/
COMMIT
- now use DatatypeHelper.validate() in EditCellListener
- now ObjectProperty for column is associated to URI.class
- moved several methods to DatatypeHelper
- checked that URIRenderer.getTableCellRendererComponent() is actually called
- TESTED with N3TableModelTest
TODO : URIRenderer should display a link to the URI
TODO test if rdfDataType is an ObjectProperty, or value is a resource (URI)
TODO : tests
Results : Failed tests: testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): inferred fact testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): initial fact Tests in error: testSquall(eulergui.inputs.TestSPARQL) testimportN3(eulergui.project.TestProjectWithSubProjects) testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Wait for "JComponent with tool tip "Open N3 result.*"" subcomponent to be displayed testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical) testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testTooltip(eulergui.gui.TestEulerGUITooltip): Wait for "getText() Component Chooser "tooltip.n3"(..) testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded Tests run: 201, Failures: 2, Errors: 19, Skipped: 0
COMMIT
- TEST (WIP) for updating or creating cells in N3 table, with a CellEditorListener
TODO multiple valued subject-predicate pair, typed datatypes, and resources (URI)
- stabilize Drools from version 5.5.0-SNAPSHOT to 5.5.0.Beta1
TODO: fix test suite: Tests run: 201, Failures: 2, Errors: 19, Skipped: 0
A Drools regression,
so trying 5.5.0.Beta1 ; http://www.jboss.org/drools/downloads
Thread [main] (Suspended (exception NullPointerException)) NamedEntryPoint.insert(Object, Object, boolean, boolean, Rule, Activation) line: 196 ReteooStatefulSession(AbstractWorkingMemory).insert(Object, Object, boolean, boolean, Rule, Activation) line: 903 ReteooStatefulSession(AbstractWorkingMemory).insert(Object) line: 847 TripleStoreDrools.store(ITriple) line: 71 ApplicationKB.add_project_owl_imports(Project, String) line: 336 ApplicationKB.n3SourceAdded(Project, N3Source) line: 303 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 93 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1323 ProjectChangeSupport.rethrowEventsForListener(Project, ProjectListener) line: 203 Project.rethrowEventsForListener(ProjectListener) line: 1465 ProjectFactory.restoreAny(String, boolean) line: 386 Project.ensureIsLoaded() line: 1545 SubProjectsManagement.addButton(Project) line: 35 SourceFilesManagement.addButtonToOpenImportedProjects() line: 138 SourceFilesManagement.addSourceActions(ProjectGUI) line: 124 ProjectGUI.addMenus() line: 567 ProjectGUI.getMenu() line: 455 ProjectGUI.layoutFrame() line: 478 ProjectGUI.initFromProject(Project) line: 153 ProjectGUI.<init>(Project) line: 142 ProjectGUI.newWindow(Project, boolean) line: 289 ProjectGUI.main(String[]) line: 235 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 ClassReference.invokeMethod(String, Object[], Class[]) line: 137 ClassReference.startApplication(String[]) line: 101 TestN3FormatForProject(TestJemmy).launchEulerGUIWithArgument(String) line: 256 TestN3FormatForProject.test_read_newproject_n3p_n3() line: 49 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 TestN3FormatForProject(TestCase).runTest() line: 168 TestN3FormatForProject(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 TestN3FormatForProject(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
Tests in error: testSquall(eulergui.inputs.TestSPARQL) testimportN3(eulergui.project.TestProjectWithSubProjects) testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Wait for "Action NAME Component Chooser "./facebook-search.n3"(..) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testTooltip(eulergui.gui.TestEulerGUITooltip): Wait for "getText() Component Chooser "tooltip.n3"(..) testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded testSimpleProjectLocal(eulergui.gui.TestJavaEditor): javax.swing.JDialog cannot be cast to org.gjt.sp.jedit.View testSimpleURLProject(eulergui.gui.TestJavaEditor): javax.swing.JDialog cannot be cast to org.gjt.sp.jedit.View testURLProject(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "employee.uml" loaded test_read_newproject_n3p_n3_from_file_menu(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded Tests run: 201, Failures: 1, Errors: 20, Skipped: 0
COMMMIT
- for updating or creating cells in N3 table, replace TableModelListener (also everytime a cell is filled) with a CellEditorListener
- Pave the way for an URI (RDF resource) cell renderer: add URI values in N3TableModel
ArrayIndexOutOfBoundsException
https://dvcs.w3.org/hg/read-write-web/
xclock -digital -update 1 &
http://www.moosetechnology.org/
Moose : meta- modélisation : permet d'analyser Java, JS, etc
./CogVM Pharo-1.4/Pharo-1.4.image
{ ?X ?P ?Y . ?P rdfs:domain ?C . } => { ?X a ?C . }. { ?X ?P ?Y . ?P rdfs:range ?C . } => { ?Y a ?C . }.
OK : namespace for ACE N3 source
@prefix dbpprop: <http://dbpedia.org/property/>. @keywords is, of, a . dbpedia:B.B._King is dbpprop:recordedBy of dbpedia:Worried_Life_Blues .
sudo apt-get install raptor-utils sudo apt-get install rasqal-utils rapper -i turtle bb3.n3 -o dot > bb3.n3.dot % dotty -V bb3.n3.dot dotty version 96c (09-24-96) lefty version 10 Mar 2005 graphviz version 2.26.3 (20100126.1600) graph parser: syntax error near line 1 context: igraph >>> { <<< dotty.lefty: cannot load graph # output is for dot not dotty or natty # <rszeno> is digraph % dot -Tjpg bb3.n3.dot -o bb3.n3.jpg
The official Internet media type for JSON is application/json. The JSON filename extension is .json.
FIX last file management ( for initializing file chooser )
COMMIT
-------------------------------
java.lang.ClassNotFoundException: eulergui.gui.view.N3SourceTableView
We have a big problem, because the replacement of the rule base is happening here, because the rule base is recovered from cache. This is at odds with the presuppositions underlying RuleBasedApplicationStarter :
Thread [rethrowEventsExceptListener(ApplicationKB.instance())] (Suspended (breakpoint at line 266 in AbstractWorkingMemory)) ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212 ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103 ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81 ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402 ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387 ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394 N3SourcetoDrools.newStatefulSession(RuleBase) line: 632 N3SourcetoDrools.<init>() line: 164 N3DroolsEngineFacade.<init>() line: 43 Project.initializeDrools() line: 939 Project.getTranslator() line: 994 ProjectFileManagement.addURIModificationChecker(ProjectGUI, Project) line: 681 ProjectGUI$3.run() line: 371 Thread.run() line: 722
Thread [main] (Suspended (breakpoint at line 266 in AbstractWorkingMemory)) owns: EulerGUI (id=34) ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212 ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103 ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81 ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402 ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387 ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394 N3SourcetoDrools.newStatefulSession(RuleBase) line: 632 N3SourcetoDrools.setRuleBase(RuleBase) line: 1039 N3DroolsEngineFacade.setRuleBase(RuleBase) line: 180 Project.compiledRulebaseLoadedFromCache(String) line: 668 Project.translateN32Drools(boolean) line: 823 Project.prepareDrools(boolean) line: 797 Project.prepareDrools() line: 776 RuleBasedApplicationStarter.startFromProject(Project) line: 64 ApplicationKB.<init>() line: 153 ApplicationKB.instance() line: 141 OpenPreferencesAction.applyUserPreferences() line: 72 ProjectGUI.main(String[]) line: 216
AbstractWorkingMemory is instanciated twice for the internal KB :
eulergui.gui.main.ProjectGUI at localhost:55359 Thread [main] (Suspended (breakpoint at line 266 in AbstractWorkingMemory)) owns: EulerGUI (id=34) ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212 ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103 ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81 ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402 ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387 ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394 N3SourcetoDrools.newStatefulSession(RuleBase) line: 632 N3SourcetoDrools.setRuleBase(RuleBase) line: 1039 N3DroolsEngineFacade.setRuleBase(RuleBase) line: 180 Project.compiledRulebaseLoadedFromCache(String) line: 668 Project.translateN32Drools(boolean) line: 823 Project.prepareDrools(boolean) line: 797 Project.prepareDrools() line: 776 RuleBasedApplicationStarter.startFromProject(Project) line: 64 ApplicationKB.<init>() line: 153 ApplicationKB.instance() line: 141 OpenPreferencesAction.applyUserPreferences() line: 72 ProjectGUI.main(String[]) line: 216
Thread [main] (Suspended (breakpoint at line 266 in AbstractWorkingMemory)) owns: EulerGUI (id=34) ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment, WorkingMemoryEventSupport, AgendaEventSupport) line: 266 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, InternalFactHandle, long, SessionConfiguration, Environment) line: 246 ReteooStatefulSession(AbstractWorkingMemory).<init>(int, InternalRuleBase, FactHandleFactory, SessionConfiguration, Environment) line: 212 ReteooStatefulSession(ReteooWorkingMemory).<init>(int, InternalRuleBase, SessionConfiguration, Environment) line: 103 ReteooStatefulSession.<init>(int, InternalRuleBase, ExecutorService, SessionConfiguration, Environment) line: 81 ReteooRuleBase.newStatefulSession(int, SessionConfiguration, Environment) line: 402 ReteooRuleBase.newStatefulSession(SessionConfiguration, Environment) line: 387 ReteooRuleBase(AbstractRuleBase).newStatefulSession() line: 394 N3SourcetoDrools.newStatefulSession(RuleBase) line: 632 N3SourcetoDrools.<init>() line: 164 N3DroolsEngineFacade.<init>() line: 43 Project.initializeDrools() line: 939 Project.prepareDrools(boolean) line: 795 Project.prepareDrools() line: 776 RuleBasedApplicationStarter.startFromProject(Project) line: 64 ApplicationKB.<init>() line: 153 ApplicationKB.instance() line: 141 OpenPreferencesAction.applyUserPreferences() line: 72 ProjectGUI.main(String[]) line: 216
COMMIT
TODO still non reproductible errors :
Failed tests: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700 Tests in error: testURLProjectOWL(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton testSimpleURLProject(eulergui.gui.TestJavaEditor) testURLProject(eulergui.gui.TestJavaEditor)
net.sf.parser4j.parser.service.ParserException: must exist in parse state at net.sf.parser4j.parser.service.ParseStackAction.reduce(ParseStackAction.java:199) at net.sf.parser4j.parser.service.Parser.matchManagement(Parser.java:1033) at net.sf.parser4j.parser.service.Parser.checkForMatch(Parser.java:926) at net.sf.parser4j.parser.service.Parser.matchManagement(Parser.java:1044) at net.sf.parser4j.parser.service.Parser.checkForMatch(Parser.java:926) at net.sf.parser4j.parser.service.Parser.parse(Parser.java:286) at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:178) at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:156) at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117) at eulergui.inference.drools.impl.N3DroolsEngineFacade.translateQuery(N3DroolsEngineFacade.java:215) at eulergui.project.Project.searchFromString(Project.java:1047) at deductions.runtime.KBHelpers.searchInKB(KBHelpers.java:29) at eulergui.inference.AbstractInferenceEngine.getCWMPath(AbstractInferenceEngine.java:121) at eulergui.inference.cwm.CwmInferenceEngineFactory.isInstalled(CwmInferenceEngineFactory.java:52)
Just use Green's theorem:
Area = 0.5*integral(x*dy - y*dx)
ProjectGUI eulergui_test [Java Application] eulergui.gui.main.ProjectGUI at localhost:42724 Thread [main] (Suspended (breakpoint at line 239 in ApplicationKB)) ApplicationKB.getProject() line: 239 KBHelpers.searchInKB(String, String, String) line: 29 AbstractInferenceEngine.getCWMPath() line: 121 CwmInferenceEngineFactory.isInstalled() line: 52 RunActionGeneric.<init>(InferenceEngineFactory, ProjectGUI) line: 48 InferenceManagement.addActions(ProjectGUI) line: 31 ProjectGUI.addMenus() line: 554 ProjectGUI.getMenu() line: 441 ProjectGUI.layoutFrame() line: 464 ProjectGUI.initFromProject(Project) line: 153 ProjectGUI.<init>(Project) line: 142 ProjectGUI.newWindow(Project, boolean) line: 288 ProjectGUI.openLastProjectFromFileHistory() line: 258 ProjectGUI.main(String[]) line: 218 Thread [modification Checker for user preferences] (Running) /home/jmv/apps/jdk1.7.0/bin/java (6 oct. 2012 17:18:06)
Try to return as soon as possible in ApplicationKB.instance()
,
while stating a thread to start the internal KB:
Thread [main] (Suspended (breakpoint at line 102 in ApplicationKB)) owns: EulerGUI (id=26) ApplicationKB.<init>() line: 102 ApplicationKB.instance() line: 90 OpenPreferencesAction.applyUserPreferences() line: 72 ProjectGUI.main(String[]) line: 215
By comparison the current situation is :
ProjectGUI eulergui_test [Java Application]
eulergui.gui.main.ProjectGUI at localhost:40622
Thread [main] (Suspended (breakpoint at line 23 in ResultEditorAction))
owns: DefaultAgenda (id=58)
ResultEditorAction.<init>() line: 23
NativeConstructorAccessorImpl.newInstance0(Constructor, Object[]) line: not available [native method]
NativeConstructorAccessorImpl.newInstance(Object[]) line: 57
DelegatingConstructorAccessorImpl.newInstance(Object[]) line: 45
Constructor<T>.newInstance(Object...) line: 525
Class<T>.newInstance0() line: 372
Class<T>.newInstance() line: 325
Rule_application_rules_n3_2_5230dd7664aa4b748627ca29597c57d9.defaultConsequence(KnowledgeHelper, String, FactHandle, String, FactHandle, ProjectGUI, FactHandle) line: 14
Rule_application_rules_n3_2_5230dd7664aa4b748627ca29597c57d9DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_application_rules_n3_2_5230dd7664aa4b748627ca29597c57d9DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1275
DefaultAgenda.fireNextItem(AgendaFilter) line: 1210
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1444
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 375
ApplicationKB.fireAllRules() line: 224
OpenPreferencesAction.applyUserPreferences() line: 77
ProjectGUI.populateWindow(Project, boolean) line: 345
ProjectGUI.newWindow(Project, boolean) line: 307
ProjectGUI.openLastProjectFromFileHistory() line: 258
ProjectGUI.main(String[]) line: 218
Thread [modification Checker for user preferences] (Running)
Thread [AWT-Shutdown] (Running)
Thread [AWT-EventQueue-0] (Running)
/home/jmv/apps/jdk1.7.0/bin/java (6 oct. 2012 10:21:53)
COMMIT
when launching OWL reasonner, avoid generated files with suffix ".as.rules.n3"
(so one bad warning is avoided).
Is it possible to make CONTRUCT queries?
Pas directement, mais les "updates" en sont très proches.
% echo "for every man ?X that is the brother of the father of a person ?Y, ?X is the uncle of ?Y." | squall2sparql
INSERT { ?Y :uncle ?X . } WHERE { ?X a :man . ?Y a :person . ?Y :father ?x5 . ?x5 :brother ?X . }
Il suffit de remplacer le INSERT par CONSTRUCT.
package camlp4-extra ocml et ocaml-libs sur Ubuntu
FIX :
- crash in URL with N3 source from N3 string and URI starting with urn: : "unknown protocol: urn"
- issue with uri = "http://myURI/" ; resulted in <http://myURI/#x>
tested in RuleBasedApplicationStarterSample
COMMIT
FIX TripleStoreDrools.updateTriple() @param newvalue can be a plain (non N3) string
Tested in TableApp2
* TODO : in class EditCellListener implements TableModelListener
- when the model is updated by the application, should not fire
- in case of several triples per cell, nothing special is done (but #tableChanged(TableModelEvent) is called everytime, which results in several triples all identical)
samples.TableApp2 at localhost:35472
Thread [main] (Suspended)
owns: DefaultAgenda (id=47)
EditCellListener.tableChanged(TableModelEvent) line: 54
N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296
N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275
N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667
TableModelFromN3.setValueInTableModel(ITriple) line: 89
TableModelFromN3.add(ITriple) line: 75
N3TableModel.addElement(ITriple) line: 146
N3TableModel.add(String) line: 114
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 601
DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133
DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100
DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93
DeferredMethodCall.assign(Object, List<Assignment>) line: 73
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_86b5e46b92ec4f45ac98ffe38f756c90.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_86b5e46b92ec4f45ac98ffe38f756c90DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_86b5e46b92ec4f45ac98ffe38f756c90DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1275
DefaultAgenda.fireNextItem(AgendaFilter) line: 1210
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1444
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 372
TableApp2.startTest() line: 100
TableApp2.main(String[]) line: 38
Thread [AWT-Shutdown] (Running)
Thread [AWT-EventQueue-0] (Running)
TODO OWL ==> N3 translator
Everybody that manages something is a manager.
{ ?X manage ?P } => { ?X a manager }.
http://dataliftcamp-estw.eventbrite.fr/
COMMIT
- N3SourcetoDrools : throw a runtimeException in case of badly translated Drools language from N3, so that a popup window appears
- Namespaces: add dbpprop prefix
https://plus.google.com/u/0/
This brings no result, probably because of the lesser know man between Louis 14 and 15 :
CONSTRUCT { dbpedia:Henry_IV_of_France ?C0P ?C0V . ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France . ?C1 ?C1P ?C1V . # 13 ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14 ?C3 dbpedia-owl:parent ?C2 . ?C3 ?C3P ?C3V. # ? ?C4 dbpedia-owl:parent ?C3 . ?C4 ?C4P ?C4V. # 15 ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16 # ?C6 dbpedia-owl:parent ?C5 . ?C6 ?C6P ?C6V. # } WHERE { dbpedia:Henry_IV_of_France ?C0P ?C0V . ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France . ?C1 ?C1P ?C1V . # 13 ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14 ?C3 dbpedia-owl:parent ?C2 . ?C3 ?C3P ?C3V. # ? ?C4 dbpedia-owl:parent ?C3 . ?C4 ?C4P ?C4V. # 15 ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16 # ?C6 dbpedia-owl:parent ?C5 . ?C6 ?C6P ?C6V. # }
Anyway I had this message:
Virtuoso S1T00 Error SR171: Transaction timed out
So I split in two :
CONSTRUCT { dbpedia:Henry_IV_of_France ?C0P ?C0V . ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France . ?C1 ?C1P ?C1V . # 13 ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14 } WHERE { dbpedia:Henry_IV_of_France ?C0P ?C0V . ?C1 dbpedia-owl:parent dbpedia:Henry_IV_of_France . ?C1 ?C1P ?C1V . # 13 ?C2 dbpedia-owl:parent ?C1 . ?C2 ?C2P ?C2V. # 14 }
I cannot put both CONSTRUCT blocs in the same file :( .
CONSTRUCT { ?C4 dbpedia-owl:parent dbpedia:Louis_XIV_of_France . ?C4 ?C4P ?C4V. # 15 ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16 } WHERE { ?C4 dbpedia-owl:parent dbpedia:Louis_XIV_of_France . ?C4 ?C4P ?C4V. # 15 ?C5 dbpedia-owl:parent ?C4 . ?C5 ?C5P ?C5V. # 16 }
Also the Henry_IV+L13+L14 above query did "Transaction timed out" !!! (2 times!) .
But the above query L15+L16 succeded !
I could split again, but for the purpose of N3 rules demo of family relationship I need only the family relationship predicates:
dbpedia-owl:parent dbpedia-owl:spouse dbpprop:father
<jmv_> I had to write a huge SPARQL query for my family demo:
<jmv_> https://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk/eulergui/examples/kings_of_France-genealogy.rq
<jmv_> but it works ! And is suitable for an N3 rules demo.
<jmv_> well , suitable for a demo in Fr , because everybody knows most of these persons .
CONSTRUCT { dbpedia:Henry_IV_of_France dbpedia-owl:parent ?P4 ; dbpedia-owl:spouse ?S4 ; dbpprop:father ?F4 . ?C4 dbpprop:father dbpedia:Henry_IV_of_France . dbpedia:Louis_XIII_of_France dbpedia-owl:parent ?P13 ; dbpedia-owl:spouse ?S13 ; dbpprop:father ?F13 . ?C13 dbpprop:father dbpedia:Louis_XIII_of_France . dbpedia:Louis_XIV_of_France dbpedia-owl:parent ?P14 ; dbpedia-owl:spouse ?S14 ; dbpprop:father ?F14 . ?C14 dbpprop:father dbpedia:Louis_XIV_of_France . dbpedia:Louis_XV_of_France dbpedia-owl:parent ?P15 ; dbpedia-owl:spouse ?S15 ; dbpprop:father ?F15 . ?C15 dbpprop:father dbpedia:Louis_XV_of_France . dbpedia:Louis_XVI_of_France dbpedia-owl:parent ?P16 ; dbpedia-owl:spouse ?S16 ; dbpprop:father ?F16 . ?C16 dbpprop:father dbpedia:Louis_XVI_of_France . } WHERE { dbpedia:Henry_IV_of_France dbpedia-owl:parent ?P4 ; dbpedia-owl:spouse ?S4 ; dbpprop:father ?F4 . ?C4 dbpprop:father dbpedia:Henry_IV_of_France . dbpedia:Louis_XIII_of_France dbpedia-owl:parent ?P13 ; dbpedia-owl:spouse ?S13 ; dbpprop:father ?F13 . ?C13 dbpprop:father dbpedia:Louis_XIII_of_France . dbpedia:Louis_XIV_of_France dbpedia-owl:parent ?P14 ; dbpedia-owl:spouse ?S14 ; dbpprop:father ?F14 . ?C14 dbpprop:father dbpedia:Louis_XIV_of_France . dbpedia:Louis_XV_of_France dbpedia-owl:parent ?P15 ; dbpedia-owl:spouse ?S15 ; dbpprop:father ?F15 . ?C15 dbpprop:father dbpedia:Louis_XV_of_France . dbpedia:Louis_XVI_of_France dbpedia-owl:parent ?P16 ; dbpedia-owl:spouse ?S16 ; dbpprop:father ?F16 . ?C16 dbpprop:father dbpedia:Louis_XVI_of_France . }
importing plain XML is broken (but test stil runs !!)
Trouble with loading in EG :
http://www.daml.org/2001/01/gedcom/gedcom#
https://github.com/dbpedia-spotlight/dbpedia-spotlight
http://dbpedia-spotlight.github.com/demo/#
http://code.google.com/p/googlecl/
<jmv_> installing package in debian
In the shell:
% google calendar add "test with googlecl" Did not find config / preferences file at /home/jmv/.googlecl/config ... making new one. Please specify user: jeanmarc.vanel@gmail.com Please log in and/or grant access via your browser at https://www.google.com/accounts/OAuthAuthorizeToken?oauth_token=4%2FVCjpDorWfePa_U01ZJVZzVYrN74L&hd=default then hit enter. Nouvelle fenêtre ouverte dans la session du navigateur
Then I clicked in the newly opened browser tab, and it answered:
You have successfully granted GoogleCL jmv@oem-laptop access to your Google Account. You can revoke access at any time under 'My Account'.
<jmv_> This works :
<jmv_> google contacts list name,email --title ".*Jos.*"
<jmv_> Jos De Roo,other jos.deroo@agfa.com
cf http://code.google.com/p/googlecl/wiki/Manual#Contacts
<rszeno> to be honest i don't understand the logic, to keep things on google servers then spend time to get and convert from there but that's me, :)
<jmv_> I have a use case : use rules to manage stuff like my contacts in relation with the mails I sent more or less recently :
<jmv_> remaind to mail to important contacts after some time,
<jmv_> infer that some contacts are important by the frequence of mails I send , etc ...
<rszeno> i'm curious how you will compute frecvency, :)
<jmv_> have not thought yet
<jmv_> it's clear that rules are not for too complex computations, like computing the surface inside a closed curve
% google --version google 0.9.9
<jmv_> too old , does not understand --delimiter
So I download and install the latest GoogleCL :
% sudo dpkg install ~/Téléchargements/googlecl_0.9.13-1_all.deb
Now this works :
% google contacts list --delimiter ",,," ".*Jos.*" Jos De Roo,,,jos.deroo@agfa.com
Thez list of available fields for each service is here :
http://code.google.com/p/googlecl/wiki/Manual#The_List_task
https://developers.google.com/google-apps/contacts/v3/
But GoogleCL does not provide gmail !?!
http://developers.facebook.com/docs/reference/api/
Public information:
% curl -H 'Accept: text/turtle' http://graph.facebook.com/jmvanel @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix owl: <http://www.w3.org/2002/07/owl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix api: <tag:graph.facebook.com,2011:/> . @prefix og: <http://ogp.me/ns#> . @prefix fb: <http://ogp.me/ns/fb#> . @prefix : <http://graph.facebook.com/schema/~/> . @prefix user: <http://graph.facebook.com/schema/user#> . </525839392#> user:id "525839392" ; user:name "Jean-Marc Vanel" ; user:first_name "Jean-Marc" ; user:last_name "Vanel" ; user:link <http://www.facebook.com/jmvanel> ; user:username "jmvanel" ; user:gender "male" ; user:locale "fr_FR" .
Private information:
curl -H 'Accept: text/turtle' 'https://graph.facebook.com/me/friends?access_token=XXX'
the access_token must be pasted from links in the facebook/reference/api .
mkdir dbpedia.org_3.8 cd dbpedia.org_3.8 BASE=http://downloads.dbpedia.org/3.8/en wget $BASE/instance_types_en.ttl.bz2 wget $BASE/specific_mappingbased_properties_en.ttl.bz2 wget $BASE/long_abstracts_en.ttl.bz2 for f in *.bz2 ; do echo bunzip2 $f ; bunzip2 $f done
Nice tool : http://dbpedia-spotlight.github.com/demo/
TODO
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): button for N3 result must first be disabled
COMMIT
- print download Time in console for SPARQL (hook in URIModificationChecker)
- launch Default Browser for N3 source URI that outputs only HTML
- generate skeleton ontology only for pure N3 sources (hand-made)
- Namespaces: add more "Non Ontology"
Thread Name: SwingWorker-pool-4-thread-1 0java.lang.Thread.getStackTrace(Thread.java:1567) 1eulergui.util.StackHelper.printStackTrace(StackHelper.java:13) 2eulergui.gui.controller.N3SourceWorker.<init>(N3SourceWorker.java:33) 3eulergui.gui.features.N3SourceCheck$1.<init>(N3SourceCheck.java:35) 4eulergui.gui.features.N3SourceCheck.check(N3SourceCheck.java:35) 5eulergui.gui.features.N3SourceCheck.n3SourceChanged(N3SourceCheck.java:30) 6eulergui.project.ProjectChangeSupport.fireN3SourceChanged(ProjectChangeSupport.java:160) 7eulergui.project.Project.fireN3SourceChanged(Project.java:1371) 8eulergui.gui.actions.SPARQLServiceInputAction$ChooseServiceAction$1.doInBackground(SPARQLServiceInputAction.java:190) 9eulergui.gui.controller.N3SourceWorker.doInBackground(N3SourceWorker.java:1) 10javax.swing.SwingWorker$1.call(SwingWorker.java:296) 11java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 12java.util.concurrent.FutureTask.run(FutureTask.java:166) 13javax.swing.SwingWorker.run(SwingWorker.java:335) 14java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
<jmvanel> instead of working on family , actors or musicians, for EG examples ,
<jmvanel> I think now about software projects :)
<jmvanel> Will start by downloading
?SP a dbpedia-owl:Software ; ?P ?V .
<jmvanel> this suits my 2 requirements for examples : audience know the domain;
<jmvanel> audience knows some typical data
CONSTRUCT { ?A ?P ?V . } WHERE { ?A a dbpedia-owl:MusicalArtist ; ?P ?V . }
// TODO migrate these ontologies to EG
http://jmvanel.free.fr/ontology/java_projection.owl
http://jmvanel.free.fr/ontology/java_library.owl#
http://jmvanel.free.fr/ontology/software_development.owl#
http://jmvanel.free.fr/ontology/gui_details.owl#
Could not load from URL http://deductions.sf.net/ontology/knowledge_base.owl#
Could not load from URL http://eulergui.sf.net/owl-rule#
Could not load from URL http://deductions.sf.net/generic_gui#
[http://www.w3.org/2000/10/swap/reason#, http://eulergui.sourceforge.net/engine.owl#, http://www.w3.org/2000/01/rdf-schema#, http://www.w3.org/2000/10/swap/string#, http://www.w3.org/2000/10/swap/math#, file:/home/jmv/src/eulergui/materials.ace.n3p#, http://eulersharp.sourceforge.net/2003/03swap/log-rules#, http://www.w3.org/XML/1998/namespace, http://jmvanel.free.fr/ontology/java_projection.owl#, http://deductions.sf.net/generic_gui#, http://www.w3.org/2000/10/swap/list#, http://www.w3.org/1999/02/22-rdf-syntax-ns#, http://jmvanel.free.fr/ontology/java_library.owl#, http://purl.org/dc/elements/1.1/, http://dbpedia.org/ontology/, http://jmvanel.free.fr/ontology/software_development.owl#, http://java.sun.com/method#, http://java.sun.com/predicate#, http://eulergui.sf.net/owl-rule#, file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/materials.ace.2.n3p#, http://localhost/var#, http://jmvanel.free.fr/ontology/gui_details.owl#, http://java.sun.com/class#, http://rdfs.org/ns/void#, http://www.w3.org/2003/11/swrl#, http://eulersharp.svn.sourceforge.net/viewvc/eulersharp/trunk/2003/03swap/, http://dbpedia.org/resource/, http://www.w3.org/2000/10/swap/log#, http://www.w3.org/2003/11/swrlb#, http://www.w3.org/2004/06/rei#, http://deductions.sf.net/ontology/knowledge_base.owl#, http://www.w3.org/2002/07/owl#, http://jmvanel.free.fr/ontology/software_applications.owl#, http://jmvanel.free.fr/ontology/gui_generic.owl#, http://www.w3.org/2007/rif-builtin-function#, http://www.w3.org/2005/xpath-functions#, http://owldl.com/ontologies/dl-safe.owl#, http://xmlns.com/foaf/0.1/]
TODO : in FEATURE "add to project a skeleton ontology for missing declarations of properties and classes" :
- reformat ontology with Jena; take in account referred ontologies
TODO: Euler engine: N3 sources in subproject in other directory are not found.
N3JavaMappingBuiltin.processTripleElementForConsequent(): INFO: 2 is not a variable and not a Resource N3SourcetoDrools.translate(): java.lang.RuntimeException: Drools exception during package addition to rule base java.lang.RuntimeException: translate(IRDFIterator iterator, ... file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/deductions/n3_nojs/generic_to_java-rules.n3 at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:327) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262) at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90) at eulergui.project.Project.doTranslateN32Drools(Project.java:872) at eulergui.project.Project.translateN32Drools(Project.java:823) at eulergui.project.Project.prepareDrools(Project.java:796) at eulergui.project.Project.doRunDrools(Project.java:749) at eulergui.project.Project.runDroolsTriples(Project.java:700) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:31) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:49) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:18) at javax.swing.SwingWorker$1.call(SwingWorker.java:296) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at javax.swing.SwingWorker.run(SwingWorker.java:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.RuntimeException: Drools exception during package addition to rule base at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:427) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320) ... 17 more Caused by: java.lang.NullPointerException at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:259) at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459) at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1100) at org.drools.common.AbstractRuleBase.mergePackage(AbstractRuleBase.java:854) at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:614) at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:472) at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:479) at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:425) ... 18 more
N3JavaMappingBuiltin.processTripleElementForConsequent(): INFO: 2 is not a variable and not a Resource N3SourcetoDrools.translate(): java.lang.RuntimeException: Drools exception during package addition to rule base java.lang.RuntimeException: translate(IRDFIterator iterator, ... file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/deductions/n3_nojs/generic_to_java-rules.n3 at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:327) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262) at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90) at eulergui.project.Project.doTranslateN32Drools(Project.java:872) at eulergui.project.Project.translateN32Drools(Project.java:823) at eulergui.project.Project.prepareDrools(Project.java:796) at eulergui.project.Project.doRunDrools(Project.java:749) at eulergui.project.Project.runDroolsTriples(Project.java:700) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:31) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:49) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:18) at javax.swing.SwingWorker$1.call(SwingWorker.java:296) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at javax.swing.SwingWorker.run(SwingWorker.java:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.RuntimeException: Drools exception during package addition to rule base at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:427) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320) ... 17 more Caused by: org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback@6fd5bc97 at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:995) at org.drools.reteoo.RuleTerminalNode.doRemove(RuleTerminalNode.java:366) at org.drools.common.BaseNode.remove(BaseNode.java:109) at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:261) at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459) at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1100) at org.drools.common.AbstractRuleBase.mergePackage(AbstractRuleBase.java:854) at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:614) at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:472) at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:479) at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:425) ... 18 more Caused by: java.lang.NullPointerException at eulergui.inference.drools.impl.JavaObjectsRetractionListener.invokeRemoveMethod(JavaObjectsRetractionListener.java:97) at eulergui.inference.drools.impl.JavaObjectsRetractionListener.objectRetracted(JavaObjectsRetractionListener.java:36) at org.drools.event.WorkingMemoryEventSupport.fireObjectRetracted(WorkingMemoryEventSupport.java:78) at org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:599) at org.drools.common.AbstractWorkingMemory.retract(AbstractWorkingMemory.java:936) at org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback.execute(TruthMaintenanceSystem.java:320) at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:993) ... 28 more
Tests run: 200, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] Total time: 16:37.434s
<CrazyThinker> http://agi-conference.org/2012/committees-2/
<CrazyThinker> Now, that is an impressive list of people
http://web.media.mit.edu/~minsky/
Microsoft was dead
http://www.paulgraham.com/microsoft.html
Thread [main] (Suspended) TripleStoreTDB(TripleStoreJena).createNonListStatement(ITriple) line: 92 TripleStoreTDB(TripleStoreJena).createStatement(ITriple) line: 72 TripleStoreTDB(TripleStoreJena).extractList(ITriple) line: 249 TestTripleStoreTDB.testRDFList() line: 141
<jmvanel> Added to my agenda http://agi-conference.org/2012/
<jmvanel> Likely I'll go .
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number at java.text.DecimalFormat.format(DecimalFormat.java:505) at java.text.Format.format(Format.java:157) at javax.swing.JTable$DoubleRenderer.setValue(JTable.java:5367) at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:257) at javax.swing.JTable.prepareRenderer(JTable.java:5735) at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114)
COMMIT:
N3JTable : catch exceptions in formatting datatype Properties, so that now table formatting goes on;
exceptions such as:
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Cannot format given Object as a Number
at java.text.DecimalFormat.format(DecimalFormat.java:505)
at java.text.Format.format(Format.java:157)
at javax.swing.JTable$DoubleRenderer.setValue(JTable.java:5367)
at javax.swing.table.DefaultTableCellRenderer.getTableCellRendererComponent(DefaultTableCellRenderer.java:257)
http://wiki.opencog.org/w/Unified_rule_engine
mix eXist and prolog ?
N3TableModelTest : stack when Triple is updated, following N3TableModel initialization :
Thread [main] (Suspended (breakpoint at line 135 in TripleStoreDrools)) TripleStoreDrools.updateTriple(ITriple, String) line: 135 EditCellListener.tableChanged(TableModelEvent) line: 53 N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296 N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275 N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667 TableModelFromN3.setValueInTableModel(ITriple) line: 89 TableModelFromN3.add(ITriple) line: 75 TableModelFromN3.updateTableModel(List<ITriple>) line: 62 N3TableModel.initFromTriples(List<ITriple>) line: 33 N3TableModel.<init>(List<ITriple>, ITripleStore) line: 27 N3TableModelTest.testColumnType(int) line: 183 N3TableModelTest.main(String[]) line: 56
N3TableModelTest : stack when Triple is updated, following user edit in the table:
Thread [AWT-EventQueue-0] (Suspended (breakpoint at line 135 in TripleStoreDrools)) TripleStoreDrools.updateTriple(ITriple, String) line: 135 EditCellListener.tableChanged(TableModelEvent) line: 54 N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296 N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275 N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667 N3JTable(JTable).setValueAt(Object, int, int) line: 2744 N3JTable(JTable).editingStopped(ChangeEvent) line: 4726 JTable$NumberEditor(AbstractCellEditor).fireEditingStopped() line: 141 DefaultCellEditor$1(DefaultCellEditor$EditorDelegate).stopCellEditing() line: 368 JTable$NumberEditor(DefaultCellEditor).stopCellEditing() line: 233 JTable$NumberEditor(JTable$GenericEditor).stopCellEditing() line: 5481 BasicTableUI$Actions.actionPerformed(ActionEvent) line: 502 SwingUtilities.notifyAction(Action, KeyStroke, KeyEvent, Object, int) line: 1661 N3JTable(JComponent).processKeyBinding(KeyStroke, KeyEvent, int, boolean) line: 2879 N3JTable(JTable).processKeyBinding(KeyStroke, KeyEvent, int, boolean) line: 5262 JTextField(JComponent).processKeyBindings(KeyEvent, boolean) line: 2940 JTextField(JComponent).processKeyEvent(KeyEvent) line: 2842 JTextField(Component).processEvent(AWTEvent) line: 6281 JTextField(Container).processEvent(AWTEvent) line: 2229 JTextField(Component).dispatchEventImpl(AWTEvent) line: 4860 JTextField(Container).dispatchEventImpl(AWTEvent) line: 2287 JTextField(Component).dispatchEvent(AWTEvent) line: 4686 DefaultKeyboardFocusManager(KeyboardFocusManager).redispatchEvent(Component, AWTEvent) line: 1908 ...
Tests results
Results : Tests in error: testRDFList(unif.TestTripleStoreTDB) testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*" testSimpleURLProject(eulergui.gui.TestJavaEditor): 1 testURLProjectOWL(eulergui.gui.TestJavaEditor): eulergui.gui.main.ProjectGUI cannot be cast to org.gjt.sp.jedit.View testSimpleProjectLocal(eulergui.gui.TestJavaEditor): eulergui.gui.main.ProjectGUI cannot be cast to org.gjt.sp.jedit.View Tests run: 198, Failures: 0, Errors: 5, Skipped: 0
COMMIT
- ACE : set ontology Prefix == projet URI
TODO : user should be able to set an ontology URI for the project
Idea for form generator: with such a rule, the predicate
gui:createFormFromResource
should work, so no need to go deep into
ontology ( only for OWL ==> N3 generation ) :
{?VAR a ns2:concrete} => {?t0 a ns2:aggregate. ?t1 a ns2:cement. ?VAR ns2:contains ?t0. ?VAR ns2:contains ?t1}.
% ape.exe -text 'Every n:concrete v:contains a n:cement and v:contains an n:aggregate.' -solo paraphrase Every n:concrete v:contains a n:cement and v:contains an aggregate. % ape.exe -text 'Every n:concrete v:contains a n:cement and v:contains an n:aggregate.' -solo owlfsspp Prefix(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>) Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test> SubClassOf( :concrete ObjectIntersectionOf( ObjectSomeValuesFrom( :contains :cement ) ObjectSomeValuesFrom( :contains :aggregate ) ) ) )
In EulerGUI, this gives:
{ ?VAR a ns2:concrete } => { ?t0 a ns2:aggregate. ?t1 a ns2:cement. ?VAR ns2:contains ?t0. ?VAR ns2:contains ?t1 }.
while the OWL/RDF version is :
:concrete rdf:type owl:Class ; rdfs:subClassOf [ rdf:type owl:Class ; owl:intersectionOf ( [ rdf:type owl:Restriction ; owl:onProperty :contains ; owl:someValuesFrom :aggregate ] [ rdf:type owl:Restriction ; owl:onProperty :contains ; owl:someValuesFrom :cement ] ) ] .
Being subClass of an intersectionOf of C1 and C2 is the same thing as being both a subClass of C1 and C2.
{ ?SC rdfs:subClassOf ?SUPER . ?SUPER owl:intersectionOf ( ?C1 C2 ). } => { ?SC rdfs:subClassOf ?C1. ?SC rdfs:subClassOf ?C2. }.
materials.ace.n3p
GET http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/rules-documentor.n3 FROM /home/jmv/.eulergui/n3_cache/rules-documentor.n3_977667786497388755.n3 SC=18 GET file:///home/jmv/src/eulergui/examples/materials.app.n3 SC=2 GET file:///tmp/materials.ace.as.rules.n3 SC=1 GET file:///home/jmv/.eulergui/n3_cache/materials.ace_431555212257621755.n3 SC=14 java.lang.RuntimeException: EXISTENCE ERROR- open/3 could not open file /home/jmv/src/eulergui/gui_generic.n3
Erreur pendant Engine N3 run java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /home/jmv/src/eulergui/examples/materials.app.n3, /tmp/materials.ace.as.rules.n3, /home/jmv/.eulergui/n3_cache/materials.ace_431555212257621755.n3, /home/jmv/src/eulergui/gui_generic.n3, /home/jmv/src/eulergui/java_event-rules.n3, /home/jmv/src/eulergui/software_applications.n3, /home/jmv/src/eulergui/generic_gui_projection-rules.n3, /home/jmv/src/eulergui/rpo-rules-small.n3, /home/jmv/src/eulergui/java_library-rules.n3, /home/jmv/src/eulergui/form-rules.n3, /home/jmv/src/eulergui/generic_to_java-rules.n3, /home/jmv/src/eulergui/java_library.n3, /home/jmv/src/eulergui/app_gui-rules2.n3] Cause: java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /home/jmv/src/eulergui/examples/materials.app.n3, /tmp/materials.ace.as.rules.n3, /home/jmv/.eulergui/n3_cache/materials.ace_431555212257621755.n3, /home/jmv/src/eulergui/gui_generic.n3, /home/jmv/src/eulergui/java_event-rules.n3, /home/jmv/src/eulergui/software_applications.n3, /home/jmv/src/eulergui/generic_gui_projection-rules.n3, /home/jmv/src/eulergui/rpo-rules-small.n3, /home/jmv/src/eulergui/java_library-rules.n3, /home/jmv/src/eulergui/form-rules.n3, /home/jmv/src/eulergui/generic_to_java-rules.n3, /home/jmv/src/eulergui/java_library.n3, /home/jmv/src/eulergui/app_gui-rules2.n3]
<jmvanel> fixed several things, including generating rules from OWL, working with Euler cache , so that it should work even without internet .
<jmvanel> also popups when inpouts from command line have errors
<jmvanel> inputs
<jmvanel> + working from an ACE file in all 4 cases :( : with and without cache, from command line or from button /
So, time for a snapshot :)
GET file:///tmp/eg-8183002801998623440.n3 SC=4 GET http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3 FROM /home/jmv/.eulergui/n3_cache/swrl-n3-rulesQ.n3_1987130039713927688.n3 SC=3 networking 28 [msec cputime] 33 [msec walltime] TC=6 TP=16 BC=0 BP=7 PM=0 CM=0 FM=0 AM=0 reasoning 4 [msec cputime] 2 [msec walltime] N3Source.parseResult(): parseResult (http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3p#EyeHelper.reasonExternalProlog) was null ==> re-parse (and possibly re-read N3 source) # # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007fd0994d55bf, pid=4066, tid=140533741467392 # # JRE version: 7.0-b147
http://treetop.rubyforge.org/index.html
http://en.wikipedia.org/wiki/Semantic_reasoner#Free_software
Experience with N3 rules
Tim Berners-Lee, Dan Connolly, Eric Prud'homeaux, Yosi Scharf
http://www.w3.org/2004/12/rules-ws/paper/94/
Found this nice list of papers : http://www.w3.org/2004/12/rules-ws/accepted
including http://www.w3.org/2004/12/rules-ws/paper/48/
http://www.hokstad.com/
N3Source N3Source.manageN3Cache() creates an empty File used e.g. when a web server is not responding
TODO : the edit button for an empty file should be deactivated in the GUI
( was NPE with BloodPressure.n3p.n3 :
FIXED: examples/BloodPressure.n3p.n3 is in fact XML
TODO proofread Save for projects in N3
http://answers.semanticweb.com/questions/505/what-ruby-library-do-you-use-for-working-with-rdf
http://semanticweb.org/wiki/Getting_data_from_the_Semantic_Web_(Ruby)
sudo gem1.8 install linkeddata # takes a long time!
Alas : irb does not work for the rdf example from Debian stable !! :(
Nor with ruby !
Nor from Ubuntu 2012.04 !!!
% ruby semweb.rb semweb.rb:1:in `require': no such file to load -- rdf (LoadError) from semweb.rb:1
Rools : alas does not work for the example from Debian stable !! :( , nor from Ubuntu 2012.04 !!!
http://rools.rubyforge.org/quickstart.html
% ruby rools.rb ./rools.rb:4: uninitialized constant Rools (NameError) from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' from /usr/lib/ruby/vendor_ruby/1.8/rubygems/custom_require.rb:36:in `require' from rools.rb:2
Yesterday went to ruby meetup , about mongoDB.
http://stackoverflow.com/questions/820259/ruby-rules-engines
Today I test a rule engine in Ruby :
https://github.com/Codalytics/ruleby/wiki/Quick-Start
sudo apt-get install libgemplugin-ruby
git clone git://github.com/Codalytics/ruleby.git
cd ruleby
ls -l
total 56
drwxr-xr-x 3 jmv jmv 4096 13 sept. 11:54 benchmarks
drwxr-xr-x 2 jmv jmv 4096 13 sept. 11:54 examples
-rw-r--r-- 1 jmv jmv 18005 13 sept. 11:54 GPL.txt
drwxr-xr-x 4 jmv jmv 4096 13 sept. 11:54 lib
-rw-r--r-- 1 jmv jmv 2341 13 sept. 11:54 LICENSE.txt
-rw-r--r-- 1 jmv jmv 623 13 sept. 11:54 README.markdown
-rw-r--r-- 1 jmv jmv 710 13 sept. 11:54 ruleby.gemspec
drwxr-xr-x 2 jmv jmv 4096 13 sept. 11:54 spec
drwxr-xr-x 2 jmv jmv 4096 13 sept. 11:54 tasks
drwxr-xr-x 2 jmv jmv 4096 13 sept. 11:54 tests
cd examples
ruby hello.rb
Hello World
Goodbye world
The syntax of the rule language (DSL) : https://github.com/Codalytics/ruleby/wiki/Ferrari
The language is in fact pretty similar to Drools in its semantics.
I also found a presentation explaining Drools and Ruleby side by side:
http://fr.slideshare.net/martincabrera/rules-engine-java-rails
Fosdem 50 minute introduction into Drools
http://blog.athico.com/2010/03/fosdem-50-minute-introduction-into.html
ERROR during project opening (N3 rethrow Event) ERROR in reasoning with External Prolog: [--nope, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, /home/jmv/.eulergui/n3_cache/owl-subclass-assertions-to-rules.n3_399242197975572251.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, /home/jmv/.eulergui/n3_cache/variableSubstitution.n3_1092222620304522560.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /home/jmv/.eulergui/n3_cache/swrl-n3-rules.n3_6834720492898820436.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /tmp/eg-2562998987318900259.n3, --query, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3] Cause: java.lang.RuntimeException: ** ERROR ** http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3 ** exec_error(wget --header="Accept: text/*" --header="Cache-Control: max-age=3600" -q "http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3" -O /tmp/yap_eye_3707_4)
http://www.lexique.org/
- move N3SourceTableView and N3JTable to deductions.runtime.swing
- move N3ShellFrame in gui
- fix preceding commit : move package interfaces out of gui
To re-create eulergui_api/ from scratch
rm -rf $HOME/src/eulergui_api cd $HOME/src/eulergui cp -r . ../eulergui_api cd ../eulergui_api rm -rf src/test/java/eulergui/gui cd src/main/java rm -rf jdepend eulergui/gui rm -rf net/rhizomik rm -rf org/gjt # rm -rf eulergui/inputs
Problems remaining:
COMMIT
- move classes TemporaryFrame , SwingHelper out of eulergui.gui
- move package interfaces out of eulergui.gui
- extract class RDFN3Converter out of class ResultEditorN3Action
Updated eulergui_api/ :
rm -rf src/main/java/eulergui cp -r /home/jmv/src/eulergui/src/main/java/eulergui src/main/java/eulergui rm -rf src/test/java/eulergui/gui rm -rf src/main/java/eulergui/gui rm -rf src/main/java/eulergui/inputs
https://www.google.fr/search?q=java+numeric+library
http://ismir2012.ismir.net/event/programme
http://rdf-translator.appspot.com/
COMMIT
- TestTripleStoreTDB : add more assert
- TripleStoreTDB.java : set database location
move LOGGER from ProjectGUI to EulerGUI
cd ../eulergui_api cd src/main/java rm -rf jdepend eulergui/gui rm -rf net/rhizomik rm -rf org/gjt
move LOGGER from ProjectGUI to EulerGUI
move package eulergui.gui.interfaces to eulergui.interfaces
http://wiki.agile-france.org/cgi-bin/wiki.pl?DojoDeveloppement
COMMIT
- RENAME class Persistance to Persistence, PersistanceListener to PersistenceListener
- TripleStoreTDB : test store and retrieve an RDF list
TODO: TripleStoreTDB : fix searchBySubjectAndPredicate, see comment "side effect"
Revision 3227 - Directory Listing
Modified Thu Aug 30 08:25:16 2012 UTC (11 days ago) by jmvanel
Persistance of columns order in TableApp2 : WIP: set columns order from persistent store
Revision 2853 - Directory Listing
Modified Sun Jan 8 21:13:19 2012 UTC (8 months ago) by jmvanel
WIP: isolated RDF lists in plain triples
- test/list_alone.n3p works in TestReasonning
TODO:
- use prior indexing of RDF lists in isRDFListUsedInTriple
COMMIT
FIX N3TermHelper.getLocalName() :
now getLocalName( "<bla>") returns "bla"
<rszeno> what karima use on server side? java, php, perl?
<jmvanel> php + filestore
<rszeno> are few libraries and integration is easy but she need to search
<rszeno> http://www.w3.org/community/rww/wiki/Main_Page
<jmvanel> she also has a nice OSS project to plug into MediaWiki to add RDF annotations :
<jmvanel> http://www.bordercloud.com/recherche-developpement/linkedwiki
Results : Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..) testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): Wait for "Component having "file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/test/catch_allQ.n3" name." subcomponent to be displayed testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): Wait for "Component having "file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/test/catch_allQ.n3" name." subcomponent to be displayed testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*" testAddNewN3Source(eulergui.gui.TestN3SourceInGUI): Component enabled: class javax.swing.JButton testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI): Frame Title Component Chooser ".*new_source.n3.*"
i
<rszeno> today many developers build a fake image about their work but doesn't understand that pay this when users sick of problems start to move into another direction or build their inhouse stuff
<rszeno> as luc said today, who care about future? :)
<jmvanel> we are in a society of the instant; maybe at an unconscious level people know that severe problems accumulate, like economy and planet changes out of control
<jmvanel> so they act like ostrich putting their head in the sand
<jmvanel> And where economy and planet troubles meet, is the probable rise of the sea level of 70 meters :(
Every plant is a living-being.
COMMIT Révision 3235
New N3 Source: Add query in ATTEMPTO Controlled English
create a new ACE file was not possible (NOTE: create a new RDF is not possible but it's not necessary)
- change order of buttons to create N3 sources
- icon not too large
- tested:
* add new ACE file
* open existing ACE
* popup for ACE errors
* trigger OWL and SWRL translation
TODO add Jemmy tests
PENDING predictive ACE editor, completion in editor
Refactor : pull up fields in AddN3Action: n3SourceType, suffixes, prefillInEditor
convert -resize 24x24 \ src/main/resources/eulergui/gui/main/AceWikiLogoSmall.png \ src/main/resources/eulergui/gui/main/AceWikiLogoSmall2.png
COMMIT
New N3 Source: Add N3 source in ATTEMPTO Controlled English
TODO icon too large, trigger OWL and SWRL translation
PENDING predictive ACE editor, completion in editor
Mail sent to Kaarel
Yes, a newer version of GF is necessary because we had to fix some
bugs in the resource grammar library. The ACE-in-GF readme says:
Note: based on GF darcs version: 2012-05-29 17:38:20 CEST
Hopefully the latest darcs version works as well.
/home/jmv/src/ACE-in-GF/ % make pgf_acewiki_aceowlgf --make --path=present:grammars/acewiki_aceowl:words/acewiki_aceowl:lib/src/ace:lib/src/api --startcat=ACEText --optimize-pgf --mk-index words/acewiki_aceowl/TestAttemptoAce.gf words/acewiki_aceowl/TestAttemptoCat.gf words/acewiki_aceowl/TestAttemptoDut.gf words/acewiki_aceowl/TestAttemptoEng.gf words/acewiki_aceowl/TestAttemptoFin.gf words/acewiki_aceowl/TestAttemptoFre.gf words/acewiki_aceowl/TestAttemptoGer.gf words/acewiki_aceowl/TestAttemptoIta.gf words/acewiki_aceowl/TestAttemptoSpa.gf words/acewiki_aceowl/TestAttemptoSwe.gf words/acewiki_aceowl/TestAttemptoUrd.gfgf: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directorymake: *** [pgf_acewiki_aceowl] Erreur 127
(tested from owl-SymmetricProperty.n3 )
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "??" getLocalN3(): /home/jmv/.eulergui/n3_cache/rdf-schema#>._293510382945813127.n3 getURI(): http://www.w3.org/2000/01/rdf-schema#>. at eulergui.project.N3Source.manageParseN3(N3Source.java:464) at eulergui.project.N3Source.update(N3Source.java:401) at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121) at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40) at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77) at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:93) at eulergui.project.Project.addN3Source(Project.java:328) at eulergui.project.Project.addN3Source(Project.java:308) at eulergui.project.SourceFactory.addSource(SourceFactory.java:146) at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "??" getLocalN3(): /home/jmv/.eulergui/n3_cache/log#>._3051478644302417486.n3 getURI(): http://www.w3.org/2000/10/swap/log#>. at eulergui.project.N3Source.manageParseN3(N3Source.java:464) at eulergui.project.N3Source.update(N3Source.java:401) at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121) at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40) at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77) at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:93) at eulergui.project.Project.addN3Source(Project.java:328) at eulergui.project.Project.addN3Source(Project.java:308) at eulergui.project.SourceFactory.addSource(SourceFactory.java:146) at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)
java.lang.RuntimeException: XML FormatRecognizer : Could not load from URL http://www.w3.org/2002/07/owl#>. ; this was expected to be XML, but does not seem to be XML; reason: Content is not allowed in prolog. cause: null at eulergui.inputs.dispatcher.FormatRecognizer.<init>(FormatRecognizer.java:41) at eulergui.project.SourceFactory.addSource(SourceFactory.java:117) at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)
ava.net.MalformedURLException: unknown protocol: owl at java.net.URL.<init>(URL.java:590) at java.net.URL.<init>(URL.java:480) at java.net.URL.<init>(URL.java:429) at eulergui.gui.actions.AddURIToProjectAction.actionPerformed(AddURIToProjectAction.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.gjt.sp.jedit.bsh.Reflect.invokeMethod(Reflect.java:134)
This is enough to enable Squall on Debian:
sudo ln -s /lib/libtic.so.5 /lib/libtinfo.so.5
This works as expected, but how can I get all properties of this URI ?
% echo "what is the name of dbpedia:Buddy_Guy ." | squall2sparql SELECT DISTINCT ?x1 WHERE { dbpedia:Buddy_Guy :name ?x1 . }
Is it possible to make CONTRUCT queries?
Apparently, it is not possible to set prefixes, and there are no default prefixes set by Squall .
This gives a wrong result:
% echo "what is the <http://dbpedia.org/property/name> of dbpedia:Buddy_Guy ." | squall2sparqlSELECT DISTINCT ?x1 WHERE { ?x1 a <http://dbpedia . }
I finished the integration of Squall in EulerGUI.
<jmvanel> yesterday at the last minute I went here :
<jmvanel> meetup.com/SemanticCampParis/events/36545432
<jmvanel> The 15mn pres of EG was apreciated
<jmvanel> pres was not scheduled !
<jmvanel> I came 1h before end at 18:
jmvanel> This time I'll do things more clean for Squall in EG , I first wrote an N3 config. file :
@keywords a. squall a N3SourceType; rdfs:label "Squall"; rdfs:comment"From Controlled english to SPARQL 1.1. - runs squall2sparql and launches SPARQL query"; rdfs:seeAlso <http://www.irisa.fr/LIS/softwares/squall>; extension ".squall"; javaN3Factory java:eulergui-project-N3SourceFromSquall; javaN3Widgets java:eulergui-gui-view-ButtonsForN3SourceFromSquall.
and later other N3 source types should later be retrofitted into this .
Possible design for a Java method call or constructor on consequent side :
c a javaMethodCall; javaObject ?O; # or javaClass javaMethodName "methodName"; arguments ( ?X ?Y ); javaResult ?R.
This is much more verbose than the simpler method call already existing:
?O javam:methodName ( ?X ?Y ) .
but this mecanism does not offer any possibility to get hold of the return value.
As with with the simpler method call already existing, it would be called ad soon as javaObject and all arguments are bound. And then javaResult will be bound to ?R. Internally it would create a DeferredMethodCall object in the Drools KB.
sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python2.5 cd /tmp/ virtualenv --python=python2.5 test source test/bin/activate pip install bottle==0.8
Is there a graphical tool that can "simplify" a hand made drawing. It would try to retrieve a a simple shape out of the lines, like elipse, polygons, or Bézier curves.
---------------------------------
darcs get --lazy --set-scripts-executable http://www.grammaticalframework.org/ gf sudo apt-get install libghc6-haskeline-dev cd ~/src/GF/ cabal install cabal copy /home/jmv/src/GF/./dist/setup/setup: error while loading shared libraries: libffi.so.5: cannot open shared object file: No such file or directory
So I finally used the provided binary : http://www.grammaticalframework.org/download/index.html
cabal install fst parallel cabal configure
cf file:///home/jmv/src/GF/doc/gf-developers.html#toc2
This works fine :
% ~/jmv_sur_debian/Téléchargements/squall2sparql INSERT DATA { :John :loves :Mary . }
COMMIT
FEATURE: in GUI, when an N3Source is saved, if all properties and classes are not declared,
add to project a skeleton declaration
TODO
Tests in error:
testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-7212325558389938827.n3 ; http://live.dbpedia.org/sparql
testTooltip(eulergui.gui.TestEulerGUITooltip): Frame Title Component Chooser "jEdit.*tooltip.n3.*"
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended) owns: DefaultAgenda (id=139) N3SourceCheck.check(N3Source, Project) line: 55 N3SourceCheck.check(N3Source) line: 17 Rule_application_rules_n3_3_a8ca66ef930740a7af4d80afe5797884.defaultConsequence(KnowledgeHelper, N3Source, FactHandle) line: 9 Rule_application_rules_n3_3_a8ca66ef930740a7af4d80afe5797884DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available Rule_application_rules_n3_3_a8ca66ef930740a7af4d80afe5797884DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available DefaultAgenda.fireActivation(Activation) line: 1277 DefaultAgenda.fireNextItem(AgendaFilter) line: 1212 DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674 TripleStoreDrools.fireAllRules() line: 372 ApplicationKB.fireAllRules() line: 227 ApplicationKBHelper.fireEvent(String, String) line: 24 URIModificationChecker$1.doInBackground() line: 106 URIModificationChecker$1(N3SourceWorker).doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 URIModificationChecker$1(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
TODO : when started with eg f.n3 , the Java objects for N3Source are not put in the KB .
{ eg:n3SourceChanged eg:uri ?N3Source . } => { java:eulergui-gui-features-N3SourceWorker javam:check (?N3Source). }.
COMMIT
- Events in KB: call in URIModificationChecker:
ApplicationKBHelper.fireEvent( "n3SourceChanged", n3Source.getURI() );
- new class features/N3SourceCheck.java + test, ready to be added in the GUI
Using rule base deductions/n3_nojs/rules-documentor.n3p , check that all properties and classes are declared.
NOTE: no need to add automatically refered ontologies, to check current project with refered ontologies added, user will do this
add rules-documentor.n3p , to be used in new EulergUI feature
Exception in thread "Thread-63" java.lang.RuntimeException: java.io.IOException: Cannot run program "/tmp/eye/linux/bin/yap": error=24, Trop de fichiers ouverts at euler.Process.run(Process.java:113) at java.lang.Thread.run(Thread.java:722) Caused by: java.io.IOException: Cannot run program "/tmp/eye/linux/bin/yap": error=24, Trop de fichiers ouverts at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) at java.lang.Runtime.exec(Runtime.java:615) at java.lang.Runtime.exec(Runtime.java:483) at euler.Process.run(Process.java:68) ... 1 more Caused by: java.io.IOException: error=24, Trop de fichiers ouverts at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:135) at java.lang.ProcessImpl.start(ProcessImpl.java:130) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1021) ... 4 more
I wonder if it would make sense to make a GF grammar for GF itself, or a convenient subset .
eg:n3SourceChanged eg:uri <myURI> . _:d eg:hasOpenedProject <myURI> .
eg examples/book.n3 ~/src/deductions/n3_new/model-rules-coherence.n3
cd ~/apps/jeebox/ ; wine ./Jeebox.exe
REGRESSION:
Revision 3105 - Directory Listing
Modified Sun Jun 10 15:12:10 2012 UTC (2 months, 2 weeks ago) by jmvanel
add AddURIToProjectAction in jEdit editor
* new entry "eulergui-add-uri-to-project" in right click menu in jEdit editor
* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props
TODO : documentation of AddURIToProjectAction, LaunchBrowserURIAction
TESTED with abbrevated FOAF URI with http://jmvanel.free.fr/jmv.rdf
-----------------------
SQUALL : What is a man ?
---------------
Shakespeare language ?
http://angelcog.org/stuff/stage_1/language
http://en.wikipedia.org/wiki/Homoiconicity
------------------------------
Search this in Watson :
language lexicon noun verb adjective
TODO
OWN.owl : does not load
~/src/tmp_demo/table_gui+onto.n3p
PROBLEM when managing N3 Cache for N3 source interesting-contact2.owl URI is not absolute Cause:
[ERROR] - 2012-08-30 23:49:16,544 [AWT-EventQueue-0] eulergui.gui.main.ResultManagement (ResultManagement.java:displayStandardError:194) DeferredMethodCall.assign() : argument not ready: _:type2 DeferredMethodCall.assign() : argument not ready: _:type1 DeferredMethodCall.assign() : argument not ready: _:type2 DeferredMethodCall.assign() : argument not ready: _:type1 Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0 at java.util.Vector.elementAt(Vector.java:470) at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:294) at javax.swing.plaf.basic.BasicTableHeaderUI.getHeaderHeight(BasicTableHeaderUI.java:733) at javax.swing.plaf.basic.BasicTableHeaderUI.createHeaderSize(BasicTableHeaderUI.java:765) at javax.swing.plaf.basic.BasicTableHeaderUI.getPreferredSize(BasicTableHeaderUI.java:796) at javax.swing.JComponent.getPreferredSize(JComponent.java:1660) at javax.swing.ViewportLayout.preferredLayoutSize(ViewportLayout.java:95) at java.awt.Container.preferredSize(Container.java:1788) at java.awt.Container.getPreferredSize(Container.java:1773) at javax.swing.JComponent.getPreferredSize(JComponent.java:1662) at javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:723) at java.awt.Container.layout(Container.java:1503) at java.awt.Container.doLayout(Container.java:1492) at java.awt.Container.validateTree(Container.java:1688) at java.awt.Container.validate(Container.java:1623) at javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:653) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1620) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:705) at java.awt.EventQueue.access$000(EventQueue.java:101) at java.awt.EventQueue$3.run(EventQueue.java:666) at java.awt.EventQueue$3.run(EventQueue.java:664) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:675) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105) at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Duplicate URI Prefixes: : ==> http://eulergui.sf.net/owl-rule# , from ../../../../../../tmp/interesting-contact2.owl.as.rules.n3 , previous Value: http://eulergui.sf.net/contact.owl#
profit : Elbach : Profit : in prologfeatures.pl
TODO : the table cells are not filled :
eg examples/table_app.n3 examples/table_data_no_rule.n3 &
( works on revision 3219, but not on latest 3226 ) TODO add test for this
A new verson of ParadisEO, a software framework for metaheuristics, is now available: ParadisEO 2.0, see http://paradiseo.gforge.inria.fr
I installed package ocaml-findlib on Ubuntu .
From the top of my head ...
http://attempto.ifi.uzh.ch/site/cnl2012/program.html
09:00-09:45Sébastien Ferré
SQUALL: a Controlled Natural Language for Querying and Updating RDF Graphs
09:45-10:30 Richard Power
OWL Simplified English: a Finite-State Language for Ontology Editing
Research Talks 3
(Session Chair: Kaarel Kaljurand)
11:00-11:45 William Murray and Tomas Singliar
Spatiotemporal Extensions to a Controlled Natural Language
11:45-12:30 Rolf Schwitter
Answer Set Programming via Controlled Natural Language Processing
Invited Talk 2
(Session Chair: Norbert E. Fuchs)
14:00-15:00Sabine Lehmann, Ben Gottesman, Robert Grabowski, Mayo Kudo, Siu Kei Pepe Lo, Melanie Siegel and Frederik Fouvry (Acrolinx)
Applying CNL Authoring Support to Improve Machine Translation of Forum Data
Research Talks 4
(Session Chair: Stephen Pulman)
15:30-16:15 Stefan Höfler
Legislative Drafting Guidelines: How Different Are They From Controlled Language Rules for Technical Writing?
16:15-17:00 CANCELED
Palmira Marrafa, Raquel Amaro, Nuno Freire and Sara Mendes
Portuguese Controlled Language: Coping with Ambiguity
--------------------------------
RCC-8 ?
wikipedia / Answer_set_programming
Clingo : ASP tool
stable model == no negation
question to Jos : relation of Euler engine with ASP ?
question to Rolf Schwitter : comparison between Peng (light) and ACE / APE
download : http://mcs.open.ac.uk/rp3242/editor/
http://www.irisa.fr/LIS/ferre/
SQUALL (Semantic Query and Update High-Level Language - l'Irisa
beta - reductions ?
anaphors : only variables
option == left join
Montague grammar ?
query based faceted search : Sewelis ?
syntax based auto-completion Ginseng ?
remarque : resource
15:30-16:15Kaarel Kaljurand
General Architecture of a Controlled Natural Language Based Multilingual Semantic Wiki
16:15-17:00Normunds Grūzītis, Pēteris Paikens and Guntis Bārzdiņš
FrameNet Resource Grammar Library for GF
17:00-17:45Brian Davis, Ramona Enache, Jeroen Van Grondelle and Laurette Pretorius
Multilingual Verbalisation of Modular Ontologies using GF and Lemon
<CrazyThinker> What the heck is CNL, jmvanel
* _4rtE est parti (Ping timeout: 244 seconds)
<jmvanel> very fine , I learn lots of things
<jmvanel> like framenet
<jmvanel> ACE-in-GF
<jmvanel> lemon
<CrazyThinker> What is it?
<jmvanel> http://en.wikipedia.org/wiki/FrameNet
<jmvanel> https://github.com/Attempto/ACE-in-GF#readme
<jmvanel> Lemon is from www.monnet-project.eu
<jmvanel> also tomorrow : http://www.irisa.fr/LIS/softwares/squall
string_as_prolog( "table_d'hote" )
cd ~/src/deductions/src/python/ python make_ace_lexicon.py ... do_verb_synsets do_adjective_synsets do_adverb_synsets massNouncount: 5218 countableNouncount: 56985 adjectiveCount: 16617 Word count already in CLex: 21451
Erreur pendant Engine N3 run java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/projetTest/table_ui_setting.n3, /tmp/columnsTableOntology.owl.as.rules.n3, --query] Cause: java.lang.RuntimeException: ERROR in reasoning with External Prolog: [--nope, --pass, /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/projetTest/table_ui_setting.n3, /tmp/columnsTableOntology.owl.as.rules.n3, --query]
Announce : Leveraging ATTEMPTO Controled English for flexible software development with EulerGUI
see Example with ACE => OWL => N3 rules translation
Framework based on these extreme principles:
What are the options for semantic based software developement ?
EulerGUI is an open source turntable that imports many data formats, models and rules, and incorporates several inference engines, based on data formats of the Semantic Web. It is both a development environment, and a Java API to build applications around an inference engine. It leverages Drools rule engine for an easy integration with Java platform, while allowing for a strict separation of business logic and infrastructure code.
What is an forward chaining rule engine ?
explain RETE example via surface-price,
Why it is useless to generate classes?
Generate skeleton ATTEMPTO lexicon from an ontology
eg $HOME/ontologies/foaf.rdf $HOME/src/deductions/ape/owl2attempto_lexicon.n3
Depending on the visitors' interests, the demonstrations will include at the minimum :
<jmvanel> glad to know about http://www.taxonconcept.org/sparql-endpoint/
{ ?X ?P ?O . _d e:findall ( ?X { ?X a log:Chaff } () ) . } => { ?X ?P ?O } .
take seriously the semantic web ideas, W3C recommandations, which in particular means using RDF Schema or OWL to define the domain data model , and SPARQL engines to host business data.
What are the options:
TODO : http://deductions.sourceforge.net/ontology/knowledge_base.owl
http://jena.apache.org/documentation/io/riot.html#status
http://hydrogen.informatik.tu-cottbus.de/wiki/index.php/Advanced_Jena_Rules
http://jena.apache.org/documentation/inference/index.html#rules
http://nlp.stanford.edu/software/lex-parser.shtml
http://www.larkc.eu/resources/
http://www.springer.com/computer/ai/book/978-1-4020-5044-2
https://a316de03-a-62cb3a1a-s-sites.googlegroups.com/site/narswang/publications/wang.thesis.pdf
COMMIT in deductions: add ape/owl2attempto_lexicon.n3 , simple rules to generate an Attempto lexicon in Prolog, to be edited by hand afterwards;
TESTED with FOAF ( http://xmlns.com/foaf/spec/20100101.rdf
------------------
Le sujet de ##AGI est : Artificial General Intelligence (Strong AI) http://agi-wiki.org | Stay on topic. Discuss non-general (weak) AI in #ai. | Links: http://bit.ly/AGI-book-pdf , http://bit.ly/AGI-group , http://agi-wiki.org/ChanLogs | Projects: #opencog #opencyc #genifer #nars
------------
Ruset: do you have time to read something?
https://sites.google.com/site/narswang/publications/wang.thesis.pdf
is important,
| Exploring the Essence of Intelligence
Pei Wang's home page http://www.cis.temple.edu/~wangp/
https://www.google.fr/search?q=nars+semantic+web
----------------
COMMIT Révision 3219
In ProjectGUI: New feature: persistance in TDB of last opened project
during startup, when there is no command line argument, re-open the last open project
implemented in FileHistory
src/main/java/eulergui/gui/features/FileHistory.java
Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 36 in FileHistory)) FileHistory.persistProjectLoaded(Project) line: 36 PersistanceListener.projectLoaded(Project) line: 26 ProjectChangeSupport.fireProjectLoaded(Project) line: 116 Project.prepare() line: 1129 ProjectFactory.prepareProject(Project, boolean) line: 333 ProjectFactory.prepareProject(Project, URL, boolean) line: 326 ProjectGUI$3.run() line: 353 Thread.run() line: 722
COMMIT Révision 3217 .
- FIX : class Persistance was in a wrong place
- FIX upgrade of Jena ARQ to 2.9.3, and jena-tdb to 0.9.3
( was necessary to remove Jena dependency in pellet-2.2.2.pom on EulerGUI Maven depot )
mvn versions:display-dependency-updates
...
[INFO] The following dependencies in Dependencies have newer versions:
[INFO] com.thoughtworks.xstream:xstream ........................ 1.2 -> 1.4.3
[INFO] commons-cli:commons-cli ....................... 1.2 -> 20040117.000000
[INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist[INFO] jline:jline ............................................... 1.0 -> 2.8
[INFO] net.sourceforge.owlapi:owlapi-api ......................... 3.3 -> 3.4
[INFO] net.sourceforge.owlapi:owlapi-apibinding .................. 3.3 -> 3.4
[INFO] org.apache.jena:jena-tdb .............................. 0.9.2 -> 0.9.3
http://www.larkc.eu/
<jmvanel> it's on sf.net : 8 Downloads (This Week)
<jmvanel> https://sourceforge.net/projects/larkc/
<rszeno> that was in 2011
<rszeno> is in java, :)
<jmvanel> Release-3.0 2011-11-08
<jmvanel> I heard first about larkc at Protégé conf in Amsterdam
<rszeno> is in wrong category on sf
<rszeno> i guess, but i don't know
<jmvanel> That 's one of those public found projects whose persistence is doubtful ;
<jmvanel> is over now :
<jmvanel> Start: 01-April-08
<jmvanel> End: 30-Sep-11
<jmvanel> Duration 42 months
<jmvanel> Budget (total): approx. €10 Mill.
<jmvanel> EC contribution (total): approx. €7 Mill.
<jmvanel> Partners (total): 13 (from 11 countries)
http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html
The NAME Property could be used to hold an URI
Thinking about using TDB for EulerGUI persistance of application state.
TODO: cell renderers
Tests run: 194, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16:45.942s [INFO] Finished at: Mon Aug 20 16:18:00 CEST 2012
COMMIT
tests PASS
http://www.kegel.com/c10k.html
:cwm a eg:Inference_engine; rdfs:label "CWM"; eg:absolute_path "/urs/bin/cwm" .
TODO
Opening this 100% project in N3 http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/person-app.n3p.n3 : running Drools did not give generated forms. But running it from a local file works !!!!!
COMMIT
Test opening a project in N3 from the file menu
TODO
Test opening a project in N3 from an URL from the file menu
Tests run: 194, Failures: 0, Errors: 0, Skipped: 0
[INFO] BUILD SUCCESS [INFO] Total time: 18:02.141s
Works from command line, but shows 2 windows :
deductions/n3_nojs/person-app.n3p.n3
From the file menu, shows 1 window, but with all files from subproject :( , and running Drools did not give generated forms.
COMMIT
- WIP : subprojects, postprocessing, leveraging the internal KB with projects in N3
todo : MORE TESTS
Results : Tests in error: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class javax.swing.JButton Tests run: 193, Failures: 0, Errors: 1, Skipped: 0
COMMIT
- FIX : remove toLowerCase() on datatype ^^ constructs
- WIP : load correctly subprojects with projects in N3
COMMIT
- after last commit , there was a NPE because the Triple created not by the parser do not have a field with language and datatype
TODO: set the language and datatype by API
Failed tests: testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..)
Tests in error: testTooltip(eulergui.gui.TestEulerGUITooltip)
Tests run: 192, Failures: 1, Errors: 1, Skipped: 0
COMMIT
- implemented missing accessors in ITriple, for N3 type and language
- new utility method TripleHelpers.getJavaTypedValue(ITriple)
- FIX : DatatypeHelper.findClassForProperty() : when classForPropertyMap gets nothing, return String.class by default .
<jmvanel> So I know what 's wrong with :
<jmvanel> x1 date "2012.08.11"^^xsd:date .
<jmvanel> xsd:date is interpreted as a language :(
<rszeno> @ vs. ^^ ?
<jmvanel> yes, that's probably a problem in the grammar
<jmvanel> and "2012.08.11"^^<http://www.w3.org/2001/XMLSchema#date>
<jmvanel> does not work any better :(
<jmvanel> so I'm bloked for testing the enhancements in the table :( .
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 145 in AbstractParseNode)) owns: Object (id=11525) owns: N3Source (id=11526) ConcatParseNode(AbstractParseNode).setData(IParseNodeData) line: 145 MatchString.reduceAction(IParseSessionForMatchMgr, IParseNode, IParseNode[], int[]) line: 105 MatchMgrInvoker.reduceAction(int, IMatchMgr, IParseNode, IParseNode[], int[], IParseSessionForMatchMgr) line: 261 MatchMgrInvoker.computeData(IParseSessionForMatchMgr, IParseNode) line: 560 MatchMgrInvoker.endVisitImpl(IParseNode) line: 527 MatchMgrInvoker(AbstractParseNodeVisitor).endVisit(IParseNode) line: 57 ConcatParseNode(AbstractNonTerminalParseNode).accept(IParseNodeVisitor) line: 414 AlternativeParseNode(AbstractNonTerminalParseNode).accept(IParseNodeVisitor) line: 402 MatchMgrInvoker.checkDataComputed(IParseSessionForMatchMgr, IParseNode) line: 462 MatchMgrInvoker.computeParseNodeData(IParseSessionForMatchMgr, ParseStack) line: 449 ParseStackAction.reduce(ParseStack, boolean, int, EnumSource, EnumSource, int, int, IParseNode[], int[], boolean) line: 225 Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1033 Parser.checkForMatch(ParseStackAction, ParseStack) line: 926 Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044 Parser.checkForMatch(ParseStackAction, ParseStack) line: 926 Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044 Parser.checkForMatch(ParseStackAction, ParseStack) line: 926 Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044 Parser.checkForMatch(ParseStackAction, ParseStack) line: 926 Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044 Parser.checkForMatch(ParseStackAction, ParseStack) line: 926 Parser.matchManagement(ParseStackAction, ParseStack, boolean, MatchEntrySet, List<IParseNode>) line: 1044 Parser.checkForMatch(ParseStackAction, ParseStack) line: 926 Parser.shiftByToken(ParseStackAction) line: 814 Parser.parse(ParserFileReader, boolean, boolean, boolean, ParseSession) line: 397 N3Parser.parseN3(String, InputStream) line: 178 ParserLink.doParse(File, String) line: 155 ParserLink.parse(N3Source) line: 117 N3Source.doParseN3() line: 513 N3Source.manageParseN3() line: 446 N3Source.update() line: 401 N3ConversionRefesher.updateN3(N3Source) line: 121 UpdateN3Thread.run() line: 40 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 93 Project.addN3Source(N3Source, boolean) line: 328 Project.addN3Source(N3Source) line: 308 SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 288 SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SourceFilesManagement$AddN3Action$1AddN3SourceWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
It seems that this is badly parsed by EG parser :
@keywords a. x1 date "2012.08.11"^xsd:date .
<jmvanel> ( it is interpreted as :
<jmvanel> _:date0 <http://www.w3.org/2001/XMLSchema#date> "2012.08.11".
<jmvanel> : completely wrong !!!
<rszeno> is ^^ not ^
<jmvanel> haaaaaaaaaaa
<rszeno> syntax error
<jmvanel> OK, I forgot !!!!!!!!!!!!!!!!!!
<rszeno> ^ is for path traversal
<jmvanel> so, severe bug for my memory ,
<jmvanel> and maybe minor bug for the parser
<jmvanel> implementing missing stuff in EG fw, for N3 type and language :)
<jmvanel> I begin to like this table component
<jmvanel> Now just fixing the datatype aspect, next the resources : better display , edit, hyperlink .
COMMIT Revision 3197
manage XSD types as Java wrapper classes (Boolean ...) in table view
implement getColumnClass() in N3TableModel
several fixes on the way
TESTED in N3TableModelTest
This does not work as expected in EulerGUI 1.11 , because projects are infrastructure_project by default. This is in fact fortunate, as it would spoil "exotic" N3 sources like OWL/XML . What is needed is to change the test, and add rules for "exotic" N3 sources in project-java-rules.n3 .
project = ProjectFactory.restore(uri.toString(), inactivateListeners); if( ! project.isInfrastructure_project() ) { project = ApplicationKB.instance().insertProjectInKB(project); }
This happens when .classpath has not been updated:
Exception in thread "main" java.lang.IncompatibleClassChangeError: Expected static method org.drools.base.FieldFactory.getFieldValue(Ljava/lang/Object;Lorg/drools/base/ValueType;Lorg/drools/type/DateFormats;)Lorg/drools/spi/FieldValue; at org.drools.rule.builder.PatternBuilder.getFieldValue(PatternBuilder.java:1354) at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:724) at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:689) at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:641) at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:625) at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:456) at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:317) at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:125) at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67) at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84) at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2706) at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:930) at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:839) at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:831) at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:441) at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:419) at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:409) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262) at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90) at eulergui.project.Project.doTranslateN32Drools(Project.java:970) at eulergui.project.Project.translateN32Drools(Project.java:921) at eulergui.project.Project.prepareDrools(Project.java:894) at eulergui.gui.controller.ApplicationKB.<init>(ApplicationKB.java:110) at eulergui.gui.controller.ApplicationKB.instance(ApplicationKB.java:86) at eulergui.gui.main.ProjectGUI.setProject(ProjectGUI.java:899) at eulergui.gui.main.ProjectGUI.initFromProject(ProjectGUI.java:148) at eulergui.gui.main.ProjectGUI.<init>(ProjectGUI.java:139) at eulergui.gui.main.ProjectGUI.newWindow(ProjectGUI.java:270) at eulergui.gui.main.ProjectGUI.main(ProjectGUI.java:228)
http://www.irit.fr/~Patrick.Saint-Dizier/
We show open sources tools based on these extreme principles: 1) no business logic outside of ontologies and rules ; 2) no business data outside of Semantic Web documents and databases. This approach simplifies architecture compared to the common practices of generating source code of classes from ontologies, and using ORM (Object Relational Mapping). It can be called rule-based and semantic web based software development. And not having the business logic hard-coded simplifies maintenance and accelerates software updates.
Using forward chaining inference engine and various translators, it's as if the ACE sentences were interpreted in real time to bring consequences up-to-date.
EulerGUI is an open source turntable that imports many data formats, models and rules, and incorporates several inference engines, based on data formats of the Semantic Web. It is both a development environment, and a Java API to build applications around an inference engine. It leverages Drools rule engine for an easy integration with Java platform, while allowing for a strict separation of business logic and infrastructure code.
Depending on the visitors' interests, the demonstrations will include at the minimum :
-------
Rule-based and semantic web based software development
Generic Semantic Web aware widgets.
What widgets can be used?
table widget backed by current KB: N3TableModel and N3TableView;
forms generated from a resource or a class; see just below
in project: combobox for choosing or creating URI's and triples : TripleComboBoxes.java
also in project: various tree views
---------------------------------------------------
https://sourceforge.net/projects/csbi/?source=recommended ???
I don't understand how non N3 sources like OWL/XML are processed in EulerGUI 1.11, but it works !!!
Ideas for N3TableView: if the column is numeric, add a tool to show statistics ( sum, average, deviation ) ; sort
<rszeno> { :x w:child :y, :z . ((:y) (:z)) set:union :u . } => { :x w:childs :u . } .
<rszeno> work with cwm
<rszeno> data are triples :a w:child :b .
<jmvanel> and all symbols are farAll ?
<rszeno> append allow to add same objects multiple times
<jmvanel> forAll
<rszeno> yes
<rszeno> @forAll :x, :y, :z, :u .
<rszeno> no initial list
<rszeno> or set
<jmvanel> fine , but this would not work in Euler
DISPLAY=:1 LANG=en mvn release:prepare -D=allowTimestampedSnapshots=true
[INFO] Running eulergui.project.TestProjectWithSubProjects[INFO] Tests run: 4, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 9.331 sec <<< FAILURE!
<jmvanel> BUT ...
[INFO] [ERROR] Failed to execute goal on project eulergui: Could not resolve dependencies for project eulergui:eulergui:jar:1.11: Could not find artifact org.mvel:mvel2:jar:2.1.1-SNAPSHOT in repository.jboss.org (http://repository.jboss.org/nexus/content/groups/public) -> [Help 1]
<jmvanel> Hi a Drools 5.5 beta would be convenient for me;
<jmvanel> because Maven demands a non snapshot for a release, and I'm currently depending on Drools 5.5.0-SNAPSHOT
<rszeno> triples are illegal or impossible
<rszeno> we can't have a triple life and triple wife is illegal
<jmvanel> today, release 1.11 ; the test suite is OK .
To achieve a consistent behavior between old (current) XML format and new N3 format, it's better to populate first the KB from the old format, and forget completely the objects Project and N3Source that were created when reading the old XML format (they are re-created from rules in project-java-rules.n3 ).
So, use, in case of reading the old XML format , the equivalent of recoverProjectObjectsFromKB() :
public Project insertProjectInKB(Project project2)
Tests run: 192, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 15:04.660s [INFO] Finished at: Sun Aug 12 17:18:24 CEST 2012
<jmvanel> COMMIT:
<jmvanel> - FIX predicates proj:subproject and proj:postProcessing in new N3 format for projects
<jmvanel> TESTED with http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/person-app.n3p.n3
<jmvanel> -
<jmvanel> one important thing for EulerGUI 2.0 ; cf roadmap : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L9989
What happens when not doing mvn clean
:
Failed tests: testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs) testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI) testCreateProjectInGUI(eulergui.gui.TestFacebookSearch) testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch) testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs) testXMLOutputFromN3(eulergui.gui.TestEulerGUIOutputs) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical) testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl) testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl) testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl) testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI) testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testTooltip(eulergui.gui.TestEulerGUITooltip) testSimpleProjectLocal(eulergui.gui.TestJavaEditor) testURLProjectOWL(eulergui.gui.TestJavaEditor) testSimpleURLProject(eulergui.gui.TestJavaEditor) testURLProject(eulergui.gui.TestJavaEditor) testAddNewN3Source(eulergui.gui.TestN3SourceInGUI) testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI) test_read_project_n3p_n3(eulergui.gui.TestN3FormatForProject) test_SaveExistingProjectAsN3(eulergui.gui.TestN3FormatForProject) test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject) test_SaveNewProjectAsN3(eulergui.gui.TestN3FormatForProject) Tests run: 192, Failures: 1, Errors: 35, Skipped: 0
I realize that the internal KB together with project-java-rules.n3, can play the role of the methods rethrowEvents* .
But this opens a Pandora box:
About multithreading, currently there are 3 main operations:
download, translate, parse, load facts in user KB,
compile generated Drools and load into user KB
Operation 1 is a short one, and can be done in AWT thread.
Operation 2 can last long , and is done in a dedicated thread.
After commenting out this in ProjectGUI.populateWindow() :
app.rethrowEventsExceptGUIUpdater();
The total time went low again:
Results :
Failed tests: testTooltip(eulergui.gui.TestEulerGUITooltip): "<HTML><http://exampleS#waza>:<BR></HTML>" does not match pattern: .*Comment for waza in the ex: namespace.*
Tests in error:
testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..)
testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project")
Tests run: 192, Failures: 1, Errors: 5, Skipped: 0
[INFO] Total time: 15:46.044s
[INFO] Finished at: Sat Aug 11 14:19:06 CEST 2012
But doing so, the internal KB is not populated at all; I need also to populate it. Then calling fireAllRules() will start all processing, because of the listeners on Project.
COMMIT Revision 3185
- ProjectGUI : tentatively do not add project ProjectListener N3ConversionRefesher
- project-java-rules.n3 : postProcessing : read other project by restoreAny
TODO:
Failed tests:
Failed tests: testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) testTooltip(eulergui.gui.TestEulerGUITooltip): "<HTML><http://exampleS#waza>:<BR></HTML>" does not match pattern: .*Comment for waza in the ex: namespace.* Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project") Tests run: 192, Failures: 2, Errors: 4, Skipped: 0 [ERROR] There are test failures. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 31:20.118s
Conclusions :
ProjectGUI_Updater.n3SourceUpdated(): file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/testEG/new.n3
ButtonsPanel.n3SourceEnablement(: could not be updated: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/testEG/new.n3 (ButtonsForN3Source not found)
Thread Name: SwingWorker-pool-4-thread-1
0java.lang.Thread.getStackTrace(Thread.java:1567)
1eulergui.util.StackHelper.printStackTrace(StackHelper.java:13)
2eulergui.gui.view.ButtonsPanel.n3SourceEnablement(ButtonsPanel.java:104)
3eulergui.gui.view.ButtonsPanel.enableN3Source(ButtonsPanel.java:84)
4eulergui.gui.controller.ProjectGUI_Updater.editN3ButtonEnabled(ProjectGUI_Updater.java:125)
Before commit Revision 3185
Failed tests: testimport(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) testimportN3(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait AbstractButton with text "SEARCH" loaded test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..) testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..) testSimplifiedURIInProject(eulergui.gui.TestCreateProjectInGUI): Menu pushing: (JMenuItem with text "File", JMenuItem with text "Save Project") ==> NOT REPRODUCED in eclipse !!!!!! test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) Tests run: 192, Failures: 2, Errors: 12, Skipped: 0 [INFO] Total time: 20:56.945s [INFO] Finished at: Fri Aug 10 11:15:01 CEST 2012
COMMIT
- FIX TestFacebookSearch
in project-java-rules.n3 the main query was treated like the searches
- use TemporaryFrame for notAllSavedWarning
NOTE:
When using projects in N3, the N3ConversionRefesher should be useless; but check that ApplicationKB.n3SourceChanged() is implemented .
Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 111 in N3DroolsEngineFacade)) owns: DefaultAgenda (id=232) N3DroolsEngineFacade.recordCompilationTimestamp(N3Source, boolean) line: 111 N3DroolsEngineFacade.translateQuery(N3Source) line: 214 Project.addN3Search(N3Source) line: 456 Project.setN3Query(N3Source) line: 394 ==> here facebookQ.n3 is argument NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133 DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100 DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93 DeferredMethodCall.assign(Object, List<Assignment>) line: 73 DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40 Rule_DeferredMethodCall_8fddc2ccfca54a33a5f8e70dd6f671f0.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10 Rule_DeferredMethodCall_8fddc2ccfca54a33a5f8e70dd6f671f0DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available Rule_DeferredMethodCall_8fddc2ccfca54a33a5f8e70dd6f671f0DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available DefaultAgenda.fireActivation(Activation) line: 1277 DefaultAgenda.fireNextItem(AgendaFilter) line: 1212 DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674 TripleStoreDrools.fireAllRules() line: 369 ApplicationKB.fireAllRules() line: 213 ApplicationKB.n3SourceAdded(Project, N3Source) line: 248 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 93 => facebook-rules.n3 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1415 ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 197 Project.rethrowEventsExceptListener(ProjectListener) line: 1546 ProjectGUI.rethrowEventsExceptGUIUpdater() line: 352 ProjectGUI.access$0(ProjectGUI) line: 350 ProjectGUI$3.run() line: 337 Thread.run() line: 722
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/D/6/C/D6C8D71833ABFF848C3980C7EB922DAC.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376) at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259) at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77) at eulergui.project.Project.translateN32Drools(Project.java:927) at eulergui.project.Project.prepareDrools(Project.java:894) at eulergui.project.Project.doRunDrools(Project.java:849) at eulergui.project.Project.runDroolsTriples(Project.java:800) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:32) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:17) at javax.swing.SwingWorker$1.call(SwingWorker.java:296) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at javax.swing.SwingWorker.run(SwingWorker.java:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
COMMIT
Fix N3 project file : WIP
TODO
Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch)
testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch)
Tests in error:
test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded
test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded
Tests in error: test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1
M. P. Ward
Computer Science Department
Science Labs, South Rd
Durham, DH1 3LE
October 1994
http://www.cse.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf
http://www.wishlisp.com/
wget works though !!??
URICacheImpl.getURITimeStamp(): http://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/owl-SymmetricProperty.n3 : java.net.SocketTimeoutException: connect timed out
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/B/4/9/B494F5B07D54AAE03F4D1A513F2CD523.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376) at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259) at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77) at eulergui.project.Project.translateN32Drools(Project.java:927) at eulergui.project.Project.prepareDrools(Project.java:894) at eulergui.project.Project.doRunDrools(Project.java:849) at eulergui.project.Project.runDroolsTriples(Project.java:800)
[ERROR] The svn command failed. [ERROR] Command output: [ERROR] svn: PROPFIND of '/svnroot/eulergui/!svn/bln/3182': could not connect to server (https://eulergui.svn.sourceforge.net)
% svn info Révision de la dernière modification : 3181
Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..)
( on Debian )
svn-bisect reset
svn-bisect start 3175 3182
svn-bisect run 'rm -r ~/.eulergui ; DISPLAY=:1 LANG=en mvn --offline -Dtest=TestFacebookSearch test'
...
Regression found!
Last good revision: r3180
First bad revision:
------------------------------------------------------------------------
r3181 | jmvanel | 2012-08-06 14:11:44 +0200 (lun. 06 août 2012) | 5 lignes
Fix N3 project file for subprojects : WIP
* 2 errors fixed
* testing with deductions/n3_nojs/person-app.n3p.n3
* subproject appears empty :(((
Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Component enabled: class javax.swing.JToolBar$1 testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): Component enabled: class javax.swing.JToolBar$1 testCreateProjectInGUI(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1 testCreateProjectInGUI2(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1 testLocalFacebookSearch(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1 testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch): Component enabled: class javax.swing.JToolBar$1 test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1 testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1 testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1 testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Component enabled: class javax.swing.JToolBar$1 testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class javax.swing.JButton test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1 test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1 test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1 test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1 test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Component enabled: class javax.swing.JToolBar$1 testTooltip(eulergui.gui.TestEulerGUITooltip): Component enabled: class javax.swing.JButton testSimpleURLProject(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton testURLProject(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton testURLProjectOWL(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Component enabled: class javax.swing.JButton test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject) Tests run: 191, Failures: 0, Errors: 27, Skipped: 0
COMMIT
Fix N3 project file for subprojects : WIP
* now subproject looks correct in main GUI
TODO :
Results : Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) Tests in error: testXMLInputGloze(eulergui.gui.TestEulerGUIInputs): Wait for "getText() Component Chooser "Jean-Marc Vanel"(..) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Component enabled: class javax.swing.JButton Tests run: 191, Failures: 2, Errors: 4, Skipped: 0
Breakpoint at addN3Source() , since the subproject's N3 source are aded twice :
Thread [main] (Suspended (breakpoint at line 303 in Project)) owns: DefaultAgenda (id=77) Project.addN3Source(N3Source) line: 303 ProjectLegacy$1.put(String, N3Source) line: 127 ProjectLegacy$1.put(Object, Object) line: 1 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 Trampoline.invoke(Method, Object, Object[]) line: 55 GeneratedMethodAccessor11.invoke(Object, Object[]) line: not available DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 MethodUtil.invoke(Method, Object, Object[]) line: 263 Expression(Statement).invokeInternal() line: 292 Statement.access$000(Statement) line: 58 Statement$2.run() line: 185 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Expression(Statement).invoke() line: 182 Expression.getValue() line: 153 VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166 VoidElementHandler(NewElementHandler).getValueObject() line: 123 VoidElementHandler(ElementHandler).endElement() line: 169 DocumentHandler.endElement(String, String, String) line: 305 SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available SAXParserImpl.parse(InputSource, DefaultHandler) line: not available DocumentHandler.parse(InputSource) line: 356 XMLDecoder.parsingComplete() line: 192 XMLDecoder.readObject() line: 238 ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 194 ProjectFactory.restoreXMLFile(File, URL, boolean) line: 106 ProjectFactory.restoreXML(File, boolean) line: 89 ProjectFactory.restoreXMLURL(URL, boolean) line: 218 ProjectFactory.restore(String, boolean) line: 57 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 398 ProjectFactory.restoreAny(URI, boolean) line: 383ProjectFactory.restoreAny(String, boolean) line: 376 Rule_project_java_rules_n3_4_4e8e07a6e21d44e99d242664cf915414.defaultConsequence(KnowledgeHelper, Object, FactHandle, String, FactHandle) line: 12 Rule_project_java_rules_n3_4_4e8e07a6e21d44e99d242664cf915414DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available Rule_project_java_rules_n3_4_4e8e07a6e21d44e99d242664cf915414DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available DefaultAgenda.fireActivation(Activation) line: 1277 DefaultAgenda.fireNextItem(AgendaFilter) line: 1212 DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674 TripleStoreDrools.fireAllRules() line: 369 ApplicationKB.fireAllRules() line: 213 ApplicationKB.loadN3Project(URI) line: 507 ProjectFactory.restoreN3ProjectInN3(URI) line: 288 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 393 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61 ProjectGUI.main(String[]) line: 209
later we have this stack with N3 source's URI not set :
Thread [main] (Suspended (breakpoint at line 777 in Vector))
owns: Vector<E> (id=124)
owns: DefaultAgenda (id=77)
Vector<E>.add(E) line: 777
Project.addN3Source(N3Source, boolean) line: 330
Project.addN3Source(N3Source) line: 303
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method]
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43
Method.invoke(Object, Object...) line: 601
DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133
DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100
DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93
DeferredMethodCall.assign(Object, List<Assignment>) line: 73
DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40
Rule_DeferredMethodCall_7b881fe3105d47d2b466f5042842874e.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10
Rule_DeferredMethodCall_7b881fe3105d47d2b466f5042842874eDefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available
Rule_DeferredMethodCall_7b881fe3105d47d2b466f5042842874eDefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available
DefaultAgenda.fireActivation(Activation) line: 1277
DefaultAgenda.fireNextItem(AgendaFilter) line: 1212
DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710
ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674
TripleStoreDrools.fireAllRules() line: 369
ApplicationKB.fireAllRules() line: 213
ApplicationKB.loadN3Project(URI) line: 507
ProjectFactory.restoreN3ProjectInN3(URI) line: 288
ProjectFactory.restoreAnyFromURI(URI, boolean) line: 393
CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61
ProjectGUI.main(String[]) line: 209
ApplicationKB.loadN3Project() Project.saveAsN3(project);
Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 66 in TripleStoreDrools)) TripleStoreDrools.store(Triple) line: 66 ApplicationKB.add_project_owl_imports(Project, String) line: 258 ApplicationKB.n3SourceAdded(Project, N3Source) line: 231 ApplicationKB.projectLoaded(Project) line: 311 ProjectChangeSupport.fireProjectLoaded(Project) line: 116 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1407 ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 197 Project.rethrowEventsExceptListener(ProjectListener) line: 1541 ProjectGUI.rethrowEventsExceptGUIUpdater() line: 348 ProjectGUI.access$0(ProjectGUI) line: 346 ProjectGUI$3.run() line: 333 Thread.run() line: 722
Thread [main] (Suspended (breakpoint at line 31 in SubProjectsManagement)) SubProjectsManagement.addButton(Project) line: 31 SourceFilesManagement.addButtonToOpenImportedProjects() line: 136 SourceFilesManagement.addSourceActions(ProjectGUI) line: 122 ProjectGUI.addMenus() line: 505 ProjectGUI.getMenu() line: 399 ProjectGUI.layoutFrame() line: 422 ProjectGUI.initFromProject(Project) line: 149 ProjectGUI.<init>(Project) line: 138 ProjectGUI.newWindow(Project, boolean) line: 269 ProjectGUI.main(String[]) line: 227
Thread [main] (Suspended) SubProjectsManagement.addButton(Project) line: 32 ProjectGUI_Updater.subprojectAdded(Project, Project) line: 76 ProjectChangeSupport.fireAddSubproject(Project, Project) line: 124 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1437 ProjectChangeSupport.rethrowEventsForListener(Project, ProjectListener) line: 203 Project.rethrowEventsForListener(ProjectListener) line: 1546 ProjectGUI.rethrowEventsForGUIUpdater() line: 354 ProjectGUI.populateWindow(Project, boolean) line: 305 ProjectGUI.newWindow(Project, boolean) line: 286 ProjectGUI.main(String[]) line: 227
Project.addSubProject(): java.lang.NullPointerException Exception in thread "rethrowEventsExceptListener(guiUpdater)" java.lang.RuntimeException: Project.addSubProject(): at eulergui.project.SubprojectHelper.projectLoaded(SubprojectHelper.java:63) at eulergui.project.SubprojectHelper.projectLoaded(SubprojectHelper.java:25) at eulergui.gui.controller.N3ConversionRefesher.projectLoaded(N3ConversionRefesher.java:190) at eulergui.project.ProjectChangeSupport.fireProjectLoaded(ProjectChangeSupport.java:116) at eulergui.project.Project.rethrowEventsPlease(Project.java:1407) at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:197) at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1541) at eulergui.gui.main.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:348) at eulergui.gui.main.ProjectGUI.access$0(ProjectGUI.java:346) at eulergui.gui.main.ProjectGUI$3.run(ProjectGUI.java:333) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NullPointerException at java.net.URI$Parser.parse(URI.java:3021) at java.net.URI.<init>(URI.java:595) at eulergui.util.URLHelper.isRelative(URLHelper.java:44) at eulergui.project.SubprojectHelper.projectLoaded(SubprojectHelper.java:36)
After commit , and calling in a rule :
java:eulergui-project-ProjectFactory javam:restoreN3Project ( ?SUBPROJ_URI ) .
Thread [main] (Suspended (breakpoint at line 572 in N3Source)) owns: DefaultAgenda (id=92) N3Source.manageN3Cache(N3Source) line: 572 N3SourceFromXML_Gloze(N3Source).doUpdate() line: 415 N3SourceFromXML_Gloze.prepare(Project) line: 47 SourceFactory.addSource(URL, Project) line: 127 ApplicationKB.loadN3URL(String) line: 443 ApplicationKB.loadN3Project(URI) line: 488 ProjectFactory.restoreN3ProjectInN3(URI) line: 288 ProjectFactory.restoreN3Project(String) line: 278 Rule_project_java_rules_n3_4_d0cce40b7da74ca78653c6765f3c6993.defaultConsequence(KnowledgeHelper, Object, FactHandle, String, FactHandle) line: 30 Rule_project_java_rules_n3_4_d0cce40b7da74ca78653c6765f3c6993DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available Rule_project_java_rules_n3_4_d0cce40b7da74ca78653c6765f3c6993DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available DefaultAgenda.fireActivation(Activation) line: 1277 DefaultAgenda.fireNextItem(AgendaFilter) line: 1212 DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1446 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674 TripleStoreDrools.fireAllRules() line: 369 ApplicationKB.fireAllRules() line: 212 ApplicationKB.loadN3Project(URI) line: 499 ProjectFactory.restoreN3ProjectInN3(URI) line: 288 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 385 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61 ProjectGUI.main(String[]) line: 209
Denise Lasalle explique l'analogie entre une femme et un timbre : http://www.youtube.com/watch?v=1LLWVqUZvT0&feature=related
COMMIT
- when starting a project from command line, the GUI is shown earlier
moving calls in ProjectGUI.populateWindow()
should have been done long ago !
test suite PASSES in 15:35
------------
http://sciencesoft.at/
Do we need ProjectLegacy.injectSubproject() ?
Thread [main] (Suspended (breakpoint at line 232 in Project)) Project.addSubProject(Project) line: 232 ProjectLegacy.injectSubproject(String) line: 191 ProjectLegacy.setSubProjects(HashSet<String>) line: 196 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 Trampoline.invoke(Method, Object, Object[]) line: 55 GeneratedMethodAccessor2.invoke(Object, Object[]) line: not available DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 MethodUtil.invoke(Method, Object, Object[]) line: 263 Expression(Statement).invokeInternal() line: 292 Statement.access$000(Statement) line: 58 Statement$2.run() line: 185 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Expression(Statement).invoke() line: 182 Expression.getValue() line: 153 VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166 VoidElementHandler(NewElementHandler).getValueObject() line: 123 VoidElementHandler(ElementHandler).endElement() line: 169 DocumentHandler.endElement(String, String, String) line: 305 SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available SAXParserImpl.parse(InputSource, DefaultHandler) line: not available DocumentHandler.parse(InputSource) line: 356 XMLDecoder.parsingComplete() line: 192 XMLDecoder.readObject() line: 238 ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191 ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103 ProjectFactory.restoreXMLURL(URL, boolean) line: 229 ProjectFactory.restore(String, boolean) line: 54 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61 ProjectGUI.main(String[]) line: 209
This works in 5.5.0-20120730.184411-293 , and fails in next snapshot ( 5.5.0-20120801.182511-297 ) :
when eval( "foo" != "bar" )
http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/foaf_import.n3p
or
/home/jmv/src/deductions/n3_nojs/foaf_import2.n3p
java.lang.NullPointerException at java.io.FileInputStream.<init>(FileInputStream.java:134) at eulergui.tools.SWRLTranslator.runTranslatorProject(SWRLTranslator.java:107) at eulergui.tools.SWRLTranslator.n3SourceAdded(SWRLTranslator.java:53) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:86) at eulergui.project.Project.rethrowEventsPlease(Project.java:1411) at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:190) at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1542) at eulergui.gui.main.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:353) at eulergui.gui.main.ProjectGUI.access$0(ProjectGUI.java:351) at eulergui.gui.main.ProjectGUI$3.run(ProjectGUI.java:342) at java.lang.Thread.run(Thread.java:722)
Thread [main] (Suspended) owns: BufferedInputStream (id=52) owns: HttpURLConnection (id=53) owns: N3SourceFromRDF (id=54) SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int) line: not available [native method] SocketInputStream.read(byte[], int, int, int) line: 150 SocketInputStream.read(byte[], int, int) line: 121 BufferedInputStream.fill() line: 235 BufferedInputStream.read1(byte[], int, int) line: 275 BufferedInputStream.read(byte[], int, int) line: 334 HttpClient.parseHTTPHeader(MessageHeader, ProgressSource, HttpURLConnection) line: 641 HttpClient.parseHTTP(MessageHeader, ProgressSource, HttpURLConnection) line: 589 HttpURLConnection.getInputStream() line: 1319 HttpURLConnection(URLConnection).getContent() line: 748 RDFToN3Converter.getN3FromRDFSynchronously(String, File) line: 52 RDFToN3Converter.downloadRDFAndMakeN3(String, File) line: 32 N3SourceFromRDF.convertToN3() line: 79 N3Source.manageN3Cache(N3Source) line: 609 N3SourceFromRDF(N3Source).doUpdate() line: 415 N3SourceFromRDF.prepare(Project) line: 72 N3SourceFromRDF(N3Source).placeInProject(Project) line: 341 Project.addN3Source(N3Source, boolean) line: 310 Project.addN3Source(N3Source) line: 304 ProjectLegacy$1.put(String, N3Source) line: 127 ProjectLegacy$1.put(Object, Object) line: 1 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 Trampoline.invoke(Method, Object, Object[]) line: 55 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 MethodUtil.invoke(Method, Object, Object[]) line: 263 Expression(Statement).invokeInternal() line: 292 Statement.access$000(Statement) line: 58 Statement$2.run() line: 185 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Expression(Statement).invoke() line: 182 Expression.getValue() line: 153 VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166 VoidElementHandler(NewElementHandler).getValueObject() line: 123 VoidElementHandler(ElementHandler).endElement() line: 169 DocumentHandler.endElement(String, String, String) line: 305 SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available SAXParserImpl.parse(InputSource, DefaultHandler) line: not available DocumentHandler.parse(InputSource) line: 356 XMLDecoder.parsingComplete() line: 192 XMLDecoder.readObject() line: 238 ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191 ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103 ProjectFactory.restoreXML(File, boolean) line: 86 ProjectFactory.restoreXMLURL(URL, boolean) line: 215 ProjectFactory.restore(String, boolean) line: 64 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61 ProjectGUI.main(String[]) line: 209
<jmvanel> this URL is dead currently : http://xmlns.com/foaf/spec/index.rdf
<jmvanel> and it spoils the EG test suite
<jmvanel> but that's a good test
RDFToN3Converter.getN3FromRDFSynchronously(): Error when downloading RDF from the URI: http://xmlns.com/foaf/spec/index.rdf : java.net.SocketTimeoutException: connect timed out N3Source.manageN3Cache(): http://xmlns.com/foaf/spec/index.rdf : java.lang.RuntimeException: Error when downloading RDF from the URI: http://xmlns.com/foaf/spec/index.rdf : java.net.SocketTimeoutException: connect timed out [ERROR] - 2012-08-04 17:39:07,513 [main] eulergui.gui.TemporaryFrame (TemporaryFrame.java:<init>:48) TemporaryFrame.TemporaryFrame(): PROBLEM when managing N3 Cache for N3 source http://xmlns.com/foaf/spec/index.rdf Error when downloading RDF from the URI: http://xmlns.com/foaf/spec/index.rdf : java.net.SocketTimeoutException: connect timed out Cause: java.net.SocketTimeoutException: connect timed out , caused by connect timed out WARNING
quénne ?
COMMIT in deductions.sf.net
r459 | jmvanel | 2012-08-01 11:10:29 +0200 (mer. 01 août 2012) | 3 lignes
FIX error in fn: prefix ==> now in generated forms (swing-rules3.n3p)
the GUI labels are correct from the URI when no rdfs:label is specified
Failed tests: testSimpleProjectLocal(eulergui.gui.TestJavaMappingInGUI): jFrame width == 700 Tests run: 189, Failures: 1, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16:56.271s
URICacheImpl.getURITimeStamp(): http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/app_gui-rules2.n3 : java.net.SocketException: Trop de fichiers ouverts
URICacheImpl.getURITimeStamp(): http://deductions.svn.sourceforge.net/svnroot/deductions/n3_nojs/app_gui-rules2.n3 : java.net.UnknownHostException: deductions.svn.sourceforge.net
SWRLListener is added twice !!!!!!!!
eulergui.gui.main.ProjectGUI at localhost:49775 Thread [main] (Suspended) owns: ProjectChangeSupport (id=116) ProjectChangeSupport.addProjectListener(ProjectListener) line: 45 Project.addProjectListener(ProjectListener) line: 1334 Project.prepare() line: 1219 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 ProjectGUI.populateWindow(Project, boolean) line: 305 ProjectGUI.newWindow(Project, boolean) line: 286 ProjectGUI.main(String[]) line: 227 Thread [AWT-Shutdown] (Running) Thread [AWT-EventQueue-0] (Running)
this lasts long :
projectChangeSupport.fireProjectLoaded(this);
When there has been a network problem, the cache is bad, and even if the download occurs in another session, the rules do not fire correctly .
but if the cable is unplugged *after* all downloads, in another session the project will run fine :)
--------------------
The translator is null !!!!!!!!
Thread [main] (Suspended) Project.setTranslator(N3DroolsEngineFacade) line: 1081 Project.absorbSubproject(Project) line: 263 Project.addSubProject(Project) line: 236 ProjectLegacy.injectSubproject(String) line: 191 ProjectLegacy.setSubProjects(HashSet<String>) line: 196 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 Trampoline.invoke(Method, Object, Object[]) line: 55 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 MethodUtil.invoke(Method, Object, Object[]) line: 263 Expression(Statement).invokeInternal() line: 292 Statement.access$000(Statement) line: 58 Statement$2.run() line: 185 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Expression(Statement).invoke() line: 182 Expression.getValue() line: 153 VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166 VoidElementHandler(NewElementHandler).getValueObject() line: 123 VoidElementHandler(ElementHandler).endElement() line: 169 DocumentHandler.endElement(String, String, String) line: 305 SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available SAXParserImpl.parse(InputSource, DefaultHandler) line: not available DocumentHandler.parse(InputSource) line: 356 XMLDecoder.parsingComplete() line: 192 XMLDecoder.readObject() line: 238 ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191 ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103 ProjectFactory.restoreXML(File, boolean) line: 86 ProjectFactory.restoreXMLURL(URL, boolean) line: 215 ProjectFactory.restore(String, boolean) line: 64 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61 ProjectGUI.main(String[]) line: 209
Thread [main] (Suspended) ProjectFactory.restoreXMLURL(URL, boolean) line: 229 ProjectFactory.restore(String, boolean) line: 54 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374 ProjectFactory.restoreAny(URI, boolean) line: 359 ProjectLegacy.injectSubproject(String) line: 182 ProjectLegacy.setSubProjects(HashSet<String>) line: 196 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 Trampoline.invoke(Method, Object, Object[]) line: 55 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 MethodUtil.invoke(Method, Object, Object[]) line: 263 Expression(Statement).invokeInternal() line: 292 Statement.access$000(Statement) line: 58 Statement$2.run() line: 185 AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method] Expression(Statement).invoke() line: 182 Expression.getValue() line: 153 VoidElementHandler(ObjectElementHandler).getValueObject(Class<?>, Object[]) line: 166 VoidElementHandler(NewElementHandler).getValueObject() line: 123 VoidElementHandler(ElementHandler).endElement() line: 169 DocumentHandler.endElement(String, String, String) line: 305 SAXParserImpl$JAXPSAXParser(AbstractSAXParser).endElement(QName, Augmentations) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanEndElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(boolean) line: not available XIncludeAwareParserConfiguration(XML11Configuration).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(XMLParser).parse(XMLInputSource) line: not available SAXParserImpl$JAXPSAXParser(AbstractSAXParser).parse(InputSource) line: not available SAXParserImpl$JAXPSAXParser.parse(InputSource) line: not available SAXParserImpl.parse(InputSource, DefaultHandler) line: not available DocumentHandler.parse(InputSource) line: 356 XMLDecoder.parsingComplete() line: 192 XMLDecoder.readObject() line: 238 ProjectFactory.normalizeAndReadXMLEncoderStream(File, URL) line: 191 ProjectFactory.restoreXMLFile(File, URL, boolean) line: 103 ProjectFactory.restoreXML(File, boolean) line: 86 ProjectFactory.restoreXMLURL(URL, boolean) line: 215 ProjectFactory.restore(String, boolean) line: 64 ProjectFactory.restoreAnyFromURI(URI, boolean) line: 374 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 61 ProjectGUI.main(String[]) line: 209
-----------------------------------
http://dev.w3.org/cvsweb/
https://hudson.jboss.org/hudson/job/drools/
<rszeno> http://www.cse.dmu.ac.uk/~mward/
<rszeno> http://www.cse.dmu.ac.uk/~mward/martin/software/index.html see first link fermaT
<rszeno> to jump to this page, :) http://www.cse.dmu.ac.uk/~mward/fermat.html
<rszeno> you didn't try it, isn't it? :)
<jmvanel> no
<rszeno> https://sourceforge.net/projects/eulergui/files/eulergui/1.11/ is from 2012/04/
<rszeno> and 2012/07/11 newest
<rszeno> http://www.cse.dmu.ac.uk/~mward/martin/papers/middle-out-t.pdf
<rszeno> paper is from '94
<rszeno> he advocate for dsl and design from middle-out
<rszeno> and is not the only one
Permettrait elle de décrire des sous-menus ?
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix gui: <http://eulergui.sf.net/ontolgies/gui.n3#> . :menu a gui:Menu ; rdfs:label "Fichier" ; gui:commands [ rdfs:label "Nouveau"@fr ; gui:action "create" ], [ rdfs:label "Ouvrir"@fr ; gui:action "open" ], [ rdfs:label "Quitter"@fr ; gui:action "exit" ] ; gui:subMenu [ rdfs:label "URL" ; gui:commands [ rdfs:label "Télécharger"@fr, "download"@en ; gui:action "download" ] ] .
COMMIT
FIX Regression : button for secondary form in generated form did not work
cause : GUIKBAdaptater was not coherent with the WorkingMemory
test added in test_person_import3
java.lang.NoSuchMethodError: org.drools.rule.constraint.MvelConstraint.<init>(Ljava/lang/String;Ljava/lang/String;Lorg/drools/base/mvel/MVELCompilationUnit;ZLorg/drools/spi/FieldValue;Lorg/drools/spi/InternalReadAccessor;)V at org.drools.rule.builder.MVELConstraintBuilder.buildLiteralConstraint(MVELConstraintBuilder.java:143) at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:769) at org.drools.rule.builder.PatternBuilder.addConstraintToPattern(PatternBuilder.java:738) at org.drools.rule.builder.PatternBuilder.buildRelationalExpression(PatternBuilder.java:720) at org.drools.rule.builder.PatternBuilder.buildExpression(PatternBuilder.java:672) at org.drools.rule.builder.PatternBuilder.buildCcdDescr(PatternBuilder.java:656) at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:627) at org.drools.rule.builder.PatternBuilder.processConstraintsAndBinds(PatternBuilder.java:480) at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:302) at org.drools.rule.builder.PatternBuilder.build(PatternBuilder.java:123) at org.drools.rule.builder.GroupElementBuilder.build(GroupElementBuilder.java:67) at org.drools.rule.builder.RuleBuilder.build(RuleBuilder.java:84) at org.drools.compiler.PackageBuilder.addRule(PackageBuilder.java:2731) at org.drools.compiler.PackageBuilder.compileRules(PackageBuilder.java:931) at org.drools.compiler.PackageBuilder.compileAllRules(PackageBuilder.java:840) at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:832) at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:442) at org.drools.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:420) at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:409) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:320) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262) at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:90) at eulergui.project.Project.doTranslateN32Drools(Project.java:966) at eulergui.project.Project.translateN32Drools(Project.java:917) at eulergui.project.Project.prepareDrools(Project.java:890) at eulergui.project.Project.doRunDrools(Project.java:845) at eulergui.project.Project.doRunDrools(Project.java:863) at eulergui.project.Project.runDrools(Project.java:779) at eulergui.project.TestProject.testReasonDrools(TestProject.java:137) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at junit.framework.TestCase.runTest(TestCase.java:168) at junit.framework.TestCase.runBare(TestCase.java:134) at junit.framework.TestResult$1.protect(TestResult.java:110) at junit.framework.TestResult.runProtected(TestResult.java:128) at junit.framework.TestResult.run(TestResult.java:113) at junit.framework.TestCase.run(TestCase.java:124) at junit.framework.TestSuite.runTest(TestSuite.java:243) at junit.framework.TestSuite.run(TestSuite.java:238) at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
<conan> jmvanel so my guess is, it's your local build.
<jmvanel> conan, OK
<jmvanel> I'll try a
rm -r ~/.m2/repository/org/drools/*/5.5.0-SNAPSHOT/
<conan> maybe nuke mvel too
<conan> jmvanel it can happen if a downloaded jar gets corrupted
<jmvanel> yes, but in theory the sha1's should allow a check by Maven both at upload and donwload
<jmvanel> anyway, I didn't "nuke" mvel , and my application's test run fine again so far , thanks for checking on your side
<jmvanel> still, drools-compiler from git is KO : Tests run: 1662, Failures: 129, Errors: 1199, Skipped: 40
{ "menu": "Fichier", "commandes": [ { "title": "Nouveau", "action":"create" }, { "title": "Ouvrir", "action": "open" }, { "title": "Quitter", "action": "exit" } ] }
An N3 equivalent :
:menu a gui:Menu ; rdfs:label "Fichier" ; gui:commands [ rdfs:label "Nouveau"@fr ; gui:action "create" ], [ rdfs:label "Ouvrir"@fr ; gui:action "open" ], [ rdfs:label "Quitter"@fr ; gui:action "exit" ] .
Notes:
a gui:Menu ;
becomes useless
Not new :(
Now I have a test
svn-bisect reset svn-bisect start 3100 3164 svn-bisect run 'cp /home/jmv/src/eulergui/pom.xml . ; DISPLAY=:1 LANG=en mvn --offline -Dtest=CopyOfTestGenericGuiGenerationInsertLogical test' ... Regression found! Last good revision: r3135 First bad revision: ------------------------------------------------------------------------ r3136 | jmvanel | 2012-07-08 21:57:25 +0200 (dim. 08 juil. 2012) | 4 lignes - FIX TestRulesForUserEvents - N3SourcetoDrools: add initTripleStore() to lazily create TripleStore TEST SUITE passes !
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended (breakpoint at line 622 in N3SourcetoDrools)) N3SourcetoDrools.newStatefulSession(RuleBase) line: 622 N3SourcetoDrools.launchDrools() line: 597 N3DroolsEngineFacade.launchDrools() line: 64 Project.doRunDrools(boolean) line: 850 Project.runDroolsTriples(boolean) line: 796 DroolsInferenceEngine.launch() line: 31 InferenceSwingWorker.doInBackground() line: 48 InferenceSwingWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 InferenceSwingWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Thread [main] (Suspended (breakpoint at line 622 in N3SourcetoDrools)) N3SourcetoDrools.newStatefulSession(RuleBase) line: 622 N3SourcetoDrools.<init>() line: 161 N3DroolsEngineFacade.<init>() line: 43 Project.initializeDrools() line: 1032 Project.getTranslator() line: 1087 Project.prepare() line: 1223 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 ProjectGUI.populateWindow(Project, boolean) line: 304 ProjectGUI.newWindow(Project, boolean) line: 285 ProjectGUI.main(String[]) line: 227 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 ClassReference.invokeMethod(String, Object[], Class[]) line: 137 ClassReference.startApplication(String[]) line: 101 CopyOfTestGenericGuiGenerationInsertLogical(TestJemmy).launchEulerGUI(String) line: 243 CopyOfTestGenericGuiGenerationInsertLogical(TestJemmy).generateAndLaunch(String) line: 270 CopyOfTestGenericGuiGenerationInsertLogical.test_person_import3() line: 39 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 CopyOfTestGenericGuiGenerationInsertLogical(TestCase).runTest() line: 168 CopyOfTestGenericGuiGenerationInsertLogical(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 CopyOfTestGenericGuiGenerationInsertLogical(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
Diagnostic:
This method in TripleStoreDrools does not remove old Assignment :
public void assign(String name, Object object) { workingMemory.insert( new Assignment(name, object) ); workingMemory.insert( object ); }
It should, because the RuleBase has AssertBehaviour.EQUALITY , and because of these methods in Assignment :
@Override public int hashCode() { return name.hashCode(); } @Override public boolean equals(Object obj) { if (obj instanceof Assignment) { final Assignment assign = (Assignment) obj; return name.equals(assign.name); } return false; }
But I found this message in mail list :
Subject: Re: Updating an existing fact w/o using fact
handle - msg#00308
List: java.drools.user
2008/5/30 Fenderbosch, Eric <Eric.Fenderbosch@xxxxxxxxx>:
Is it required to use WorkingMemory.update to update an existing fact?
I thought if assert behavior was set to equality and you implemented the
equals method properly, then you could simply use WorkingMemory.insert
to overwrite a fact in working memory with a new version. If this isn't
the case, then are there other settings that will give this behavior?
I'm using 4.0.7.
-------------------
Nope. You must use the update method. You can get the previous fact handle using the get method in working memory if you still have the original non-modified object, or if behavior is equals based, using an equals object.
Edson
http://missioncriticalit.com/index.html
http://www-sop.inria.fr/members/Fabien.Gandon/wakka.php?wiki=FabienGandon
http://answers.semanticweb.com/users/114/rob-vesse/
http://www.dotnetrdf.org/
http://en.wikipedia.org/wiki/Progressive_enhancement
http://www.w3.org/2001/11/IsaViz/
http://fr.wikipedia.org/wiki/Z%C3%A9lotes
http://www.csee.umbc.edu/csee/research/kqml/kqml-applications.html
Refactor : move packages: TODO
This runs fine !!!!!!
cd ~/src/eulergui_test/eulergui/ svn update -r 3143 cp ~/src/eulergui/pom.xml . LANG=en mvn clean LANG=en mvn --offline -Dtest=BasicRuntimeTest test
I don't understand why
test/true_antecedent_java.n3
fails in BasicRuntimeTest, and succeeds in EG GUI (in snv HEAD).
Regression found! Last good revision: r3159 First bad revision: ------------------------------------------------------------------------ r3160 | jmvanel | 2012-07-27 14:44:07 +0200 (ven. 27 juil. 2012) | 16 lignes - now using RuleBasedApplicationStarter in GUI for launching Drools, which coherent with FW API - had to fix N3SourceToDrools.getN3StringResult()
It seems that prior inserting of anything in the WorkingMemory prevents a very simple rule to fire , like :
when eval(true) then System.out.println("fired!"); end
<jmvanel> I already had errors when inserting first and adding rules after.
The stack when inserting anything in the WorkingMemory :
Thread [main] (Suspended (breakpoint at line 187 in TripleStoreDrools)) TripleStoreDrools.setWorkingMemory(WorkingMemory) line: 187 N3SourcetoDrools.initTripleStore() line: 662 N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1054 N3SourcetoDrools.<init>() line: 161 N3DroolsEngineFacade.<init>() line: 43 Project.initializeDrools() line: 1032 Project.getTranslator() line: 1087 BasicRuntime.initialize(Project) line: 120 BasicRuntime.initialize(String[]) line: 109 BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 520 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 BasicRuntimeTest(TestCase).runTest() line: 168 BasicRuntimeTest(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 BasicRuntimeTest(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
mkdir --parents src/org/w3c/IsaViz/
cd src/org/w3c/IsaViz/
ln -s ../../../../*.java ../../../../fresnel .
cd ../../../../
ant isvbuild
...
[javac] /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/src/org/w3c/IsaViz/BaseURIPanel.java:23: error: package com.xerox.VTM.engine does not exist
[javac] import com.xerox.VTM.engine.SwingWorker;
[javac] ^
...
[javac] /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/src/org/w3c/IsaViz/Editor.java:51: error: package net.claribole.zvtm.engine does not exist
[javac] import net.claribole.zvtm.engine.AnimationListener;
[javac] ^
...
[javac] /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/src/org/w3c/IsaViz/GSSManager.java:30: error: package com.hp.hpl.jena.rdf.model does not exist
[javac] import com.hp.hpl.jena.rdf.model.Property;
ant -debug isvbuild
...
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/zvtm.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/xercesImpl.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/xml-apis.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/antlr-2.7.5.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/jena/jena.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/jena/junit.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/openrdf-model.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/openrdf-util.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/sesame.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/lib/sesame/rio.jar from path as it doesn't exist
dropping /home/jmv/src/IsaViz/java/classes/org/w3c/IsaViz/plugins/arq.jar from path as it doesn't exist
Indeed ! lib/ is empty !
IsaViz should be built with Maven !!!!!!
Here is the relevant part of README !
7) Get Jena 2 (current version is 'preview 2') from HP's web site [1] or from their sourceforge CVS repository [2]
Important: IsaViz 2.0 will NOT work with Jena 2 preview 1
8) Put the following JAR files from the Jena 2 distribution in directory IsaViz/lib/
antlr.debug.jar
icu4j.jar
jakarta-oro-2.0.5.jar
jena.jar
junit.jar
log4j-1.2.7.jar
rdf-api-2001-01-19.jar
xercesImpl.jar
xmlParserAPIs.jar
9) Get ZVTM 0.8.2 or later from the ZVTM sourceforge site [3] - actually, the latest CVS version of ZVTM might be necessary (available on the sourceforge site)
10) Put the following JAR file from the ZVTM distribution in direftory IsaViz/lib/
zvtm.jar
[1] http://www.hpl.hp.com/semweb/jena2.htm
[2] http://sourceforge.net/projects/jena/
[3] http://zvtm.sourceforge.net/
I wonder if it would not be easier to migrate to Maven instead of solving these little problems !!!!
Anyway, if I would use IsaViz/Fresnel for EulerGUI, that would be necessary.
The easiest for building quickly is to make an eclipse project, and depend on eulergui project, which has most of the depedencies already.
<jmvanel> These INRIA projects are not easily built
<jmvanel> Even though Open Source, there is no community :( .
<jmvanel> was also the case for Corese .
<jmvanel> well, I had quick answers by Olivier Corby of Corese ...
<jmvanel> btw , I still have one question to olivier; build of Corese not finished
Material for adding in doc
I should extract the development chapter .
<jmvanel> I should have a clear delimitation between the fw and GUI parts
<jmvanel> lcpvrr, rszeno instead of running the example from Java , you can run it from EG:
eg examples/table_app.n3p
<jmvanel> rszeno, I from what you say I infer that your insatisfaction with this example is that
1) it uses N3 syntax to instantiate and call methods on Java objects
<rszeno> no
<rszeno> is obvious to use it
<jmvanel> 2) in EG you don't have the easy access to the documentation of these Java things, for instance by tooltips
<rszeno> no, too
<rszeno> i don't expect this
<jmvanel> 3) we are at a conceptual level too low
What Java objects are inserted in Drools/N3 engine :
( you know that anything can be inserted in a Drools KB ).
Java stuff should be wrapped in a vocab' saying :
<jmvanel> 1. we want to create a table widget backed by current KB
<jmvanel> 2. display this Table in a new Frame
<jmvanel> 3. in the right hand side of the rule : say : eg:N3TableModel gui:addRomFromSubjectURI ?URI
<jmvanel> so this little vocab' could be documented in the standard semweb way
<jmvanel> and the curious Java guy can look under the hood for Java implementation.
what widgets can be used?
<rszeno> so the only thing i need is to include the triples for binding to java?
How i can build combined things?
Regressions
true => { Java stuff }.
COMMIT
add test to ensure that "Open N3 result.*" buttons are there.
COMMIT
- now using RuleBasedApplicationStarter in GUI for launching Drools, which coherent with FW API
- had to fix N3SourceToDrools.getN3StringResult()
TODO : FIX test suite : running a project with post-processing from the GUI does not work anymore:
Tests in error: test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) testJavaMappingConsequentNewVariable(deductions.runtime.BasicRuntimeTest): Any javax.swing.JFrame
Results : Failed tests: testPath(eulergui.project.TestN3Source): expected:<file:/[C]:/temp/truc.n3> but was:<file:/[D]:/temp/truc.n3> testRelativePathWithParentDirectory(eulergui.project.TestN3Source): expected:<[../test/tmp.n3]> but was:<[??]> Tests in error: testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..) testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..) testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..) Tests run: 188, Failures: 2, Errors: 4, Skipped: 0
--------------
workingMemory : 225 : appKB -- GUIKBAdapter 279
workingMemory : 1566 : proj
N3SourcetoDrools factsTriples.size() (int) 202 id=1565
store id=1662
workingMemory : 1618
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended) owns: ReteooStatefulSession (id=1566) GUIKBAdapter.setStorage(ITripleStoreRETE) line: 212 N3SourcetoDrools.addInfrastructureObjectsInWM() line: 653 N3SourcetoDrools.copyN3factsToDrools() line: 676 N3DroolsEngineFacade.copyN3factsToDrools() line: 192 Project.prepareDrools(boolean) line: 891 Project.doRunDrools(boolean) line: 845 Project.runDroolsTriples(boolean) line: 796 DroolsInferenceEngine.launch() line: 30 InferenceSwingWorker.doInBackground() line: 48 InferenceSwingWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 InferenceSwingWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended) owns: ReteooStatefulSession (id=1471) N3SourcetoDrools.addInfrastructureObjectsInWM() line: 650 N3SourcetoDrools.copyN3factsToDrools() line: 675 N3SourcetoDrools.launchDrools() line: 608 N3DroolsEngineFacade.launchDrools() line: 64 Project.doRunDrools(boolean) line: 850 Project.runDroolsTriples(boolean) line: 796 DroolsInferenceEngine.launch() line: 30 InferenceSwingWorker.doInBackground() line: 48 InferenceSwingWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 InferenceSwingWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Search regression by dichotomy:
% svn update -r 3140 ; cp ~/src/eulergui/pom.xml . ; mvn --offline compile \ exec:java -Dexec.args="$HOME/src/deductions/n3_nojs/person-app.n3p"
3135 OK
3136 KO
--------------------------
Regression : revision 3152 : removes the result buttons
-----------------
Instead of this :
{ ?X :p :v. ?Z e:optional { ?X rdfs:label ?L . ?PL log:equalTo ?L . } , { _:d e:findall ( ?L { ?X rdfs:label ?L } () ). ?PL log:equalTo "default label" } . } => { ?X :hasLabelOrNot3 ?PL . }.
we could write it this way :
{ ?X :p :v. ?Z e:disjunction ( { ?X rdfs:label ?L . ?PL log:equalTo ?L . } { _:d e:findall ( ?L { ?X rdfs:label ?L } () ). ?PL log:equalTo "default label" } ) } => { ?X :hasLabelOrNot3 ?PL . }.
but e:disjunction does not bring much clarity, and in fact it's simpler in 2 rules; no need of an extra ?PL variable :
{ ?X :p :v. ?X rdfs:label ?L } => { ?X :hasLabelOrNot5 ?L . }. { ?X :p :v. _:d e:findall ( ?L { ?X rdfs:label ?L } () ). } => { ?X :hasLabelOrNot5 "default label" . }.
But then no need of an extra predicate , and back to a single rule :
{ ?X :needs rdfs:label . _:d e:findall ( ?L { ?X rdfs:label ?L } () ). } => { ?X rdfs:label "default label" . }.
The reading of this is :
All ?X that are marked as needing an rdfs:label, and which don't have already one, should have the value "default label" for property rdfs:label .
I tried this Euler builtin :
e:optional a rdf:Property, e:Builtin; rdfs:comment "builtin to call the object formula and to succeed anyway; is within the subject scope of all asserted N3 formulae and their log:conclusion"; rdfs:domain rdf:List; rdfs:range log:Formula.
I was hoping that it behaves like OPTIONAL keyword in SPARQL
but ...
this rule fires:
@prefix : <http:/example.com#> . :x rdfs:label "has label" ; :p :v. :y :p :v. # no label { ?X :p :v. ?Z e:optional { ?X rdfs:label ?L } . } => { # ?X :hasLabelOrNot ?L . ?X :matches :indeed . }.
but if I uncomment the line in consequent it does not fire .
In euler.yap , e:optional is implemented with call/1 ;
if I try to replace call/1 with ignore/1 it's the same
/tmp/eye/linux/bin/yap -q -f /home/jmv/src/eulersharp/euler.yap -g main -- test/optional.n3 --pass --nope
COMMIT
Drools/N3 engine :
- e:trace
- WIP: implementing e:optional : update ParseLink ( Visitor design pattern )
TODO
move classes to inference/drools or inference/drools/impl
e:optional
in Drools/N3 enginehttp://eulersharp.svn.sourceforge.net/viewvc/eulersharp/trunk/2003/03swap/log-rules.n3
e:optional a rdf:Property, e:Builtin; rdfs:comment "builtin to call the object formula and to succeed anyway; is within the subject scope of all asserted N3 formulae and their log:conclusion"; rdfs:domain rdf:List; rdfs:range log:Formula.
Usage example:
?Z e:optional {?X math:notGreaterThan ?Y. ?S log:equalTo (?X ?Y)} . _:d e:optional {?X :p ?Y }.
What we want to generate in Drools:
( true or $Triple_NN ( subject == $X, predicate == "<http://foo.com/p>", object == $Y ) )
reuse standard existing code generation for highlighted part. I will extract this method from findall implementation:
generateAntecedentSubgraph
EndUser has Senses
Vision is a Sense
Audition is a Sense
EndUser contributes to Project
Projects contains Tasks
Task specified by a TaskProcess
TaskProcess ordered list of TaskProcessStep
EndUser owns Task
EndUser needs UserInterface to perform Tasks
Ontology defines BusinessModel
BusinessModel contains ModelPart
Project is a kind of ModelPart
Project groups Document
Document is a kind of ModelPart
Document groups ModelPart
Document has Grammar
Grammar has Syntax
Grammar has Semantic
GrammarMapping maps X=Grammar with Y=Grammar
LogicDocument is a kind of Document
LogicModelPart is a kind of ModelPart
LogicFact is a kind of LogicModelPart
LogicRule is a kind of LogicModelPart
N3Document is a kind of LogicDocument
CommandMap contains CommandMapping
commandMapping maps iconButton with command.
CommandMapping maps MenuItem with Command
UserAgent provides UserInterface
UserInterface contains Views
View manages BusinessModel
Editor is a View
Editor has PartEditor
PartEditor maps to TaskProcessStep
Representation maps to ModelPart
InteractiveRepresentation is a kind of Representation
Menu groups MenuItem
MenuItem is an InteractiveRepresentation
MenuItem mapped to Command
Toolbar groups IconButton
IconButton has Icon
IconButton mapped to Command
<rszeno> or maybe log:sematics
<rszeno> http://dev.w3.org/cvsweb/2000/10/swap/util/validate.n3?rev=1.7;content-type=text%2Fplain
<rszeno> see last rule at bottom
http://www.w3.org/TR/owl2-profiles/#Reasoning_in_OWL_2_RL_and_RDF_Graphs_using_Rules
I tried latest Jason 1.3.7. They are still at jEdit 4.2 !!! Worse than EulerGUI !
I wonder why Jason does not use current JRE by default.
I tried to compile KGRAM:
svn checkout svn://scm.gforge.inria.fr/svnroot/kgram/
cd kgram
cd Dev
cd trunk
mvn -Dmaven.test.skip=true package
...
[INFO] Reactor Summary:
[INFO]
[INFO] kg-parent ......................................... SUCCESS [0.006s]
[INFO] kgram ............................................. SUCCESS [22.562s]
[INFO] sparql ............................................ SUCCESS [27.954s]
[INFO] kgenv ............................................. FAILURE [4.764s]
[INFO] kgtool ............................................ SKIPPED
[INFO] engine ............................................ SKIPPED
[INFO] kgengine .......................................... SKIPPED
[INFO] kggui ............................................. SKIPPED
[INFO] kgserver-stubs .................................... SKIPPED
[INFO] kgimport .......................................... SKIPPED
[INFO] kg-dqp ............................................ SKIPPED
[INFO] kgserver .......................................... SKIPPED
[INFO] rif ............................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 56.483s
[INFO] Finished at: Mon Jul 16 15:32:25 CEST 2012
[INFO] Final Memory: 18M/166M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project kgenv: Could not resolve dependencies for project fr.inria.edelweiss:kgenv:jar:1.0.7:
Failed to collect dependencies for [fr.inria.edelweiss:sparql:jar:1.0.7 (compile), cryptohash:cryptohash:jar:1.0 (compile), StringHelper:StringHelper:jar:1.0 (compile), log4j:log4j:jar:1.2.12 (compile), fr.inria.edelweiss:kgram:jar:1.0.7 (compile)]:
Failed to read artifact descriptor for cryptohash:cryptohash:jar:1.0: Could not transfer artifact cryptohash:cryptohash:pom:1.0 from/to maven-repository.java.net (http://download.java.net/maven/1/): No connector available to access repository maven-repository.java.net (http://download.java.net/maven/1/) of type legacy using the available factories WagonRepositoryConnectorFactory -> [Help 1]
% mvn --version Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
The root cause seems that cryptohash is not on any public depot:
http://mavenhub.com/search/cryptohash
http://mvnrepository.com/search.html?query=cryptohash
http://search.maven.org/#search%7Cga%7C1%7Ccryptohash
It's probalby on some internal INRIA depot .
NOTES:
KGRAM has quite an old version of Jena :
<groupId>com.hp.hpl.jena</groupId> <artifactId>jena</artifactId> <version>2.6.3</version>
In EulerGUI I upgraded without any problem to latest Jena :
<dependency> <groupId>org.apache.jena</groupId> <artifactId>jena-arq</artifactId> <version>2.9.0-incubating</version> </dependency> <dependency> <groupId>org.apache.jena</groupId> <artifactId>jena-tdb</artifactId> <version>0.9.0-incubating</version> </dependency>
After 2nd answer from Olivier, I could build KGRAM ;
[INFO] Reactor Summary: [INFO] [INFO] kg-parent ......................................... SUCCESS [0.025s] [INFO] kgram ............................................. SUCCESS [14.304s] [INFO] sparql ............................................ SUCCESS [1.342s] [INFO] kgenv ............................................. SUCCESS [0.590s] [INFO] kgtool ............................................ SUCCESS [1.491s] [INFO] engine ............................................ SUCCESS [0.570s] [INFO] kgengine .......................................... SUCCESS [0.625s] [INFO] kggui ............................................. SUCCESS [55.182s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:15.883s [INFO] Finished at: Tue Jul 17 11:16:03 CEST 2012
Semantic Web Import is a plugin allowing the Gephi platform to visualize the semantic RDF graphs. This plugin is made available under the CeCILL-B license. The last version of the plugin can be downnloaded through the Gephi platform. The source code can be found at https://gforge.inria.fr/scm/?group_id=3504. For more details, please contact us.
contact: Fabien.Gandon@inria.fr, Erwan.Demairy@inria.fr
http://books.google.fr/books?id=oqOpJIi5hpoC&pg=PA357&lpg=PA357&dq=prova+semantic+web&source=bl&ots=f_ya3_tOE9&sig=mnwp70k1pb38MhdjpF3ybeMvZuM&hl=fr&sa=X&ei=fHwDUJWEHseW0QWyidWzBw&ved=0CHEQ6AEwBg#v=onepage&q=prova%20semantic%20web&f=false
COMMIT
By default Project is now "infrastructure" ( no listeners ) ; listeners are now added by ProjectGUI.
xclock -digital -update 1 &
DISPLAY=:1 LANG=en mvn -e -DPARSER4J_TESTS=no \ -Dtest='eulergui.gui.TestGenericGuiGenerationInsertLogical#test_foaf_import2' test
Infinitest is a continuous test runner for JUnit tests. Whenever you change a class, Infinitest runs your tests for you. It’s smart about what tests to run, and only runs the ones you need. It reports test errors in the same way Eclipse reports compile errors, and provides additional information that helps you write better tests.
already did a feature request for inifinitest !
useful to set environment variables : there could be infinitest.env
https://github.com/infinitest/infinitest/issues/90
TODO
remove circular dependencies and extract API and core
feature_triplecombobox
DONE
TripleStoreHelper.extractNodeURI( triple_store); TripleStoreHelper.extractPredicateURI( triple_store);
http://www.w3.org/2012/10/TPAC/
semantics of projectLoaded() is not clear enough !!!!!!!
Thread [main] (Suspended (exception NullPointerException)) N3SourceFromOWL(N3Source).manageParseN3() line: 423 N3SourceFromOWL(N3Source).getKnownURIPrefixes() line: 670 FCMProjectListener.ensure_cbfcm_rules_loaded(Project) line: 58 FCMProjectListener.projectLoaded(Project) line: 45 ProjectChangeSupport.fireProjectLoaded(Project) line: 109 Project.prepare() line: 1216 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 ProjectGUI.populateWindow(Project, boolean) line: 282 ProjectGUI.newWindow(Project, boolean) line: 269 ProjectGUI.main(String[]) line: 214
FRED is using stanbol
http://incubator.apache.org/stanbol/overview.html
http://deductions-software.blogspot.fr/
FRED - http://wit.istc.cnr.it/stlab-tools/fred - A tool for automatically producing RDF/OWL ontologies and linked data from natural language sentences, currently limited to English.
FRED is based on C&C [1] and Boxer [2], a NLP tool that transforms natural language text into a logical form compliant to Discourse Representation Theory. We process Boxer output and apply a set of heuristics and semantic transformations in order to obtain RDF designed for the Semantic Web. In this process, we emphasize the relation to linguistic frames, supporting FrameNet and VerbNet vocabularies, and to ontology design patterns.
So tried first some examples from ATTEMPTO ACE 6.6 in a Nutshell :
A customer inserts a card and the machine checks the code.
Not bad ! It uses this class and predicates :
<http://www.ontologydesignpatterns.org/ont/dul/DUL.owl#Event> .
<http://www.ontologydesignpatterns.org/ont/vn/abox/role/agent>
<http://www.ontologydesignpatterns.org/ont/vn/abox/role/theme>
respectively for the sentence, the grammatical subject, and the direct complement.
NOTE: The Options: "FrameNet roles NER Tìpalo WSD" do not have tooltips, so it's not easy to know what they mean.
A customer inserts a VisaCard or inserts a MasterCard, and inserts a code.
The disjunction (or) is not reflected at all in the output. Neither is the negation correctly represented:
It is false that a customer inserts a card.
Now I'll try an example of mine that works with EulerGUI:
If a user U has-as-friend a person X, and has-as-friend a person Y, and X is not Y,
and X has-as-friend Z, and Y has-as-friend Z, and Z is not U
then Z is-a-proposed-friend-for U.
It's clear that the if-then structure is not understood. Even a simple sentence like this is wrong :
If the code is valid then the ATM accepts the card.
FRED tries to be smart, and "thinks" that the ATM is a foaf:Organisation !
Julien Plu and some other persons, translated four tutorials from Jena website on
Developpez.com, there a list of the tutorials :
http://web-semantique.developpez.com/tutoriels/jena/introduction-rdf/
http://web-semantique.developpez.com/tutoriels/jena/arq/api-application/
http://web-semantique.developpez.com/tutoriels/jena/io/
http://web-semantique.developpez.com/tutoriels/jena/arq/introduction-sparql/
These links can be referenced on the Jena website ?
Thanks in advance.
Best.
---------------------------------------------------
Results : Tests in error: testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) Tests run: 184, Failures: 0, Errors: 2, Skipped: 0
http://ro.linkedin.com/in/xtremeintelligence
Envoyé mercredi à 17:40
Ruset: and this one http://universitydiary.wordpress.com/2009/09/30/whats-this-all-about/
<jmvanel> rszeno, any experience in proxies on Linux ?
<jmvanel> the goal would be to accelerate and secure tests in EG
<rszeno> not much, mainly how to avoid them
<jmvanel> :)
<rszeno> i mean avoid problems with open proxy used by others
<jmvanel> ok
<jmvanel> it does not seem too difficult :
<jmvanel> http://www.commentcamarche.net/faq/6323-installer-un-serveur-proxy-http-squid
<rszeno> i have no idea, i need to understand why is more secure and how acceleration work
<rszeno> usualy stuff is easy to install and run with default settings but for a given task always need tweaks
<rszeno> service and editing /etc/default/... is a usual pattern
<rszeno> probably with a proper interface can be done with n3
<rszeno> i tried with apache but interface is not ok
<jmvanel> :)
<jmvanel> secure is not the righ word,
<jmvanel> nothing to do with security ;
<jmvanel> I mean EG depends on many servers for tests ;
<jmvanel> it sometimes happens that one is down;
<jmvanel> and so tests fail for that
<jmvanel> acceleration is just that download does not occur
Missing "." at end of line when serializing output with an RDF list:
_:type4 <http://www.w3.org/2002/07/owl#intersectionOf> ( <http://xmlns.com/foaf/0.1/Person> _:type1 )
TODO stack sometimes happening; I don't know how to reproduce
java.lang.NullPointerException at n3_project.helpers.EyeHelper.addN3SourceToEulerArguments(EyeHelper.java:193) at n3_project.helpers.EyeHelper.getEulerArguments(EyeHelper.java:150) at n3_project.helpers.EyeHelper.reasonExternalProlog(EyeHelper.java:51) at eulergui.project.Project.reasonExternalProlog(Project.java:536) at eulergui.inference.yap.YapInferenceEngine.launch(YapInferenceEngine.java:20) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:17) at javax.swing.SwingWorker$1.call(SwingWorker.java:296) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at javax.swing.SwingWorker.run(SwingWorker.java:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
PROBLEM when managing N3 Cache for N3 source file:/home/jmv/jmvanel.free.fr/jmv.rdf
Error when converting RDF from a file file:/home/jmv/jmvanel.free.fr/jmv.rdf : java.io.FileNotFoundException: /home/jmv/jmvanel.free.fr/jmv.rdf (Trop de fichiers ouverts)
Cause:
java.io.FileNotFoundException: /home/jmv/jmvanel.free.fr/jmv.rdf (Trop de fichiers ouverts) , caused by /home/jmv/jmvanel.free.fr/jmv.rdf (Trop de fichiers ouverts)
Results : Tests run: 184, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 17:44.562s
Run APE in command line :
% ape.exe -uri http://eulergui.sf.net/contact.owl -ulexfile foaf-lexicon.pl -text \ 'If P is a person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlxml > interesting-contact2.owl
Run EulerGUI from command line, reading the OWL file just generated :
eg interesting-contact2.owl htpp://jmvanel.free.fr/jmv.rdf
jmv.rdf is my FOAF profile on the Internet.
The translation of OWL into N3 is :
@prefix ns2: <http://eulergui.sf.net/contact.owl#>. { ?VAR <http://xmlns.com/foaf/0.1/currentProject> ?t0. ?VAR <http://xmlns.com/foaf/0.1/homepage> ?t2. ?VAR a <http://xmlns.com/foaf/0.1/Person> } => { ?VAR a ns2:interesting-contact}.
Now click on the button to launch Drools engine. Since the URI
<htpp://jmvanel.free.fr/jmv.rdf#me>
( that's me ) has a
foaf:currentProjet and a foaf:homepage , it is inferred that he is an
interesting-contact . To confirm this, one can either use the user Knowledge
Base display in tools to see the whole KB. Or one can use the N3 shell to ask
this query (just paste it with Ctrl-V) :
?X a ns2:interesting-contact .
The answer appears at once :
<http://jmvanel.free.fr/jmv.rdf#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://eulergui.sf.net/contact.owl#interesting-contact> .
Under the hood
There is a local lexicon file for ATTEMPTO APE : foaf-lexicon.pl , that tells how to verbalize the foaf concepts in english :
cat foaf-lexicon.pl tv_finsg('has-homepage' , iri('http://xmlns.com/foaf/0.1/homepage') ). tv_infpl('have-homepage' , iri('http://xmlns.com/foaf/0.1/homepage') ). tv_finsg('has-current-project' , iri('http://xmlns.com/foaf/0.1/currentProject') ). tv_infpl('have-current-project' , iri('http://xmlns.com/foaf/0.1/currentProject') ). noun_sg( person, iri('http://xmlns.com/foaf/0.1/Person'), neutr) . noun_pl( persons, iri('http://xmlns.com/foaf/0.1/Person'), neutr) .
How to run the demonstration
EulerGUI Manual is available from help menu
Example of federated query :
CONSTRUCT { ?MUSICAL_WORK :hasDBPedia ?X . ?X ?INTERESTING_PROP ?VALUE . } WHERE { ?MUSICAL_WORK :title ?LOCAL_NAME . SERVICE <http://dbpedia.org/sparql> { ?X rdfs:label ?NAME . ?NAME <bif:contains> ?LOCAL_NAME . ?X ?INTERESTING_PROP ?VALUE . } }
Example of query on dbpedia with filter on language
SELECT DISTINCT ?m ?n ?p ?d WHERE { ?m rdfs:label ?n. ?m skos:subject ?c. ?c skos:broader category:Churches_in_Paris. ?m p:abstract ?d. ?m geo:point ?p FILTER ( lang(?n) = "fr" ) FILTER ( lang(?d) = "fr" ) }
COMMIT Michel - 10 june 2012: limit minimum resize to 'usable dimension'
For use with escargot :) .
<jmvanel> yes , but I forgot how to get a certificate , altough you said me once , and bblfish also :(
<rszeno> you doesn't have one? is in foaf
<rszeno> anyway you can get one from here https://my-profile.eu/profile.php
<jmvanel> right , I have one in FOAF, but the secrete part , I don't know where it is
<jmvanel> can't get one in command line ?
<rszeno> no, not yet
<rszeno> both parts are in browser
<rszeno> you can export certificate
<rszeno> from browser: Edit -> Preferences -> Advanced ->Encriptation -> View Certificates
<rszeno> then select one you want to backup and push 'Backup'
<rszeno> will ask for a password, take care to remember it, you will need each time later
<rszeno> result of exporting is a file with extension .p12
Upon request, I have created an end-to-end tutorial for FuXi that attempts to describe (with lots of code examples) its primary capabilities as well as how it works with the other FuXi-related projects (Triclops, layercake-python, etc.). The link is below
http://code.google.com/p/fuxi/wiki/Tutorial
It is meant as a 'hello-world' tutorial with links into the more detailed documentation
Let me know if you have any suggestions for how to improve this
My next major task(s) are more robust testing of the new backwards fixpoint procedure module and RIF XML and RDF parsing and serialization capabilities.
run APE :
% ape.exe -uri http://eulergui.sf.net/contact.owl -ulexfile foaf-lexicon.pl -text 'If P is a person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlxml > interesting-contact2.owl
OWL from APE:
[ rdf:type owl:Class ; rdfs:subClassOf :interesting-contact ; owl:intersectionOf ( [ rdf:type owl:Class ; owl:intersectionOf ( <http://xmlns.com/foaf/0.1/Person> [ rdf:type owl:Restriction ; owl:onProperty <http://xmlns.com/foaf/0.1/homepage> ; owl:someValuesFrom owl:Thing ] ) ] [ rdf:type owl:Restriction ; owl:onProperty <http://xmlns.com/foaf/0.1/currentProject> ; owl:someValuesFrom owl:Thing ] ) ] .
translation of OWL into N3:
{?t0 a owl:Thing. ?VAR <http://xmlns.com/foaf/0.1/currentProject> ?t0.
?t2 a owl:Thing. ?VAR <http://xmlns.com/foaf/0.1/homepage> ?t2.
?VAR a <http://xmlns.com/foaf/0.1/Person>
} => {
?VAR a ns2:interesting-contact}.
I should remove this condition :
?t0 a owl:Thing.
DONE! Now its looks much better on the example ace.rdf , but still there are some issues :
{?t1 a :subordonate. ?VAR :have ?t1. ?VAR a :employee} => {?VAR a :manager}. {?VAR a :person. ?VAR :manages ?t11} => {?VAR a ?e4}. {?VAR :like ?t3. ?VAR a :man} => {?t0 a :stick. ?VAR :own ?t0}. {?VAR a ?e19} => {?VAR a :vegetarian-food}. {?t5 log:equalTo :Jimi_Hendrix. ?VAR :like ?t5} => {?VAR a :rock-fan}. {?t7 a :carrot. ?VAR :like ?t7} => {?VAR a :herbivore}. {?t9 a :man. ?t9 :buy ?VAR} => {?VAR a :good}. {?VAR :manages ?t11. ?VAR a :person} => {?VAR a :manager}.
COMMIT
translation OWL ==> N3 rules ( owl-subclass-assertions-to-rules.n3 ) add conditions so that generated rules do not have unwanted triples in the antecedent like :
?t0 a owl:Thing.
Semantic Web Interest Group IRC log : http://swig.xmlhack.com/
http://sourceforge.net/apps/mediawiki/bigdata/index.php
SourceForge.net - Subscription Confirmation for bigdata
TODO I should add this in EulerGUI site
https://code.google.com/p/lmf/
Search "jena replication sparql"
I realize that using the KB access in Java through ITripleStore is to be avoided as much as possible. The preferred way, for a better separation between business logic and Java code, is to use mixed , reactive rules.
These rules will query the data and context, apply business rules, and send messages to relevant component like a table, tree, property list view, or form, or more customized component.
Tests in error: testUpdateJavaFromN3(eulergui.drools_engine.TestN3JavaMapping): Wait for "getText() Component Chooser "business"(..)
Answer by Kaarel Kaljurand
Is there any other tooling around that I should investigate?
more tools are listed on:
http://attempto.ifi.uzh.ch/site/tools/
Some of them are also open-source, e.g.:
- http://code.google.com/p/aceview/
- http://code.google.com/p/owlverbalizer/
But none of them are specific to CLCE/KIF.
To convert ACE into another format, e.g. CLCE or KIF, you could consider applying the required transformations at the DRS level. There are many examples in https://github.com/Attempto/APE/tree/master/utils of how to convert the DRS into other formats (OWL, TPTP. RuleML, ACE, ...).
This happens inside the GUI; probably not from the API.
The problem is in this rule:
{
?L :alert "true"
; log:uri ?LL .
} => {
?F a java:javax-swing-JFrame; javap:title ?LL
; javam:setSize ( 700 70 )
; javap:visible true
.
}.
In fact deferred calls work fine, but direct call like setSize do not :
rule "popup-java.n3 0"
when
$Triple_1 : Triple( $L : subject, predicate == "<http://eulergui.sourceforge.net/examples#alert>", object == "\"true
\"" )
# $LL == $L
then
java.lang.String $LL = $L.toString().replaceFirst( "^<", "\"").replaceFirst( ">$", "\"");
Triple newTriple;
TripleResult newTripleResult;
String $F = Triple.resource("F") ;
javax.swing.JFrame $F_reference = new javax.swing.JFrame ();
insertLogical( new Assignment( $F.toString(), $F_reference ));
insertLogical( $F_reference );
DeferredPropertyAssignment dpa_F4 = new DeferredPropertyAssignment();
dpa_F4.setSubject($F.toString() );
dpa_F4.setPredicate( "<http://java.sun.com/predicate#title>" );
dpa_F4.setObject($LL.toString() );
insertLogical( dpa_F4 );
( ( javax.swing.JFrame ) $F_reference ) . setSize( ( 700 ) , ( 70 ) );
DeferredPropertyAssignment dpa_F6 = new DeferredPropertyAssignment();
dpa_F6.setSubject($F.toString() );
dpa_F6.setPredicate( "<http://java.sun.com/predicate#visible>" );
dpa_F6.setObject("true".toString() );
insertLogical( dpa_F6 );
end
I tried to remove parentheses around numbers, but it had no effet.
So I use svn-bisect again to locate the bad revision:
svn update -r 3111 mvn -Dtest=TestJavaMappingInGUI --offline test gvim target/surefire-reports/eulergui.gui.TestJavaMappingInGUI*.txt svn update -r 3120 svn-bisect start 3046 3136 svn-bisect run 'DISPLAY=:1 LANG=en mvn --offline -Dtest=TestJavaMappingInGUI test'
svn-bisect reset
svn-bisect start 3068 3091
svn-bisect run 'rm -r ~/.eulergui ; LANG=en mvn --offline -Dtest=TestJavaMappingInGUI test'
svn info
# 3079 BAD
histo
history
svn-bisect reset
svn-bisect start 3068 3079
svn-bisect run 'rm -r ~/.eulergui ; LANG=en mvn --offline -Dtest=TestJavaMappingInGUI surefire-report:report'
svn info
# 3073 GOOD
...
Regression found!
Last good revision: r3073
First bad revision:
------------------------------------------------------------------------
r3074 | jmvanel | 2012-05-30 23:08:50 +0200 (mer. 30 mai 2012) | 2 lignes
fix windows generated by swing3.n3p rule base: now the newly appeared windows are packed after launching Drools
COMMIT
FIX BloodPressure2.n3p example : we don't want the generated window to be packed,
* and thus become almost invisible;
* same case for windows having 0 components inside
==> in class SwingRulesLaunchWrapper
TODO: this is fragile, and another mechanism should be tested;
* for instance a rule that packs the window whenever a component is added.
- enhance TestN3JavaMapping
- add TestJavaMappingInGUI : test simple Java instantiation and method call in consequent,
from the EUlerGUI GUI
--------------------------
First call to addInfrastructureRules
Thread [main] (Suspended (breakpoint at line 508 in N3SourcetoDrools)) N3SourcetoDrools.addInfrastructureRules() line: 508 N3DroolsEngineFacade.addInfrastructureRules() line: 274 Project.prepare() line: 1215 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 ProjectGUI.populateWindow(Project, boolean) line: 264 ProjectGUI.newWindow(Project, boolean) line: 251 ProjectGUI.main(String[]) line: 196
Second call to addInfrastructureRules, during Drools run : no problem
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 508 in N3SourcetoDrools)) N3SourcetoDrools.addInfrastructureRules() line: 508 N3DroolsEngineFacade.addInfrastructureRules() line: 274 Project.doTranslateN32Drools(boolean, boolean) line: 973 Project.translateN32Drools(boolean) line: 923 Project.prepareDrools(boolean) line: 882 Project.doRunDrools(boolean) line: 837 Project.runDroolsTriples(boolean) line: 788 DroolsInferenceEngine.launch() line: 30 InferenceSwingWorker.doInBackground() line: 48 InferenceSwingWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 InferenceSwingWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
ReflectionHelper.findMethod() 3: java.lang.NoSuchMethodException:
In my application's pom.xml, I have a dependency to version 5.5.0-SNAPSHOT ;
I would like to freeze to today's version for some time :
drools-compiler-5.5.0-20120708.050650-274.jar
How do I indicate this in the POM ?
This does not work :
<version>5.5.0-SNAPSHOT-20120708.050650-274</version>
FYI this works ; <version>5.5.0-20120708.050650-274</version>
eulergui.drools_engine.TestN3JavaMapping Running eulergui.project.TestProjectSequence Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 9.884 sec <<< FAILURE! Concurrency config is parallel='false', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false Running eulergui.project.TestProjectWithSubProjects Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 9.553 sec <<< FAILURE! Running eulergui.gui.TestN3FormatForProject Tests run: 4, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 40.75 sec <<< FAILURE! Running deductions.runtime.TestRulesForUserEvents Tests run: 4, Failures: 1, Errors: 3, Skipped: 0, Time elapsed: 33.731 sec <<< FAILURE! Failed tests: testRunDrools(eulergui.drools_engine.TestReasonning): check Pattern Triple Handler,(..) testUpdateJavaFromN3(eulergui.drools_engine.TestN3JavaMapping): a rule activation directly affects a Java object expected:<1> but was:<2> testpostproc_build(eulergui.project.TestProjectSequence): must have a result with subject (..) testpostproc_import(eulergui.project.TestProjectSequence): must have a result with subject (..) testpostproc(eulergui.project.TestProjectSequence): must have a result with subject (..) testimportQ(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) testimportQ2(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) testimport(eulergui.project.TestProjectWithSubProjects): must have a result with subject (..) testFormFromResource(deductions.runtime.TestRulesForUserEvents): form and field as expected Tests in error: test_read_newproject_n3p_n3(eulergui.gui.TestN3FormatForProject): Wait AbstractButton with text "plants.n3" loaded testFieldOldArchitecture(deductions.runtime.TestRulesForUserEvents): [Error: unable to resolve method: eulergui.inference.drools.impl.Assignment.isAbstract() [arglength=0]](..) testFormFromClass(deductions.runtime.TestRulesForUserEvents): [Error: unable to resolve method: eulergui.inference.drools.impl.Assignment.isAbstract() [arglength=0]](..) testFocusLost(deductions.runtime.TestRulesForUserEvents): Index: 0, Size: 0 Tests run: 184, Failures: 9, Errors: 4, Skipped: 0
Works ( revision 3124 ) :
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner at localhost:58980 Thread [main] (Suspended (breakpoint at line 180 in JFrame)) owns: DefaultAgenda (id=292) owns: ReteooRuleBase (id=293) JFrame.<init>() line: 180 [local variables unavailable] Rule_true_antecedent_java_n3_0_59946b9a02a0452294e19d8da884c494.defaultConsequence(KnowledgeHelper) line: 16 Rule_true_antecedent_java_n3_0_59946b9a02a0452294e19d8da884c494DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available Rule_true_antecedent_java_n3_0_59946b9a02a0452294e19d8da884c494DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available DefaultAgenda.fireActivation(Activation) line: 1274 DefaultAgenda.fireNextItem(AgendaFilter) line: 1209 DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1443 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674 N3SourcetoDrools.launchDroolsKeepWM() line: 704 N3DroolsEngineFacade.launchDroolsKeepWM() line: 71 BasicRuntime.addN3SourceInKB(N3Source) line: 227 BasicRuntime.processTriplesOrRules(String) line: 207 BasicRuntime.executeLine(String) line: 192 BasicRuntimeTest.executeLine(String) line: 102 BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 520 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 BasicRuntimeTest(TestCase).runTest() line: 168 BasicRuntimeTest(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 BasicRuntimeTest(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197 Thread [ReaderThread] (Running)
Should work :
// ---------- N3 rule 0 ---------- /* true => { _:x <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://java.sun.com/class#javax-swing-JFrame>. _:list2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> 400. _:list1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> 200. _:list1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>. _:list2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:list1. _:x <http://java.sun.com/method#setSize> _:list2. _:list3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "generated by rule". _:list3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>. _:x <http://java.sun.com/method#setTitle> _:list3. _:list4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> true. _:list4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>. _:x <http://java.sun.com/method#setVisible> _:list4. _:list5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> "JFrame generated by rule". _:list5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil>. _:d <http://eulergui.sourceforge.net/engine.owl#trace> _:list5. } . */ rule "true_antecedent_java.n3 0" when eval( true ) then Triple newTriple; TripleResult newTripleResult; String $x = Triple.resource("x") ; javax.swing.JFrame $x_reference = new javax.swing.JFrame (); insertLogical( new Assignment( $x.toString(), $x_reference )); insertLogical( $x_reference ); ( ( javax.swing.JFrame ) $x_reference ) . setSize( ( 400 ) , ( 200 ) ); ( ( javax.swing.JFrame ) $x_reference ) . setTitle( ( "generated by rule" ) ); ( ( javax.swing.JFrame ) $x_reference ) . setVisible( ( true ) ); System.out.println( "#TRACE ( " + "\"JFrame generated by rule\"" + " " + ")" ); end query "userData" $Triple_1 : Triple( $RESOURCE : subject, predicate == "<http://jmvanel.free.fr/ontology/software_applications.owl#status>", object == "<http://jmvanel.free.fr/ontology/software_applications.owl#userData>" ) $Triple_2 : Triple( subject == $RESOURCE, $PREDICATE : predicate, $VALUE : object ) end
svn-bisect does dichotomic search of a bug.
http://manpages.ubuntu.com/manpages/lucid/man1/svn-bisect.1.html
sudo apt-get install subversion-tools
svn update -r 3077
# this succeeds:
DISPLAY=:1 LANG=en mvn --offline -Dtest=BasicRuntimeTest test
# then I can intialize bisect:
svn-bisect --min 3077 --max 3129 start
svn-bisect run 'DISPLAY=:1 LANG=en mvn --offline -Dtest=BasicRuntimeTest test'
...
Regression found!
Last good revision: r3124
First bad revision:
------------------------------------------------------------------------
r3125 | jmvanel | 2012-06-25 22:57:51 +0200 (lun. 25 juin 2012) | 4 lignes
- Drools/N3 engine: now static method calls work outside of rules
- examples/table_app.n3p now works
TODO: now BasicRuntimeTest.testJavaMappingConsequentNewVariable() fails
svn-bisect reset
<jmvanel> 2 regressions currently in eg :(
<jmvanel> the 4 buttons for results are missing
<jmvanel> and the N3 shell querries are not working
svn propset svn:executable "" egm eg *.sh
Twit : New #EulerGUI snapshots:
COMMIT
WIP: FIX Tests in error (for testJavaMappingConsequentNewVariable may be a Drools issue )
- update CHANGELOG
Thread [main] (Suspended (entry into method <init> in TripleStoreDrools)) TripleStoreDrools.<init>() line: 44 N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1046 N3SourcetoDrools.<init>() line: 161 N3DroolsEngineFacade.<init>() line: 44 Project.initializeDrools() line: 1022 Project.getTranslator() line: 1077 Project.prepare() line: 1213 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 CommandLineArguments.makeProjectFromEulerCommandLine(String[]) line: 146 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 72 CommandLineArguments.makeProjectFromUserArgument(String[]) line: 36 BasicRuntime.initialize(String[]) line: 106 BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 519 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 BasicRuntimeTest(TestCase).runTest() line: 168 BasicRuntimeTest(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 BasicRuntimeTest(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
Thread [main] (Suspended (entry into method <init> in TripleStoreDrools)) owns: ReteooStatefulSession (id=72) TripleStoreDrools.<init>() line: 44 N3SourcetoDrools.addInfrastructureObjectsInWM() line: 653 N3SourcetoDrools.copyN3factsToDrools() line: 669 N3DroolsEngineFacade.copyN3factsToDrools() line: 193 ApplicationKB.<init>() line: 109 ApplicationKB.instance() line: 80 Project.prepare() line: 1211
Thread [main] (Suspended (entry into method <init> in TripleStoreDrools)) owns: ReteooStatefulSession (id=72) TripleStoreDrools.<init>() line: 44 GUIKBAdapter.<init>() line: 48 N3SourcetoDrools.addInfrastructureObjectsInWM() line: 652 N3SourcetoDrools.copyN3factsToDrools() line: 669 N3DroolsEngineFacade.copyN3factsToDrools() line: 193 ApplicationKB.<init>() line: 109 ApplicationKB.instance() line: 80 Project.prepare() line: 1211 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 CommandLineArguments.makeProjectFromEulerCommandLine(String[]) line: 146 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 72 CommandLineArguments.makeProjectFromUserArgument(String[]) line: 36 BasicRuntime.initialize(String[]) line: 106 BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 519 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 BasicRuntimeTest(TestCase).runTest() line: 168 BasicRuntimeTest(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 BasicRuntimeTest(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
Thread [main] (Suspended (entry into method <init> in TripleStoreDrools)) TripleStoreDrools.<init>() line: 44 N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1046 N3SourcetoDrools.<init>() line: 161 N3DroolsEngineFacade.<init>() line: 44 Project.initializeDrools() line: 1022 Project.getTranslator() line: 1077 ApplicationKB.<init>() line: 99 ApplicationKB.instance() line: 80 Project.prepare() line: 1211 ProjectFactory.prepareProject(Project, URL, boolean) line: 312 CommandLineArguments.makeProjectFromEulerCommandLine(String[]) line: 146 CommandLineArguments.makeProjectsFromUserArgument(String[]) line: 72 CommandLineArguments.makeProjectFromUserArgument(String[]) line: 36 BasicRuntime.initialize(String[]) line: 106 BasicRuntimeTest.testJavaMappingConsequentNewVariable() line: 519 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 BasicRuntimeTest(TestCase).runTest() line: 168 BasicRuntimeTest(TestCase).runBare() line: 134 TestResult$1.protect() line: 110 TestResult.runProtected(Test, Protectable) line: 128 TestResult.run(TestCase) line: 113 BasicRuntimeTest(TestCase).run(TestResult) line: 124 TestSuite.runTest(Test, TestResult) line: 243 TestSuite.run(TestResult) line: 238 JUnit38ClassRunner.run(RunNotifier) line: 83 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
The rule that compiles no more in test TestRulesForUserEvents :
// ---------- N3 rule 0 ---------- /* { ?CLASS <http://java.sun.com/class#isAbstract> true. ?CLASS <http://www.w3.org/2000/01/rdf-schema#subClassOf> ?SUPERCLASS. } => { ?SUPERCLASS <http://java.sun.com/class#isAbstract> true. } . */ rule "java_library-rules.n3 0" when Assignment( $CLASS : name, $CLASS_reference : reference, reference.isAbstract == "true" ) $Triple_1 : Triple( subject == $CLASS, predicate == "<http://www.w3.org/2000/01/rdf-schema#subClassOf>", $SUPERCLASS : object ) then Triple newTriple; TripleResult newTripleResult; DeferredPropertyAssignment dpa_SUPERCLASS3 = new DeferredPropertyAssignment(); dpa_SUPERCLASS3.setSubject($SUPERCLASS.toString() ); dpa_SUPERCLASS3.setPredicate( "<http://java.sun.com/class#isAbstract>" ); dpa_SUPERCLASS3.setObject("true".toString() ); insertLogical( dpa_SUPERCLASS3 ); end query "userData" $Triple_1 : Triple( $RESOURCE : subject, predicate == "<http://jmvanel.free.fr/ontology/software_applications.owl#status>", object == "<http://jmvanel.free.fr/ontology/software_applications.owl#userData>" ) $Triple_2 : Triple( subject == $RESOURCE, $PREDICATE : predicate, $VALUE : object ) end
Tests in error: testFieldOldArchitecture(deductions.runtime.TestRulesForUserEvents): N3JavaMappingBuiltin.acceptConsequent() testFormFromClass(deductions.runtime.TestRulesForUserEvents): translate(IRDFIterator iterator, ... http://deductions.svn.sourceforge.net/svnroot/deductions/n3/java_library-rules.n3 testJavaMappingConsequentNewVariable(deductions.runtime.BasicRuntimeTest): Any javax.swing.JFrame Tests run: 184, Failures: 0, Errors: 3, Skipped: 0
COMMIT
- add test class TableApp, a simple table application, where the table is dynamically populated from the Drools/N3 KB
- FIX RuleBasedApplicationStarter. addKnowledge(N3Source)
( also tested with TXC musical player )
Thread [main] (Suspended) owns: DefaultAgenda (id=98) TableModelFromN3.removeElement(ITriple) line: 307 N3TableModel.removeElement(ITriple) line: 147 N3TableModel.remove(String) line: 115 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 JavaObjectsRetractionListener.invokeRemoveMethod(WorkingMemory, DeferredMethodCall, String, String) line: 98 JavaObjectsRetractionListener.objectRetracted(ObjectRetractedEvent) line: 36 WorkingMemoryEventSupport.fireObjectRetracted(PropagationContext, FactHandle, Object, InternalWorkingMemory) line: 78 NamedEntryPoint.retract(FactHandle, boolean, boolean, Rule, Activation) line: 586 ReteooStatefulSession(AbstractWorkingMemory).retract(FactHandle, boolean, boolean, Rule, Activation) line: 920 TruthMaintenanceSystem$LogicalRetractCallback.execute(InternalWorkingMemory) line: 313 ReteooStatefulSession(AbstractWorkingMemory).executeQueuedActions() line: 977 NamedEntryPoint.update(FactHandle, Object, long, Activation) line: 483 ReteooStatefulSession(AbstractWorkingMemory).update(FactHandle, Object, long, Activation) line: 960 ReteooStatefulSession(AbstractWorkingMemory).update(FactHandle, Object) line: 933 TripleStoreDrools.updateTriple(ITriple, String) line: 136 EditCellListener.tableChanged(TableModelEvent) line: 53 N3TableModel(AbstractTableModel).fireTableChanged(TableModelEvent) line: 296 N3TableModel(AbstractTableModel).fireTableCellUpdated(int, int) line: 275 N3TableModel(DefaultTableModel).setValueAt(Object, int, int) line: 667 TableModelFromN3.setValueInTableModel(ITriple) line: 82 TableModelFromN3.add(ITriple) line: 74 N3TableModel.addElement(ITriple) line: 138 N3TableModel.add(String) line: 106 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 DeferredMethodCall.doPperformMethodCall(Object, Class<?>, Map<String,Object>) line: 133 DeferredMethodCall.doPperformMethodCall(Object, Map<String,Object>) line: 100 DeferredMethodCall.performMethodCall(Object, Map<String,Assignment>) line: 93 DeferredMethodCall.assign(Object, List<Assignment>) line: 73 DeferredMethodCall.assign(Assignment, List<Assignment>) line: 40 Rule_DeferredMethodCall_2f0725bf5d564f49a1580bb9dc30c847.defaultConsequence(KnowledgeHelper, Assignment, FactHandle, ArrayList, FactHandle, DeferredMethodCall, FactHandle) line: 10 Rule_DeferredMethodCall_2f0725bf5d564f49a1580bb9dc30c847DefaultConsequenceInvokerGenerated.evaluate(KnowledgeHelper, WorkingMemory) line: not available Rule_DeferredMethodCall_2f0725bf5d564f49a1580bb9dc30c847DefaultConsequenceInvoker.evaluate(KnowledgeHelper, WorkingMemory) line: not available DefaultAgenda.fireActivation(Activation) line: 1274 DefaultAgenda.fireNextItem(AgendaFilter) line: 1209 DefaultAgenda.fireAllRules(AgendaFilter, int) line: 1443 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules(AgendaFilter, int) line: 710 ReteooStatefulSession(AbstractWorkingMemory).fireAllRules() line: 674 TripleStoreDrools.fireAllRules() line: 352 TableApp.start() line: 45 TableApp.main(String[]) line: 27
http://www.w3.org/2001/sw/wiki/Category:Tool
http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept/
TODO
software dev. and semantic web
available solutions
avoid storing in relational database and processing data through OO API
very common practice
avoid generating classes in Java or another programming language
instead keep data in semweb triples from end to end
framework
other solutions?
insert user triples in a per-user named graph
the application can put data in a chosen named graph
store consequences also ?
internally use a ProjectListener to store N3Source also in the RDF db ?
leverage on named graphs metadata : date created, etc
how to use the RDF db ?
A-t-on vraiment besoin de base ? oui, pour la persistence
persistence de l'IHM : onglets <--> playlists
playlist :
ordre: soit enregistré tel quel , soit ordre par classement, soit enregistrer les permutation
http://sdl.ikayzo.org/display/SDL/Home
http://code.google.com/a/eclipselabs.org/p/ink/
http://blog.athico.com/2012/05/drools-54-artificial-intelligence.html
There are 2 competing rules:
# implementation
eg:N3TableModel a java:deductions-runtime-swing-N3TableModel .
{ ?N3TableModel a java:deductions-runtime-swing-N3TableModel
} => {
?N3TableModel javam:setTripleStore ( eg:STORAGE ) .
java:eulergui-gui-view-N3SourceTableView javam:displayTableFrame ( ?N3TableModel ) .
and
{ ?PE a foaf:Person . ?PE log:uri ?URI } => { eg:N3TableModel javam:add ( ?URI ) } .
Alas, the second is firing before the first ! So the N3TableModel is not ready when it gets the add() method call .
Another trouble is that the Java type of eg:STORAGE is not known to Drools, because currently EG generates:
rule "table_data.n3 0"
when
$N3TableModel_reference : deductions.runtime.swing.N3TableModel()
Assignment( $N3TableModel : name, reference == $N3TableModel_reference )
// it is a Java variable, but type is unknown:
Assignment( name == "<http://eulergui.sourceforge.net/engine.owl#STORAGE>", $STORAGE_reference : reference )
then
Triple newTriple;
TripleResult newTripleResult;
( ( deductions.runtime.swing.N3TableModel ) $N3TableModel_reference ) . setTripleStore( ( $STORAGE_reference ) );
eulergui.gui.view.N3SourceTableView . displayTableFrame( ( deductions.runtime.swing.N3TableModel ) $N3TableModel_reference );
end
Under the hood, this DRL rule tries to collect Assignment objects matching URI arguments:
rule "DeferredMethodCall" when $DMC : DeferredMethodCall( $S : subject, $OO : objects ) $A : Assignment( name == $S ) $ARGS_OBJ : ArrayList() from collect ( Assignment( name memberOf $OO ) ) then /* for each string in objects, assign() checks if it's a literal, or if it * exists a corresponding Assignment in the $ARGS_OBJ list; * if so, it performs the method call and return true. */ if( $DMC.assign( $A, $ARGS_OBJ ) ) { // retract( $DMC ); } end
Possible solutions:
For point 3 , this is used:
eg:N3TableModel a java:deductions-runtime-swing-N3TableModel ; javam:setTripleStore ( eg:STORAGE ) . java:eulergui-gui-view-N3ouside of ruleSourceTableView javam:displayTableFrame ( eg:N3TableModel ) .
The call stack when DeferredMethodCall infrastructure class is trying to call setTripleStore :
Density of materials
http://www.simetric.co.uk/si_materials.htm
(:patient035 dco:Female) fl:mu 1. (:patient035 dco:Male) fl:mu 0.
cd ~/src/eulersharp/trunk/2004/02swap/testCases/ eye example001P.n3 example002P.n3 rpo-rules.n3 --nope --query example003Q.n3
https://github.com/Attempto
https://github.com/AceWiki/AceWiki
<jmvanel> working on the roadmap
<jmvanel> the pres. in Rennes reminded me that the use of an OWL for inference in EG is fragile
<lcpvrr> not a good news
<lcpvrr> may be some enhancement to add
<rszeno> is a good new because is a goal to fix it, :)
<rszeno> discovering a problem imo is a good new
<jmvanel> not a news if you tested a bit this, with an ontogy having real class definitions, not "structural" ontologies like FOAF
<jmvanel> there are 2 ways, as you know , to use class definitions from OWL:
<jmvanel> 1. the direct translation into N3 rules
<jmvanel> 2. keep the OWL as N3 triples, and use the RDFS and OWL rules of Jos
<jmvanel> both are poorly tested and documented
<rszeno> 1 is not always possible, imo
<jmvanel> anyway we target OWL 2 RL
<jmvanel> starting from ACE, it would be nice to generate directly N3 rules;
<jmvanel> however I think Kaarel could do this
<jmvanel> translate ace , or rather DRS into N3 rules
<jmvanel> they already have translations in OWL, SWRL, TPTP , etc
<rszeno> if i'm not wrong ace can use plugins
<jmvanel> probably
<jmvanel> it's a good code base
<rszeno> euler too
<jmvanel> plus currently Norbert ( emeritus professor ) does an ACE reasonner called RACE
COMMIT
- FEATURE: typing enter in field for Euler and CWM arguments launches the inference engine ( also doc. updated )
- remove unused class RunActionYap
This creates an infinite loop in Euler and Drools/N3:
{ ?X ?P ?V . } => { ?X a [ rdf:type owl:Restriction ; owl:onProperty ?P . ] }.
[23:09:20 CEST] michel Kern: http://www.visualdataweb.org/relfinder/relfinder.php
[23:12:07 CEST] michel Kern: http://www.thinkgraph.com/
[23:27:12 CEST] michel Kern: http://processing.org/
[23:30:42 CEST] michel Kern: http://code.google.com/p/pharduinop/
[23:32:21 CEST] michel Kern: http://livre.fnac.com/a1977055/Beatrice-Milletre-Petit-guide-a-l-usage-des-gens-intelligents-qui-ne-se-trouvent-pas-tres-doues
[23:38:45 CEST] michel Kern: http://www.terimakasi.com/d/cms/node/126
[23:40:41 CEST] michel Kern: http://wiring.org.co/
[23:41:40 CEST] michel Kern: http://fr.wikipedia.org/wiki/Atmel
http://www.w3.org/2006/03/wn/wn20/instances/synset-phonograph_record-noun-1.rdf
http://www.google.fr/events/dataconnexions2012/
[ANN] Apache Jena 2.7.1 and Jena Fuseki 0.2.2 releases.
Erreur pendant Engine N3 run ERROR in running Drools Inference Engine Cause: Exception executing consequence for rule "DeferredMethodCall" in infrastructure_rules: java.lang.ClassCastException: unif.TripleStoreDrools cannot be cast to java.lang.String # DeferredMethodCall>> <http://eulergui.sourceforge.net/engine.owl#N3TableModel> <http://java.sun.com/method#setTripleStore> [unif.TripleStoreDrools@7e534778]
21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: java.lang.NullPointerException 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.drools_engine.ParserLink.visitAllURI(ParserLink.java:718) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:290) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:91) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.project.Project.translateToDrools(Project.java:993) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.gui.controller.N3ConversionRefesher.updateKB(N3ConversionRefesher.java:173) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.gui.controller.N3ConversionRefesher.n3SourceChanged(N3ConversionRefesher.java:49) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.project.ProjectChangeSupport.fireN3SourceChanged(ProjectChangeSupport.java:153) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.project.Project.fireN3SourceChanged(Project.java:1434) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.infrastructure.URIModificationChecker$1.doInBackground(URIModificationChecker.java:98) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at eulergui.infrastructure.URIModificationChecker$1.doInBackground(URIModificationChecker.java:94) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at javax.swing.SwingWorker$1.call(SwingWorker.java:296) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at java.util.concurrent.FutureTask.run(FutureTask.java:166) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at javax.swing.SwingWorker.run(SwingWorker.java:335) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 21:38:22 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: at java.lang.Thread.run(Thread.java:722)
http://sketchup.google.com/
https://plus.google.com/101027278427738113449/posts
COMMIT
FIX BasicRuntimeTest.testInferenceString() : with recent modifs, some N3 string literals have """ instead of " , which not optimal but tolerable
:GUIKBAdapter javap:storage _:storage .
should be interpreted as:
storage = GUIKBAdapter.getStorage();
ava.lang.NullPointerException at eulergui.inference.drools.impl.DeferredMethodCall.doPperformMethodCall(DeferredMethodCall.java:110) at eulergui.inference.drools.impl.N3JavaMappingBuiltin.acceptList(N3JavaMappingBuiltin.java:1133) at eulergui.inference.drools.impl.DroolsTripleHandler.acceptList(DroolsTripleHandler.java:190) at eulergui.drools_engine.ParserLink.visitAllURI(ParserLink.java:681) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:290) at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:262) at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:91) at eulergui.project.Project.doTranslateN32Drools(Project.java:948) at eulergui.project.Project.translateN32Drools(Project.java:899) at eulergui.project.Project.prepareDrools(Project.java:877) at eulergui.project.Project.doRunDrools(Project.java:831) at eulergui.project.Project.runDroolsTriples(Project.java:782) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48)
COMMIT
Pave the way to dynamic filling of N3TableModel ( examples/table_app.n3p )
- TripleStoreDrools: in search* methods wrap uri argument as As N3 URI
- add TripleStoreNull ( apply Null design pattern to TripleStore )
- add interface ITripleJavaStore extends ITripleStoreRETE
http://www.w3.org/2005/04/fresnel-info/manual/
<jmvanel> but only 1210 with eulergui n3 rule
<rszeno> aprox 860
<rszeno> i mean this are realy connected direct or indirect to eg
<jmvanel> at page 14 in google results in found this thesis : http://ftp.heanet.ie/disk1/sourceforge/r/project/rr/rrztf/Docs/ZainabAlmugbelMCSThesis.pdf
<jmvanel> they cite one of my pages :)
on ohloh.net : I'm the founder and main developer .
Also I provide consulting and development services for the framework, rule based development, semantice web, and more.
------------
http://swapoff.org/devtodo.html
http://ontorule-project.eu/deliverables.html
https://github.com/Attempto/APE/blob/master/utils/owlswrl/README.md
Video : Zed A. Shaw - The Web Will Die When OOP Dies
contact_table
In case of ACE View the surface forms that correspond to the IRI are expected to be defined via OWL entity annotation properties. (See the documentation here: http://attempto.ifi.uzh.ch/site/docs/owl_to_ace.html) There is no separately loadable lexicon, i.e. both the axioms and the entity annotations need to be defined in the OWL files. So, in order to control the verbalization you need to add these annotations.
ACE->OWL/SWRL cannot add them because it only sees the DRS and not the lexicon that was used in the creation of the DRS.
> I wonder if ACEWiki has a way to load a lexicon , and I think I saw that.
AceWiki takes the lexicon information form the plain text files in the
data-directory, where there is a file for each word, e.g.
type:trverb
words:contains;contain;contained by;
| If something X is a <1,0> something Y then Y <2,0> X .
| If X <2,0> Y then X is a <1,0> Y .
To "load" a lexicon, just create such files (with just the first 2
lines in each file) and restart AceWiki.
Norbert points that it's not very good english anyway and gives this humanly equivalent sentence :
% ape.exe -text ' Every person who has a n:homepage and a current project is an interesting contact.' -solo drspp [] [A,B,C,D,E] object(A,person,countable,na,eq,1)-1/2 object(B,homepage,countable,na,eq,1)-1/8 has_part(E,B)-1/ predicate(C,have,A,E)-1/4 object(D,project,countable,na,eq,1)-1/12 property(D,current,pos)-1/11 has_part(E,D)-1/ object(E,na,countable,na,eq,2)-1/ => [F,G] object(F,contact,countable,na,eq,1)-1/16 property(F,interesting,pos)-1/15 predicate(G,be,A,F)-1/13
The object E and the two has_part(E,*) terms model the "and" direct object complement block .
But the sentence does pass in OWL, lots of this error:
repair="A reference to this noun either does not exist or is illegal."
Maybe it would be desirable to interpret the verb to have in a special way, in a post processing after APE.
Take this sentence:
Norbert has a currentProjet.
From the FOAF ontology, it is known that currentProjet is a property.
Then , the sentence could be rewritten in Turtle/N3 as (dropping the smeantically poor verb to have) :
Norbert currentProjet _:something.
which is equivalent to (ugly but correct) ACE:
Norbert v:currentProjet something.
The iri-term in the DRS lemma argument position is a convention that
is only supported by the ACE->OWL/SWRL converter. It is documented
here:
https://github.com/Attempto/APE/tree/master/utils/owlswrl
----------------------------------------------
Uploded new snapshots on sf.net : EG 1.11 , EG minimal
Recommended by Cyril :
http://alarmingdevelopment.org/?p=702
http://news.ycombinator.com/
2012/6/13 Kaarel Kaljurand <kaljurand@gmail.com>
....
i.e. ACE does not support namespaces in the sense that different names have to be used for different things.
In the context of ACE->OWL/SWRL you can have lexicon entries like:
pn_sg('Mary', iri('http://www.example.com/names#Mary'))
I tried this and it works.
I updated my lexicon this way :
cat foaf-lexicon.pl tv_finsg('has-homepage' ,iri('http://xmlns.com/foaf/0.1/#homepage') ). tv_infpl('have-homepage' ,iri('http://xmlns.com/foaf/0.1/#homepage') ). tv_finsg('has-current-project' ,iri('http://xmlns.com/foaf/0.1/#currentProject') ). tv_infpl('have-current-project' ,iri('http://xmlns.com/foaf/0.1/#currentProject') ). noun_sg( 'person', iri('http://xmlns.com/foaf/0.1/#Person'), neutr ).
( BTW there must be a better way to write this Prolog, by avoiding pasting the FOAF prefix at every line, and do a string concatenation ).
BTW the iri/1 predicate should be indicated in the doc.
Then I rerun APE :
% ape.exe -uri http://eulergui.sf.net/contact.owl -ulexfile foaf-lexicon.pl -text 'If P is a person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlxml > interesting-contact2.owl
and now the result is exactly as expected :
<Ontology xml:base="http://www.w3.org/2002/07/owl#" xmlns="http://www.w3.org/2002/07/owl#" ontologyIRI="http://eulergui.sf.net/contact.owl"> <SubClassOf> <ObjectIntersectionOf> <ObjectIntersectionOf> <Class IRI="http://xmlns.com/foaf/0.1/#Person"/> <ObjectSomeValuesFrom> <ObjectProperty IRI="http://xmlns.com/foaf/0.1/#homepage"/> <Class IRI="http://www.w3.org/2002/07/owl#Thing"/> </ObjectSomeValuesFrom> </ObjectIntersectionOf> <ObjectSomeValuesFrom> <ObjectProperty IRI="http://xmlns.com/foaf/0.1/#currentProject"/> <Class IRI="http://www.w3.org/2002/07/owl#Thing"/> </ObjectSomeValuesFrom> </ObjectIntersectionOf> <Class IRI="http://eulergui.sf.net/contact.owl#interesting-contact"/> </SubClassOf> </Ontology>
But ... there is a but ...
If load the resulting OWL/XML file into Protégé + ACE View 1.3.1, I found no way to load my lexicon ( and I looked the doc. ) .
Hence the paraphrases produced are bad .
Moreover , the Lexicon view table is not editable.
I wonder if ACEWiki has a way to load a lexicon , and I think I saw that.
I took the ATTEMPTO example of yesterday :
(Person and (homepage some Thing)) and (currentProject some Thing) SubClassOf interesting-contact
<Ontology
xml:base="http://www.w3.org/2002/07/owl#"
xmlns="http://www.w3.org/2002/07/owl#"
ontologyIRI="http://xmlns.com/foaf/0.1/">
<SubClassOf>
<ObjectIntersectionOf>
<ObjectIntersectionOf>
<Class IRI="http://xmlns.com/foaf/0.1/#Person"/>
<ObjectSomeValuesFrom>
<ObjectProperty IRI="http://xmlns.com/foaf/0.1/#homepage"/>
<Class IRI="http://www.w3.org/2002/07/owl#Thing"/>
</ObjectSomeValuesFrom>
</ObjectIntersectionOf>
<ObjectSomeValuesFrom>
<ObjectProperty IRI="http://xmlns.com/foaf/0.1/#currentProject"/>
<Class IRI="http://www.w3.org/2002/07/owl#Thing"/>
</ObjectSomeValuesFrom>
</ObjectIntersectionOf>
<Class IRI="http://eulergui.sf.net/contact.owl#interesting-contact"/>
</SubClassOf>
</Ontology>
In fact this is an issue with OWL API and/or Jena. In the N3 translation interesting-contact and homepage are completely missing :
@prefix : <http://www.w3.org/2002/07/owl#> . [] <IRI> "http://xmlns.com/foaf/0.1/#homepage" . [] a :Ontology ; :SubClassOf [ a :ObjectIntersectionOf ; :ObjectIntersectionOf [ a :Class ; <IRI> "http://xmlns.com/foaf/0.1/#Person" ] ; :ObjectSomeValuesFrom [ a :ObjectProperty ; <IRI> "http://xmlns.com/foaf/0.1/#currentProject" ] ] ; <ontologyIRI> "http://xmlns.com/foaf/0.1/" . [] <IRI> "http://www.w3.org/2002/07/owl#Thing" .
I upgraded OWL API to 3.3 , and no better ! :(
OWL API Maven artefacts are on Sonatype repo http://oss.sonatype.org/content/groups/public/
I also updated Pellet on my mvn repo.
I got an indirect contact here : http://www.automatedbusinesslogic.com/faq
Introducing the Knowledge Graph 'Google's) : not a single reference to Semantic Web :(
http://www.youtube.com/watch?v=mmQl6VGvX-c&feature=youtu.be
Des fonctionnalités à l'architecture avec le cadriciel EulerGUI
A customer with a foreign adress is a foreign customer.
If last contact-event is long-ago then the application proposes a new contact-event.
Every customer is a foaf_Person
???
?P a foaf:Person ; foaf:homepage ?S ; foaf:currentProject ?CP .
Si P est une foaf:Person qui a une foaf:homepage S et un foaf:currentProject alors P est un contact-intéressant.
If P is a foaf:Person with a foaf:homepage and a foaf:CurrentProject then P is an interesting-contact . :::: allmost !
ape.exe -text 'If P is a n:foaf-Person with a n:foaf-homepage and a n:foaf-CurrentProject then P is an n:interesting-contact .' -solo paraphrase If something X1 is a n:foaf-Person with a n:foaf-homepage and a n:foaf-CurrentProject then X1 is an n:interesting-contact .
Alas the OWL output is broken. See more details with DRS output :
% ape.exe -text 'If P is a n:foaf-Person with a n:foaf-homepage and a n:foaf-CurrentProject then P is an n:interesting-contact .' -solo drspp [] [A,B,C,D,E,F] object(A,something,dom,na,na,na)-1/2 object(B,foaf-Person,countable,na,eq,1)-1/7 object(C,foaf-homepage,countable,na,eq,1)-1/12 has_part(F,C)-1/ predicate(D,be,A,B)-1/3 modifier_pp(D,with,F)-1/8 object(E,foaf-CurrentProject,countable,na,eq,1)-1/17 has_part(F,E)-1/ object(F,na,countable,na,eq,2)-1/ => [G,H] object(G,interesting-contact,countable,na,eq,1)-1/24 predicate(H,be,A,G)-1/20
Now I should reformulate the rule with FOAF vocab' :
ape.exe -text 'If P is a n:foaf-Person that v:foaf-homepage something and v:foaf-CurrentProject something then P is an n:interesting-contact .' -solo paraphrase
This looks unnatural because OWL properties in ACE must necessarily be verbs. Anyways this gives the desired meaning in OWL :
% ape.exe -text 'If P is a n:foaf-Person that v:foaf-homepage something and v:foaf-currentProject something then P is an n:interesting-contact .' -solo owlfsspp Prefix(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>) Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test> SubClassOf( ObjectIntersectionOf( ObjectIntersectionOf( :foaf-Person ObjectSomeValuesFrom( :foaf-homepage owl:Thing ) ) ObjectSomeValuesFrom( :foaf-currentProject owl:Thing ) ) :interesting-contact ) )
I could define an ad-hoc lexicon in ACE for FOAF that would make such sentence more natural.
http://attempto.ifi.uzh.ch/site/docs/ace_lexicon.html , paragraph "2.9 Transitive verbs"
tv_finsg(ThirdSgForm, LogicalSymbol). tv_infpl(InfForm, LogicalSymbol).
So for FOAF :
tv_finsg('has-homepage', 'foaf-homepage'). tv_infpl('have-homepage', 'foaf-homepage'). tv_finsg('has-current-project', 'foaf-currentProject'). tv_infpl('have-current-project', 'foaf-currentProject').
I put this in file foaf-lexicon.pl
Now the same sentence using the new verbs:
ape.exe -ulexfile foaf-lexicon.pl -text 'If P is a n:foaf-Person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlfsspp Prefix(:=<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test#>) Ontology(<http://attempto.ifi.uzh.ch/ontologies/owlswrl/test> SubClassOf( ObjectIntersectionOf( ObjectIntersectionOf( :foaf-Person ObjectSomeValuesFrom( :foaf-homepage owl:Thing ) ) ObjectSomeValuesFrom( :foaf-currentProject owl:Thing ) ) :interesting-contact ) )
This is almost the OWL we want , except the issue of the prefix for FOAF .
If we use the -uri argument , we can have the desired FOAF prefix, but there is just one possible prefix :( , so the prefix for interesting-contact , which is a new concept , appears also in FOAF namespace :
% ape.exe -uri http://xmlns.com/foaf/0.1/ -ulexfile foaf-lexicon.pl -text 'If P is a n:Person that has-homepage something and has-current-project something then P is an n:interesting-contact .' -solo owlfsspp Prefix(:=<http://xmlns.com/foaf/0.1/#>) Ontology(<http://xmlns.com/foaf/0.1/> SubClassOf( ObjectIntersectionOf( ObjectIntersectionOf( :Person ObjectSomeValuesFrom( :homepage owl:Thing ) ) ObjectSomeValuesFrom( :currentProject owl:Thing ) ) :interesting-contact ) )
ape.exe -uri http://eulergui.sf.net/contact.owl -prefix foaf: http://xmlns.com/foaf/0.1/ -ulexfile foaf-lexicon.pl -text 'If P is a n:foaf:Person that foaf:has-homepage something and foaf:has-current-project something then P is an n:interesting-contact .' -solo owlfssp
Note that the same lexicon would be used.
I don't care if the prefix separator is not : , as long that there is something.
Cyril: bonjour
trouvé la semaine dernière, un framework java de petite taille : http://jodd.org/
TODO:
this runs forever:
eulergui http://dbpedia.org/page/Music_genre
http://xmlns.com/foaf/spec/
http://sort-of.crabdance.com/deductions-software.com/
http://www.jedit.org/users-guide/macro-tips.html
COMMIT
add AddURIToProjectAction in jEdit editor
* new entry "eulergui-add-uri-to-project" in right click menu in jEdit editor
* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props
TODO : documentation of AddURIToProjectAction, LaunchBrowserURIAction
TESTED with abbrevated FOAF URI with http://jmvanel.free.fr/jmv.rdf
Mail on the EG list:
There is a new feature in EulerGUI .
When one is in the N3 editor (jEdit) , when right clicking on an N3 (RDF) resource, there is a new menu item "eulergui-launch-uri" .
This menu item launches the default (platform) Web Browser on the URI corresponding to the N3 term at caret or cursor position.
It was TESTED with unabrevated FOAF URI .
I works also with N3 abbreviated resources like foaf:PersonalProfileDocument .
For testing you can open my FOAF Personal Profile :
http://jmvanel.free.fr/jmv.rdf
There is a snapshot of EulerGUI minimal: Download: http://sourceforge.net/projects/eulergui/files/eulergui/1.11/
Implementation notes:
* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props
( alternative at doing a regular jEdit plugin, as I don't know how to embed my plugin in the EulerGUI unique jar )
* TODO : documentation, DownloadURIAction like LaunchBrowserURIAction
Twitted !
Enjoy !
----------------------
Twitt : https://twitter.com/jmvanel/status/211784092428140546
New feature #EulerGUI minimal: Launch Web Browser on N3 term in editor right click menu "eulergui-launch-uri"
Download: http://sourceforge.net/projects/eulergui/files/eulergui/1.11/
http://t.co/Lwr0NOgL
http://www.w3.org/2000/10/swap/log#
COMMIT
add LaunchBrowserURIAction in jEdit editor
* new entry "eulergui-launch-uri" in right click menu in jEdit editor
* added in src/main/resources/org/gjt/sp/jedit : actions.xml , jedit_gui.props
( alternative at doing a regular jEdit plugin, as I don't know how to embed my plugin in the EulerGUI unique jar )
TODO : documentation, DownloadURIAction like LaunchBrowserURIAction
TESTED with unabbrevated FOAF URI ( should work also with N3 abbreviated )
writing jEdit plugins:
http://www.jedit.org/users-guide/writing-plugins-part.html
Thread [AWT-EventQueue-0] (Suspended) EnhancedMenuItem.<init>(String, String, ActionContext) line: 60 GUIUtilities._loadMenuItem(String, ActionContext, boolean) line: 1897 GUIUtilities.loadMenuItem(ActionContext, String, boolean) line: 447 GUIUtilities.loadPopupMenu(ActionContext, String, JEditTextArea, MouseEvent) line: 354 GUIUtilities.loadPopupMenu(String, JEditTextArea, MouseEvent) line: 298 JEditTextArea.createPopupMenu(MouseEvent) line: 606 JEditTextArea.handlePopupTrigger(MouseEvent) line: 583 MouseHandler.mousePressed(MouseEvent) line: 88 AWTEventMulticaster.mousePressed(MouseEvent) line: 279 TextAreaPainter(Component).processMouseEvent(MouseEvent) line: 6501 TextAreaPainter(JComponent).processMouseEvent(MouseEvent) line: 3321 TextAreaPainter(Component).processEvent(AWTEvent) line: 6269 TextAreaPainter(Container).processEvent(AWTEvent) line: 2229 TextAreaPainter(Component).dispatchEventImpl(AWTEvent) line: 4860 TextAreaPainter(Container).dispatchEventImpl(AWTEvent) line: 2287 TextAreaPainter(Component).dispatchEvent(AWTEvent) line: 4686 LightweightDispatcher.retargetMouseEvent(Component, int, MouseEvent) line: 4832 LightweightDispatcher.processMouseEvent(MouseEvent) line: 4489 LightweightDispatcher.dispatchEvent(AWTEvent) line: 4422 View(Container).dispatchEventImpl(AWTEvent) line: 2273 View(Window).dispatchEventImpl(AWTEvent) line: 2713 View(Component).dispatchEvent(AWTEvent) line: 4686 EventQueue.dispatchEventImpl(AWTEvent, Object) line: 707 EventQueue.access$000(EventQueue, AWTEvent, Object) line: 101 EventQueue$3.run() line: 666 EventQueue$3.run() line: 664 AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method] ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76 ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext) line: 87 EventQueue$4.run() line: 680 EventQueue$4.run() line: 678 AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method] ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76 EventQueue.dispatchEvent(AWTEvent) line: 677 EventDispatchThread.pumpOneEventForFilters(int) line: 211 EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 128 EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 117 EventDispatchThread.pumpEvents(int, Conditional) line: 113 EventDispatchThread.pumpEvents(Conditional) line: 105 EventDispatchThread.run() line: 90
A game in PHP by Arié http://www.designpattern.fr
Reading "Collective Intelligence in Action" , by Satnam Alag
Finding the list of named graphs
CONSTRUCT { ?g ?pg ?vg } WHERE { GRAPH ?g { ?X ?P ?V } ?g ?pg ?vg }
This does only return empty result ofr the usual servers, which shows that no metadata is associated to graphs in these servers, contrary to usage suggested by the spec (http://www.w3.org/TR/rdf-sparql-query/#namedAndDefaultGraph).
SELECT DISTINCT ?g WHERE { GRAPH ?g { ?s ?p ?o } }
For DBPedia, this gives rather quickly :
http://www.openlinksw.com/schemas/virtrdf# b3sonto urn:rules.skos facets dbprdf-label b3sifp http://dbpedia.org/void/ http://www.w3.org/2002/07/owl# http://dbpedia.org http://dbpedia.org/resource/classes/opencyc-readable# http://dbpedia.org/resource/classes/umbel# http://dbpedia.org/resource/classes/yago# http://www.ontologyportal.org/WordNet# http://dbpedia.org/resource/classes/opencyc# http://dbpedia.org/resource/classes# http://opengraphprotocol.org/schema/ http://www.ontologyportal.org/SUMO# http://www.dcs.shef.ac.uk/~mrowe/ontologies/sism.rdf http://dbpedia.org/virt_curi http://dbpedia.org/schema/property_rules# http://dbpedia.org/sparql virtrdf-label urn:sumo:fao:mappings:data http://aims.fao.org/aos/geopolitical.owl http://www4.wiwiss.fu-berlin.de/dbpedia/links/dbpedia_links.zip
When some triples are in a named graph, , DBPedia Virtuoso server returns the same thing if it is queried as GRAPH, or not :
select ?P ?V WHERE { GRAPH ?G { <http://dbpedia.org/void/PeopleFromTorontoStat> ?P ?V } }
or:
select ?P ?V WHERE { <http://dbpedia.org/void/PeopleFromTorontoStat> ?P ?V }
These triples are in the graph <http://dbpedia.org/void/> .
http://repmus.ircam.fr/antescofo
http://en.wikipedia.org/wiki/PureData
http://en.wikipedia.org/wiki/Antescofo
After reading the doc. :
jena.apache.org .. getting-started-with-fuseki
I start Fuseki server this way, reusing the database directory that was made by the EulerGUI test :
./fuseki-server --update --loc=/home/jmv/.eulergui/TDBDatabases/Dataset1 /ds
Then my data is available like this :
http://localhost:3030/ds/query?query=select+*+where+%7B+%3FX+%3FP+%3FV+%7D&output=text
----------------------------------------------------------------------------------------------------------------------------------- | X | P | V | =================================================================================================================================== | <http://example.com#DiamondAge> | <http://example.com#writeBy> | "<http://example.com#NealStephenson>" | | <http://example.com#DiamondAge> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>" | | <http://example.com#Neuromancer> | <http://example.com#writeBy> | "<http://example.com#WilliamGibson>" | | <http://example.com#Neuromancer> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>" | | <http://example.com#NealStephenson> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#scifiWriter>" | | <http://example.com#MazeOfDeath> | <http://example.com#writeBy> | "<http://example.com#PhilipKDick>" | | <http://example.com#MazeOfDeath> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>" | | <http://example.com#WilliamGibson> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#scifiWriter>" | | <http://example.com#PhilipKDick> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#scifiWriter>" | | <http://example.com#PlayerOfGames> | <http://example.com#writeBy> | "<http://example.com#IainBanks>" | | <http://example.com#PlayerOfGames> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>" | | <http://example.com#Ubik> | <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> | "<http://example.com#book>" | -----------------------------------------------------------------------------------------------------------------------------------
Chrome browser also accepts :
http://localhost:3030/ds/query?query= select * where { ?X ?P ?V } &output=text
I can also output RDF
http://localhost:3030/ds/query?query= construct { ?X ?P ?V } where { ?X ?P ?V } &output=xml
, but alas no turtle .
sudo aptitude install ruby ./s-put http://localhost:3030/ds/data default /home/jmv/src/eulergui/examples/po.n3 400 Unknown content type for triples: text/n3; charset=utf-8 http://localhost:3030/ds/data?default
<jmvanel> we must grunt on the list !
<rszeno> they drop n3
<jmvanel> :( alas
<rszeno> is politics
<jmvanel> or lack of time ?
<rszeno> "is not popular"
<jmvanel> not popular among those who only know RDF or JSON, or SEE the world through Protégé or TopBraid glasses
Anyway, RDF works :
./s-put http://localhost:3030/ds/data default /home/jmv/jmvanel.free.fr/jmv.rdf
But the preceding content has been removed . I guess s-post would add content. No! s-post also removes preceding content. Maybe there is something in the N3 configuration for set different behavior.
Now I must better understand named graphs.
This stores my FOAF profile in the named graph
http://eulergui.sf.net/graph
:
./s-put http://localhost:3030/ds/data http://eulergui.sf.net/graph /home/jmv/jmvanel.free.fr/jmv.rdf
The key phrase from the spec. about named graphs :
When querying a collection of graphs, the GRAPH keyword is used to match patterns against named graphs. GRAPH can provide an IRI to select one graph or use a variable which will range over the IRI of all the named graphs in the query's RDF dataset.
The use of GRAPH changes the active graph for matching graph patterns within that part of the query. Outside the use of GRAPH, matching is done using the default graph.
So, to retrieve the triples in this named graph, the simplest is :
NOTE: this does not work:
Idea: I could use the N3 shell to pilot the internal TDB database via its API.
This would work much like the eXist shell.
Pilot, that is : manage the named graphs, query, insert
Posted here : http://stackoverflow.com/questions/5332937/desktop-sparql-client-for-jena-tdb/10945860#10945860
http://stackoverflow.com/questions/5332937/desktop-sparql-client-for-jena-tdb
If you don't already expose your TDB dataset via HTTP try using Fuseki as it is ridiculously easy to use and can be run just on your local machine when necessary to make your TDB store available via HTTP for use with my tool e.g.
java -jar fuseki-0.1.0-server.jar --update --loc data /dataset
Please see the Fuseki wiki for more information on running Fuseki and the various options. In the above example Fuseki is run with SPARQL Update enabled (the --update flag), using the TDB dataset located in the directory data (the --loc data argument) and with a base URI of /dataset for the data.
Once running you can use my tool to connect to a Fuseki server by going to File > New Generic Store Manager, selecting the Fuseki tab from the dialog that appears, entering the URI http://localhost:3030/dataset/data and then clicking Connect to Fuseki
He's speaking of http://www.dotnetrdf.org/
COMMIT
- add TripleStoreTDB : Jena TDB RDF database backend TODO : test
- RuleBasedApplicationStarter : add accessor getTripleStoreRETE() ; refactor
- TableRowTransferHandler : enhancement for typed Java primitive types corresponding to N3 literals ( coming from player app)
- ApplicationKB : replace this.insert() by tripleStore.store()
<jmvanel> Tail-Call Optimization in Scala resembles Prolog's
ls -ltr target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar
-rw-r--r-- 1 jmv jmv 44278425 5 juin 21:41 target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar
After updating pellet-2.2.2.pom :
ls -ltr target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar
-rw-r--r-- 1 jmv jmv 43841811 5 juin 22:01 target/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar
Updated pellet-2.2.2.pom on EulerGUI Maven depot ; kept old in ~/src/eulergui/pellet-2.2.2.pom
migrate to Jena 2.9.0-incubating ; add Jena TDB , cf http://jena.apache.org/download/maven.html
TESTS pass
TODO : upgrade dependencies of Pellet towards Jena
- In N3TableModel.setValueInTableModel(ITriple triple) , put a Java Typed Value in the TableModel ( for Boolean, etc )
tried in N3TableModelTest
- add in N3JavaHelper ( for the musical player app )
/** the inverse function of the preceding
* @return the corresponding N3 value */
public static String getN3FromJavaTypedValue(Object value)
- add N3TermHelper.getN3FromJavaTypedValue(value)
COMMIT
FIX N3TableModel.addColumn() ; now @Deprecated ; should use addColumnURI
FIX previous FIX on N3TableModel
Committed revision 3090.
In tranlate :
EulerGUI is the best tool for the Semantic Web ==> no maggie is the best 2070 win
the lunch is on the table ==> no lunch is on the table
https://www.google.com/chrome?platform=linux&hl=fr
http://www.youtube.com/watch?v=TIuz36zF2pc
http://www.youtube.com/watch?v=_-6mhdjE1XE
COMMIT
Finish migration from TableModelFromN3 to N3TableModel
TODO leveraging on this , achieve real time updates: 1) when the N3 source is saved; 2) when result is updated because of relaunch
TODO : DBPedia connector : generated URI from name, select relevant properties according to class
http://dbpedia.org/resource/John_Lennon
dbpedia-owl:abstract
dbpedia-owl:background solo_singer
dbpedia-owl:birthDate 1940-10-09 (xsd:date)
dbpedia-owl:birthPlace dbpedia:Liverpool
dbpedia-owl:deathDate 1980-12-08 (xsd:date)
dbpedia-owl:genre
dbpedia-owl:instrument
dbpedia-owl:thumbnail
-------------------
http://dbpedia.org/page/Imagine_(song)
dbpprop:fromAlbum
dbpedia:Imagine_(album)
dbpprop:genre
dbpedia:Rock_music
dbpedia-owl:abstract
dbpedia-owl:writer
dbpprop:artist
dbpprop:length
dbpprop:label
<jmvanel> i was wondering if I could replace Unix shell with interpreted scala
<jmvanel> suppose that i want to call gedit on all *html files not
containing "Creative Commons"
<jmvanel> not trivial in sh
<jmvanel> first I need the equivalent of ls
<jmvanel> then getting the lines of a file
* asflierl (~asflierl@p5B0EA88A.dip.t-dialin.net) a rejoint #scala
<jmvanel> filtering the list I know how to do
* trepidacious est parti (Ping timeout: 250 seconds)
<jmvanel> then calling executable by Java System.exec()
<jamil_1> scala.sys.process._ may help you
<jamil_1> Process("ls").lines.filter(_.length < 5).toList
<jmvanel> thanks jamil_1 ;
Failed tests: testXMLOutputFromRDF(eulergui.gui.TestEulerGUIOutputs): kml.xml translated to RDF and back should be identical, Tests in error: test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical) testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..) testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..) testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://owldl.com/ontologies/dl-safe.owl#BadChild>"(..) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait AbstractButton with text "http://xmlns.com/foaf/spec/index.rdf" loaded Tests run: 183, Failures: 1, Errors: 9, Skipped: 0
<jmv_> the starting point for me was : what info is missing in a site like prefix.cc ?
<jmv_> and I thought that the topic is the main thing,
<jmv_> and dbpedia is a large reference for topics
<jmv_> otherwise an ontology is its own descrption
<jmv_> normally everything has rdfs:label and comments
<rszeno> but the ontologies from prefix.cc have already their own description, need only a classification mechanism
<rszeno> :)
<rszeno> we think in paralel, :)
<rszeno> yes, agree
<rszeno> agregating, skos, dbpedia, void, prefix.cc
<rszeno> anyway is hard to search
<jmv_> I'd like to have a SPARQL for ontologies ;
<jmv_> for example I could ask for ontologies having dct:subject :)
% ape -uri http://dbpedia.org/resource/ -text 'if X v:foaf_publications something then X is a n:Scientist.' -solo owlfsspp Ontology( http://dbpedia.org/resource/ ObjectPropertyDomain( ObjectProperty(:foaf_publications) Class(:Scientist) ) )
% ape -uri http://dbpedia.org/resource/ -text 'if X v:foaf_publications something then X is a n:Scientist.' -solo owlxml <?xml version="1.0" encoding="UTF-8"?> <Ontology xml:base="http://www.w3.org/2002/07/owl#" xmlns="http://www.w3.org/2002/07/owl#" ontologyIRI="http://dbpedia.org/resource/"> <ObjectPropertyDomain> <ObjectProperty IRI="http://dbpedia.org/resource/#foaf_publications"/> <Class IRI="http://dbpedia.org/resource/#Scientist"/> </ObjectPropertyDomain> </Ontology>
<jmv_> I just had an idea :
eg foaf:
<jmv_> would download the FOAF ontology, reusing prefix.cc
Here is the order of events:
#TRACE ( "FocusLostEvent" _:sk_JTEXT_FIELD_35 _:sk_FIELD_33 "gui:newValue" "JMV" ) #TRACE ( "gui:FocusLostEvent new_value" <http://deductions.sf.net/runtime#event1> _:sk_FIELD_33 " ?RESOURCE ?PREDICATE ?VALUE" " " _:sk_RESOURCE_37 <http://jmvanel.free.fr/ontology/examples/person#name> "JMV" ) #TRACE ( _:sk_RESOURCE_37 ":name" "JMV" "is a nice guy." ) #TRACE ( "generic_to_java-rules.n3 >>> implement gui:components" <http://jmvanel.free.fr/ontology/examples/person#FORM> _:sk_L_38 ) DeferredMethodCall.assign(): # DeferredMethodCall>> <http://jmvanel.free.fr/ontology/java_projection.owl#GUIKBAdapter> <http://java.sun.com/method#forceRepack> [<http://jmvanel.free.fr/ontology/examples/person#FORM>] ; calledObject deductions.runtime.GUIKBAdapter@4f8befbb , arguments [# Assign>> <http://jmvanel.free.fr/ontology/examples/person#FORM> ==> class JPanel : javax.swing.JPanel[,0,0,210x290,invalid,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] ] DeferredMethodCall.assign(): # DeferredMethodCall>> <http://jmvanel.free.fr/ontology/examples/person#FORM> <http://java.sun.com/method#add> [_:sk_L_38] ; calledObject javax.swing.JPanel[,0,0,210x290,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] , arguments [] DeferredMethodCall.assign() : argument not ready: _:sk_L_38 #TRACE ( "generic_to_java-rules.n3 " _:sk_L_38 " a java:javax-swing-JLabel" ) DeferredMethodCall.assign(): # DeferredMethodCall>> <http://jmvanel.free.fr/ontology/examples/person#FORM> <http://java.sun.com/method#add> [_:sk_L_38] ; calledObject javax.swing.JPanel[,0,0,210x290,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] , arguments [# Assign>> _:sk_L_38 ==> class JLabel : javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=He's a nice guy.,verticalAlignment=CENTER,verticalTextPosition=CENTER] ]
So, in this rule, triples in right hand side occur in reverse order:
{ # rule to translate the gui:components (containment) property in Java terms ?CONTAINER gui:components ?COMPONENT . } => { ?CONTAINER javam:add ( ?COMPONENT ) . javapr:GUIKBAdapter javam:forceRepack ( ?CONTAINER ) . _:d eg:trace ( "generic_to_java-rules.n3 >>> implement gui:components" ?CONTAINER ?COMPONENT ) . }.
Moreover, also in this rule, gui:components, (and hence its consequences) occur before ?L instantiation (which creates the "argument not ready" message in Deferred Method Call attempt) :
{ ?P per:name ?N . ?N log:equalTo "JMV" . } => { ?L a gengui:Label ; java:text "He's a nice guy." . per:FORM gui:components ?L . _:d eg:trace ( ?P ":name" ?N "is a nice guy." ). } .
So, again, in this other rule, triples in right hand side occur in reverse order.
Coincidence , or systematic ? ==> Question to ask on to Drools IRC or list .
COMMIT
FIX demo with Swing Componernt dynamically added : Window.pack() was not called late enough
demo person-app.n3p in the dynamic case where one enters "JMV" in input field
https://docs.google.com/spreadsheet/newform?ref=submitpage
COMMIT
fix windows generated by swing3.n3p rule base: now the newly appeared windows are packed after launching Drools
Glad because I fixed a small item that was apparent in the demo
When a missing N3 prefix was found and fixed, the file is saved automatically.
Revue : ???????????????????,
Nassim Douali a* MD., MSc, Jos De Roo b PhD, Jean Marc Vanel c, Marie-Christine Jaulent a PhD
a INSERM UMR_S 872, Eq 20, Medicine Faculty – Pierre and Marie Curie University (Paris 6), France. nassim.douali@crc.jussieu.fr
b Agfa HealthCare, Agfa HealthCare NV, Moutstraat 100, 9000 Gent, Belgium
c Déductions SARL, 27 ave. du Maine, 75015 Paris
Abstract
Semantic Web attracted much attention both for academic and industry research. It is not only considered as the next step of world wide web, but several Semantic Web applications are used in many areas like medicine. Ontologies and rules play a key role in knowledge representation and semantic data access. However, traditional logic becomes less suitable in a domain in which the concepts to be represented do not have a precise definition and relationship between concepts is fuzzy. In this paper we describe a new semantic web rules based on Case Based Fuzzy Cognitive Maps and notation3, and we describe also a new reasoning framework.
Keywords
Case Based Fuzzy Cognitive Maps, Fuzzy Logic, Decision Making, Notation3, Artificial Intelligence, Decision Support Systems, Knowledge Representation, Semantic web.
Medicine researchers, and other disciplines as well, are in need of a simple tool for reasoning and decision making services, which encompasses: design knowledge bases, import models and data from several sources, launch inference, analyze results. EulerGUI Minimal is the Semantic Web and rule designer swiss knife; it is flexible, Open Source and Multi-platform. The Minimal EulerGUI has exactly the same licence as Maximal (full) EulerGUI, that is LGPL. It is just a simpler version for Semantic Web users, with only one inference engine available: Euler EYE engine ( http://eulersharp.sourceforge.net/ ).
The project gather a growing Open Source, research and teaching community, itself aggregation of several communities: Open Data, ontology, rules engines, Controled Natural Languages.
The basic features are:
The more sophisticated features of EulerGUI minimal are:
When a reasoning engine or other tool has been designed by researchers, the laboratory team often needs to make a end user software application on top of the reasoning engine to disseminate the knowledge, and facilitate usage to non researchers and non-computer scientist. Generally, the developers attached to the laboratory must start a development from scratch for input form, input validation, visualization of results. Here is where the other "incarnation", full EulerGUI, comes to help. Beyond "pure" reasoning, it allows to also reason dynamically about software objects like graphics, network connections and databases. EulerGUI is both an Interactive Development Environment (IDE), and a framework used for making application. It can be used by developers in laboratories to make applications on top of the reasoning engine, either local or web. This is achieved by reusing the Knowledge Representation, in the form of an ontology, together with Decision Logic, supplemented by application logic, and a choice of generic visualizations like table, forms, tree, graphs. All this is interpreted in real time by a RETE Open Source Java rule engine, Drools. This resembles RAD (Rapid Application Development), but rather than being a disposable prototype, it is based on a reusable business model.
=>
Figure NNN : the generic form generator
Figure NNN : the EulerGUI framework architecture diagram
Show how to download and visualize an ontology by its prefix, like FOAF ( friend of a friend), make queries about this ontology, and edit an N3 file for one's personal profile.
Scenario of the demo here:
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/ideas-videos.html#L32
Download EulerGUI minimal : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L953
Tags: Semantic Web, RDF, Notation3, rule, FOAF, ontologies
REJECTED by youtube , because too long !
<jmvanel> to upload above 15 mn , i must give them my phone number !
<jmvanel> on the upload page , the first time.
---------------------------------------
<lcpvrr> we can imagine create a thid system starting from two other system
<rszeno> McCarthy 1978, then Guha
<lcpvrr> I do not know these guys
<rszeno> most of what is used now and in the past in ai and programming is more or less McCarthy contribution
<lcpvrr> I think now understand about context
<lcpvrr> thank you
<rszeno> :)
<rszeno> you are welcome, :)
<rszeno> i didn't know that Guha, Liskov and Moore was McCarthy students
<rszeno> now one more step, combinatory calculus, :)
<lcpvrr> why not :)
<rszeno> need lambda calculus before, are tied togheter
<rszeno> is simple to start with both
<rszeno> i ignored combinatory calculus a long time mainly because i didn't find something useful to do with it
<rszeno> i was convinced the only application is in study complexity but accidentaly i found that is not realy true
<lcpvrr> so not only to manage all possibles states ?
<rszeno> ?
<lcpvrr> so I do not understans you
<rszeno> what i said about cl?
<lcpvrr> the only application is in study complexity
<rszeno> ah,
<rszeno> can be used to simplify complex expression, to reduce them to the minimal form
<rszeno> are only two operators in cl, S and K and no variable
<lcpvrr> starting system state constraint/ivariant are express with expression (FOL for example)
<rszeno> yes
<rszeno> and this can be converted to a lambda expression
<rszeno> but lambda expression can be converted to cl
<rszeno> some expression can be reduced to a simple form or prove that there is no other simple form
<rszeno> then you can convert back to lambda and back to fol
<lcpvrr> what is cl ?
<rszeno> combinatory logic
<rszeno> a formalism
<lcpvrr> ok
<rszeno> most of this can be done automatic
<rszeno> i don't know about reduction, yet
<rszeno> look scary but is not
<rszeno> http://www.madore.org/~david/programs/unlambda/
<rszeno> not too good to start with it, :)
<rszeno> David Madore is french if i'm not wrong, :)
<rszeno> anyway i guess you prefere this then a math book, :)
<lcpvrr> I am not good in math
<rszeno> you can open djvu?
<lcpvrr> no
<rszeno> you don't have ubuntu installed?
<rszeno> i don't find a pdf version, only djvu
<rszeno> http://vew.0catch.com/books/Wolfengagen_CLP-2003-En.djvu
the 1rst ogv has resolution : 1280x752 .
the 2nd ogv is 1312x720 .
pitivi -i -a eulergui_mini_intro.ogg eulergui_sf_net.png eulergui_sf_net_eg_mini.png eg_minimal.webm-2.ogv eg_minimal.webm-3.ogv &
% pitivi eg_minimal.xptv ERROR [13082] [0x7fc70decd700] "<Pipeline at 0x3f46fd0>" pipeline mai 29 10:54:16 _handleErrorMessage: error from /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc (__main__.GstFileSrc): GStreamer a rencontré une erreur générale de flux. (gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc: streaming task paused, reason not-linked (-1)) (/usr/lib/pitivi/python/pitivi/pipeline.py:858) Traceback (most recent call last): File "/usr/lib/pitivi/python/pitivi/pipeline.py", line 901, in _binPadAddedCb stream = get_stream_for_caps(caps, pad) File "/usr/lib/pitivi/python/pitivi/stream.py", line 351, in get_stream_for_caps stream_type = get_pad_type(pad) File "/usr/lib/pitivi/python/pitivi/stream.py", line 321, in get_pad_type return caps[0].get_name().split('/', 1)[0] IndexError: list index out of range ERROR [13082] [0x7fc70decd700] "<Pipeline at 0x3f46fd0>" pipeline mai 29 10:54:16 _handleErrorMessage: error from /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc (__main__.GstFileSrc): GStreamer a rencontré une erreur générale de flux. (gstbasesrc.c(2625): gst_base_src_loop (): /GstPipeline:pipeline0/GstBin:bin0/GnlComposition:gnlcomposition1/GnlSource:gnlsource: FileSourceFactory12/GstBin:bin13/pitivi+elements+singledecodebin+SingleDecodeBin:pitivi+elements+singledecodebin+singledecodebin5/GstFileSrc:urisrc: streaming task paused, reason not-linked (-1)) (/usr/lib/pitivi/python/pitivi/pipeline.py:858)
<jmvanel> it's very time consuming to record video :(
<jmvanel> but I think it pays more than doing in-person presentations
pitivi -i -a eulergui_mini_intro.ogg eulergui_sf_net.png eulergui_sf_net_eg_mini.png eg_minimal.webm-2.ogv eg_minimal.webm-3.ogv &
# need to have all the EulerGUI classes, even if they are not used: mvn clean compile mvn -Dmaven.test.skip=true -f pom_minimal.xml install
svn propset svn:mime-type text/html *.html
/join #vivo
TODO EulerGUI (added in Manual )
HTTP response Code when not good for N3 sources
result statistics for N3 sources
extra HDMI display on laptop HP 4310S : slow mouse
https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1004958
http://www.jedit.org/index.php?page=devel
9th Extended Semantic Web Conference (ESWC 2012)
http://www.deri.ie/research/events/
http://graphite.ecs.soton.ac.uk/
http://alexsmirnov.wordpress.com/category/semantic-web/ Google Apps Web Services Hub
The "state of the art" in Java development is use Object Oriented domain model with relationnal databases.
These are 2 obsolete techniques, plus the worries of combining them #ORM .
The issue: use rule engine + SPARQL databases, as with #EULERGUI .
cd ~/src/jEdit_4.5.1/ ant build
Actually the URI to use with Jena ARQ and EulerGUI is :
http://www.lotico.com:3030/lotico/query
Trond Anders Sorvoja is the only other one having interest in business-rules-engine on Lotico/Meeetup .
I sent him a message through Facebook ( could do better since the members FOAF URI's are not on lotico database ) .
I try the all graph query in ARQ command line :
CONSTRUCT { ?s ?prop ?val . } WHERE { ?s ?prop ?val . }
I run ARQ with the EulerGUI jar like this:
java -cp $HOME/.m2/repository/eulergui/eulergui/1.11-SNAPSHOT/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar \ arq.remote --file all_graph.rq --service=http://www.lotico.com:3030/lotico/query > all_graph.lotico.rdf &
So far it runs, but the arq.remote keeps all in memory before writing to disk :( .
According to help, the arq.remote command has no way to save directly in Turtle/N3, but in fact it does by default .
In fact it ran in the time to write the mail to Marco, and the result has size : 204,112,341 bytes.
Then I try opening the lotico local dump with EulerGUI .
This time, I run EulerGUI like this:
eg all_graph.lotico.n3
Then I add this query to the project :
{ <http://www.lotico.com/resource/member_13080252> ?p ?o . } => { <http://www.lotico.com/resource/member_13080252> ?p ?o . } .
Yap Prolog takes 2.3 Gb and cannot release them until the result is passed to the Java side, which should not take a large amount of memory (because the result is small). But the fact is that the run lasts forever, and there is an error :
YAP 6.2.3 (i686-linux): Wed Feb 8 11:14:50 CET 2012 starting 68 [msec cputime] 79 [msec walltime] GET /home/jmv/src/eulergui/examples/all_graph.lotico.n3 SC=1794184 GET /home/jmv/src/eulergui/examples/all_graph.lotico-query.n3 SC=1 networking 73258 [msec cputime] 104512 [msec walltime] Exception in thread "Thread-8" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2367) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:130) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:114) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:415) at java.lang.StringBuilder.append(StringBuilder.java:132) at euler.Process.run(Process.java:90) at java.lang.Thread.run(Thread.java:722)
I should debug this .
So such a large case cannot run with EulerGUI (I've already done some adaptations for larges cases, but more are needed). Now I'll kill the run, and test with Euler directly:% date ; eye --nope all_graph.lotico.n3 --query all_graph.lotico-query.n3 > all_graph.lotico-result.n3 Id: euler.yap 5355 2012-05-23 22:07:32Z josd YAP 6.2.3 (i686-linux): Wed Feb 8 11:14:50 CET 2012 starting 52 [msec cputime] 60 [msec walltime] GET all_graph.lotico.n3 SC=1794184 GET all_graph.lotico-query.n3 SC=1 networking 72539 [msec cputime] 103797 [msec walltime] TC=44 TP=88 BC=0 BP=45 PM=0 CM=0 FM=0 AM=0 reasoning 4212 [msec cputime] 4824 [msec walltime]
which means that it takes 103 seconds to read the 207Mb file, and only 4 seconds to infer.
I also tested the N3 editor in EulerGUI (jEdit) on the large file. I does not open after several minutes, and the memory slowly increeses around 1.2Gb and the CPU at 100% . And it's in the AWT event thread, so the EulerGUI applicaiton is frozen. I killed it.
As the jEdit in EulerGUI is not the latest, I try with the latest jEdit 4.5.1 .
It displays a warning popup about the size , which recommends to disable syntax highlight, or just have local highlight. But even then, nothing appears in the editor for many minutes :( . I must report that to jEdit .
So, what is not surprising, Euler cannot compete with Jena Fuseki to query such a large data.
What is planned for EulerGUI is to add internal Fuseki storage, to be used for for big data, and persistence, see :
http://eulergui.sourceforge.net/documentation.html#L9989
Moreover, there are plans to leverage on an N3 rule base to generate SPARQL queries, see:
http://eulergui.sourceforge.net/backward_chaining_sparql.html
Trond Anders Sorvoja
cd ~/src/eulergui/examples/ java -cp $HOME/.m2/repository/eulergui/eulergui/1.11-SNAPSHOT/eulergui-1.11-SNAPSHOT-jar-with-dependencies.jar \ arq.remote --file lotico.rq --service=http://www.lotico.com:3030
https://bugs.launchpad.net/ubuntu/+source/xorg/+bug/1004958
http://www.lotico.com/browser/?uri=http://www.lotico.com/resource/member_13080252
http://fr.wikipedia.org/wiki/MetaPost
Nice work on Genifer NL GUI :
https://mail.google.com/mail/u/0/?shva=1#inbox/13789a6f5d7422a1
extending FOAF, or another well known ontology (GR ?)
-------------------------------------
when deactivating person-events.n3 in person-app.n3p :
JavaObjectsRetractionListener.retrieveJavaObjectFromName(): javax.swing.JPanel[,0,0,234x273,layout=java.awt.GridLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=] java.lang.IllegalArgumentException: argument type mismatch at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at eulergui.inference.drools.impl.JavaObjectsRetractionListener.invokeRemoveMethod(JavaObjectsRetractionListener.java:98) at eulergui.inference.drools.impl.JavaObjectsRetractionListener.objectRetracted(JavaObjectsRetractionListener.java:36) at org.drools.event.WorkingMemoryEventSupport.fireObjectRetracted(WorkingMemoryEventSupport.java:78)
FIXED warnings Resource leak: 'XXX' is never closed
Interesting discussion on KJena list :"Storing jena model to Non SQL Datastore"
I just answered to an old job message from Google .
http://agi-conf.org/2012/schedule/
http://semtechbizsf2012.semanticweb.com/
oem-laptop: ~/src/eulergui/ % mvn versions:display-dependency-updates ... [INFO] The following dependencies in Dependencies have newer versions: [INFO] com.thoughtworks.xstream:xstream ........................ 1.2 -> 1.4.2 [INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist [INFO] jline:jline ............................................... 1.0 -> 2.6
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/9/D/A/9DA5A8AB4375CDF8E783B740A8C81D12.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376) at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259) at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77) at eulergui.project.Project.translateN32Drools(Project.java:906) at eulergui.project.Project.prepareDrools(Project.java:878) at eulergui.project.Project.doRunDrools(Project.java:832) at eulergui.project.Project.runDroolsTriples(Project.java:783) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:17) at javax.swing.SwingWorker$1.call(SwingWorker.java:296) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) at java.util.concurrent.FutureTask.run(FutureTask.java:166) at javax.swing.SwingWorker.run(SwingWorker.java:335) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) at java.lang.Thread.run(Thread.java:722)
COMMIT
- found an error in pricing sample : pricing.n3 :
typename a owl:ObjectProperty;
should be:
typename a owl:DatatypeProperty;
- replacing princing with pricing
- accessing swing-rules via relative URI
http://en.isep.fr/academic-research/rdi
Sent mail to DCO team ( error in xmlns ).
http://www.debugit.eu/contact.html
Bug :
- ajouter une nouvelle propriété.
- remplir une cellule de cette propriété
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 26, Size: 26
at java.util.ArrayList.rangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at deductions.runtime.swing.EditCellListener.tableChanged(EditCellListener.java:37)
at javax.swing.table.AbstractTableModel.fireTableChanged(Unknown Source)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(Unknown Source)
at javax.swing.table.DefaultTableModel.setValueAt(Unknown Source)
at taxochronos.Playlist.addNewColumnToModel(Playlist.java:124)
at taxochronos.gui.PlayerGUI.addNewColumn(PlayerGUI.java:514)
at taxochronos.gui.AddPropertyUI$1.actionPerformed(AddPropertyUI.java:71)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
<jmv> will soon upload a new EulerGUI minimal
<jmv> a bit smaller - I had reports of failures of EG mini , but never any precision
# uncomment 1 line :
gvim src/main/java/**/EulerGUI.java
mvn -Dmaven.test.skip=true -f pom_minimal.xml package
java -jar target/eulergui_minimal-1.11-SNAPSHOT-jar-with-dependencies.jar
http://www.w3.org/2001/02pd/gv
UBUNTU_MENUPROXY= amaya &
COMMIT :
add to doc : Why use a Rule Engine? in Drools engine documentation ;
http://sourceforge.net/apps/mediawiki/vivo/index.php?title=Development
PHP Rules - A lightweight, forward-chaining inference engine based on the "Rule Archetype Pattern"
git clone git://github.com/Attempto/APE.git cd APE chmod u+x ./make_exe.sh sudo apt-get install swi-prolog ./make_exe.sh ./ape.exe
<jmvanel> it's not clean ... enough .
<jmvanel> found an error in pricing sample : pricing.n3 :
typename a owl:ObjectProperty; rdfs:domain ConsumerType; rdfs:range xsd:string.
<jmvanel> and it's by Luc
<jmvanel> should be:
typename a owl:DatatypeProperty; rdfs:domain ConsumerType; rdfs:range xsd:string.
<jmvanel> but that's interesting, as such errors could be checked by rules ,
<jmvanel> or maybe just by OWL ontology for OWL, plus generic rules for OWL
COMMIT
Indirect instantiation through variable containing Java type ( ?FEATURE )
missing feature was enabling deferred method calls with Java property results ( ?R ).
This allowed to simplify src/main/resources/eulergui/gui/controller/application-rules.n3
test suite PASSES!
{ ?GUI a java:n3_project-ProjectGUI . java:n3_project-ProjectGUI soft:hasResultFeature ?FEATURE . } => { ?Action a ?FEATURE ; javam:setProjectGUI( ?GUI ) . ?GUI javap:resultManagement ?R . ?R javam:addAction ( ?Action ) . }.
rule "application-rules.n3 2" when $GUI_reference : n3_project.ProjectGUI() Assignment( $GUI : name, reference == $GUI_reference ) n3_project.ProjectGUI( $R_reference : resultManagement , this == $GUI_reference ) $Triple_1 : Triple( subject == "<http://java.sun.com/class#n3_project-ProjectGUI>", predicate == "<http://deductions.sf.net/ontology/software_applications.owl.n3#hasResultFeature>", $FEATURE : object ) then Triple newTriple; TripleResult newTripleResult; String $Action = Triple.resource("Action") ; newTriple = new Triple( ); newTriple.setSubject( $Action ); newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() ); newTriple.setObject( $FEATURE ); insertLogical( newTriple ); Object $Action_reference = Class.forName( eulergui.util.N3TermHelper.makeClassName( Triple.unwrapN3URI( $FEATURE ) ) ) . newInstance(); ; insertLogical( new Assignment( $Action.toString(), $Action_reference )); insertLogical( $Action_reference ); DeferredMethodCall dpa_Action5 = new DeferredMethodCall(); dpa_Action5.setSubject($Action.toString() ); dpa_Action5.setPredicate( "<http://java.sun.com/method#setProjectGUI>" ); ArrayList argumentsList5 = new ArrayList(); argumentsList5.add( $GUI ); dpa_Action5.setObjects( argumentsList5 ); insertLogical( dpa_Action5 ); ( ( n3_project.ResultManagement ) $R_reference ) . addAction( ( ( Object ) $Action_reference ) ); end
Grave: Drools compile ERROR: Rule Compilation error : [Rule name='application-rules.n3 2']
application_rules_n3_1/Rule_application_rules_n3_2_582693992cd44414b4db57f66983f495.java (25:1980) : The method addAction(Action) in the type ResultManagement
is not applicable for the arguments (Object)
http://askubuntu.com/questions/70599/how-to-change-tooltip-background-color-in-unity
Install and open gnome-color-chooser.
Go to Specific → Tooltips and put black foreground over pale yellow background.
No need to restart for me. – ubuntudroid Apr 3 at 14:21
Albert Lejeune
http://www.mantech.uqam.ca/enseignants/fiche.php?id=51
URICacheImpl.getURITimeStamp(): http://nemo.nic.uoregon.edu/ontologies/NEMO.owl : java.net.SocketException: Trop de fichiers ouverts URICacheImpl.getURITimeStamp(): http://nemo.nic.uoregon.edu/ontologies/NEMO.owl : java.net.SocketException: Trop de fichiers ouverts URICacheImpl.getURITimeStamp(): http://nemo.nic.uoregon.edu/ontologies/NEMO.owl : java.net.UnknownHostException: nemo.nic.uoregon.edu
Could not load N3 source from URL http://nemo.nic.uoregon.edu/ontologies/NEMO.owl ERROR in reasoning with External Prolog: [--nope, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, /home/jmv/.eulergui/n3_cache/owl-subclass-assertions-to-rules.n3_6619285382926826495.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, /home/jmv/.eulergui/n3_cache/variableSubstitution.n3_4996882872687718712.n3, --wcache, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /home/jmv/.eulergui/n3_cache/swrl-n3-rules.n3_467287758364091539.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/owl-subclass-assertions-to-rules.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/variableSubstitution.n3, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rules.n3, /tmp/eg-5173904991530601087.n3, --query, http://deductions.svn.sourceforge.net/svnroot/deductions/n3_new/swrl-n3-rulesQ.n3] Cause: java.lang.RuntimeException: ** ERROR ** /tmp/eg-5173904991530601087.n3 ** invalid_document(after_line(275))
issue with Drools on owl-rules.n3 during translation :
oem-laptop: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/deductions/n3_nojs/ % 15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: at java.util.ArrayList.rangeCheck(ArrayList.java:604)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: at java.util.ArrayList.get(ArrayList.java:382)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: at eulergui.inference.drools.impl.LogBuiltins.acceptAntecedentSubjectList(LogBuiltins.java:214)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: at eulergui.inference.drools.impl.DroolsTripleHandler.acceptAntecedentSubjectList(DroolsTripleHandler.java:1251)
15:30:16 [SwingWorker-pool-4-thread-2] [error] SwingWorker-pool-4-thread-2: at eulergui.drools_engine.ParserLink.visitAllURI(ParserLink.java:749)
Caused by: org.drools.RuntimeDroolsException: pricing_n3_0.Rule_pricing_n3_0Eval0Invoker@1d02b098 : java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:119) at org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178) at org.drools.reteoo.JoinNode.updateSink(JoinNode.java:420) at org.drools.reteoo.EvalConditionNode.attach(EvalConditionNode.java:132) at org.drools.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:150) at org.drools.reteoo.builder.EvalBuilder.build(EvalBuilder.java:39) at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126) at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73) at org.drools.reteoo.builder.AccumulateBuilder.build(AccumulateBuilder.java:70) at org.drools.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:122) at org.drools.reteoo.builder.PatternBuilder.build(PatternBuilder.java:76) at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126) at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73) at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:152) at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:123) at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:110) at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:441) at org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:821) at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:555) at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:458) at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:465) at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:426) ... 18 more Caused by: java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List at pricing_n3_0.Rule_pricing_n3_0Eval0Invoker.evaluate(Unknown Source) at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:114) ... 39 more
<jmv_> RDFa 1.1 http://www.w3.org/News/2012#entry-9442
COMMIT
After Drools/N3 engine update, simplify EulerGUI configuration file :
src/main/resources/eulergui/gui/controller/application-rules.n3
TESTS : BasicRuntimeTest, TestDroolsQuery and TestGenericGuiGenerationInsertLogicalRefactorRules pass
test suite should pass
mvn -Dmaven.test.skip=true -f pom_minimal.xml install
Now there is a reduction of 12Mb at 31Mb :
-rw-r--r-- 1 jmv jmv 31442274 13 mai 10:03 /home/jmv/.m2/repository/eulergui/eulergui_minimal/1.11-SNAPSHOT/eulergui_minimal-1.11-SNAPSHOT-jar-with-dependencies.jar
I didn't use dependencies excludes :
http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html
Test:
:app :hasComponentClass java:javax-swing-JLabel . { :app :hasComponentClass ?COMP . } => { ?C a ?COMP ; javam:setText( "Hello!" ) . }.
Assert : a JLabel must be in the KB, with the right "text" property.
<jmv_> conan, I updated my pull request https://github.com/droolsjbpm/drools/pull/118
<jmv_> I should have done a special new branch , but It think it's good enough.
Trying to extract a generic mixed Java-N3 rule:
java:n3_project-ProjectGUI soft:hasFeature java:eulergui-gui-actions-ResultEditorAction . { ?GUI a java:n3_project-ProjectGUI ; javap:resultManagement ?R . java:n3_project-ProjectGUI soft:hasFeature ?FEATURE . } => { ?Action a ?FEATURE ; javam:setProjectGUI( ?GUI ) . ?R javam:addAction ( ?Action ) . }.
But there is something missing in the framework (N3->Drools translator ) :
Grave: Drools compile ERROR: Rule Compilation error : [Rule name='application-rules.n3 2'] application_rules_n3_1/Rule_application_rules_n3_2_8ea63c30d1004a678f4d3b2e2b0291be.java (22:1642) : $R cannot be resolved
The generated Drools :
rule "bbeuler_project.xml.0.n3 0"
when
$GUI_reference : n3_project.ProjectGUI()
Assignment( $GUI : name, reference == $GUI_reference )
n3_project.ProjectGUI( $R_reference : resultManagement , this == $GUI_reference )
$Triple_1 : Triple( subject == "<http://java.sun.com/class#n3_project-ProjectGUI>", predicate == "<http://deductions.sf.net/ontology/software_applications.owl.n3#hasFeature>", $FEATURE : object )
then
Triple newTriple;
TripleResult newTripleResult;
String $Action = Triple.resource("Action") ;
newTriple = new Triple( );
newTriple.setSubject( $Action );
newTriple.setPredicate( "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>".toString() );
newTriple.setObject( $FEATURE ); insertLogical( newTriple );
DeferredMethodCall dpa_Action5 = new DeferredMethodCall();
dpa_Action5.setSubject($Action.toString() );
dpa_Action5.setPredicate( "<http://java.sun.com/method#setProjectGUI>" );
ArrayList argumentsList5 = new ArrayList();
argumentsList5.add( $GUI );
dpa_Action5.setObjects( argumentsList5 );
insertLogical( dpa_Action5 );
DeferredMethodCall dpa_R6 = new DeferredMethodCall();
dpa_R6.setSubject($R.toString() );
dpa_R6.setPredicate( "<http://java.sun.com/method#addAction>" );
ArrayList argumentsList6 = new ArrayList();
argumentsList6.add( $Action );
dpa_R6.setObjects( argumentsList6 );
insertLogical( dpa_R6 );
end
The immediate cause is that, since all variables are bound in the method
call ?R javam:addAction ( ?Action )
, an immediate call is
tried.
The red line is the root cause : ?FEATURE variable has Java type
java:eulergui-gui-actions-ResultEditorAction
, but the
corresponding instantiation is not implemented.
One solution is to make a new ad-hoc builtin in the consequent :
} => {
?Action eg:javaInstantiation ?FEATURE ; javam:setProjectGUI( ?GUI ) .
?R javam:addAction ( ?FEATURE ) .
}.
Onother solution without ad-hoc stuff is add this rdfs:type triple in the antecedent :
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
java:n3_project-ProjectGUI soft:hasFeature ?FEATURE .
?FEATURE a java:java-lang-Class .
} => {
more satisfying, but needs more work to implement ! (both in antecedent and consequent ).
Npote that this rdfs:type triple could be added via a rule:
{ ?APP soft:hasFeature ?FEATURE .
} => {
?FEATURE a java:java-lang-Class .
} .
But there's yet another possiblity here . In the cponsequent, this triple is a sure sign that ?Action is a Java instance:
?Action javam:setProjectGUI( ?GUI ) .
In fact, it makes little sense to instatiate a Java object, and not making use of it.
So, the Java instantiation could be done at this point, reusing the identifier that was just created.
Voted up conan's video : http://www.dzone.com/links/build_pong_in_13_minutes_using_jboss_drools.html
Build a Graphical Adventure Game in 20 minutes using JBoss Drools : All Hail the Wumpus
http://www.youtube.com/watch?v=4CvjKqUOEzM
SWIG
https://sourceforge.net/projects/eulergui/files/eulergui/1.11/
EG 1.10 sur Drools, Protégé , ATTEMPTO
Added eulergui/src/test/java/eulergui/drools_engine/MiscTestJMV.java
Test with 5.4.0-CR1 :
svn update -r r3021 mvn eclipse:eclipse --no-plugin-updates --offline
Tests run: 181, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 6:21:24.064s [INFO] Finished at: Thu May 10 19:09:46 CEST 2012
http://stackoverflow.com/questions/101752/aborting-a-merge-in-git
Remove setMinimalFeatures() in
I begin to be suspicious with 5.5.0-SNAPSHOT , revert to 5.4.0.CR1
java.lang.InstantiationError: java.lang.CharSequenceat ConditionEvaluatorb092039c249f413690018d4aae5fc2cd.evaluate(Unknown Source)at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:167)at org.drools.rule.constraint.MvelConstraint.isAllowed(MvelConstraint.java:124)at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240)at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:337)at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:298)at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:888)at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847)at org.drools.integrationtests.MiscTest.testJMV3(MiscTest.java:11110)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:601)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)at org.junit.runners.ParentRunner.run(ParentRunner.java:300)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
After last correction by Mario F. , that was enough to make this work :
@prefix string: <http://www.w3.org/2000/10/swap/string#>. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . :s1 rdfs:label "papillon". { ?M rdfs:label ?L. ?L string:contains "pap". } => { :test :pass_contains0_res ?L . } .
--------------------------------------------------------------------
https://sourceforge.net/apps/trac/sourceforge/wiki/SVN%20adminrepo
http://en.wikipedia.org/wiki/IHTSDO
http://ihtsdo.org/fileadmin/user_upload/doc/
http://en.wikipedia.org/wiki/SNOMED_CT#Structure
N3DroolsEngineFacade.waitUpdateThreads() FINISHED
java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.lang.CharSequence
at ConditionEvaluator33a3076ed8ae4a52b58ab512fa2be595.evaluate(Unknown Source)
at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:167)
at org.drools.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:136)
at org.drools.common.DoubleBetaConstraints.isAllowedCachedLeft(DoubleBetaConstraints.java:168)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:96)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:98)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:71)
at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:98)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:196)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(SingleLeftTupleSinkAdapter.java:145)
at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:154)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:59)
at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:364)
at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235)
at org.drools.reteoo.EntryPointNode.assertQuery(EntryPointNode.java:146)
at org.drools.reteoo.ReteooWorkingMemory.getQueryResults(ReteooWorkingMemory.java:189)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.getQueryResults(N3DroolsEngineFacade.java:218)
at eulergui.project.Project.search(Project.java:1110)
at n3_project.SourceFilesView$1.actionPerformed(SourceFilesView.java:176)
When reading an ISO-8859-1 file (Latin 1) :
/home/jmv/src/cbfcm_euler/cbfcmKnow002.n3: The file could not be loaded correctly (some data might be lost) with the encoding "UTF-8". (java.nio.charset.MalformedInputException: Input length = 1) Try selecting a different encoding. It can be selected with the menu File->Reload with Encoding. If you want it to be done automatically, add the candidates into "List of fallback encodings" in Encodings pane of Global Options.
This is a strange file :
% file *now*3 cbfcmKnow002.n3: Non-ISO extended-ASCII English text, with very long lines, with CRLF line terminators
Minimal EulerGUI 1.11
This is the first release of the Minimal EulerGUI.
It has exactly the same licence as Maximal (full) EulerGUI, that is LGPL. It is just a simpler version for Semantic Web users, who are not interested in importing UML, XMI, XML, and Java framework for application building.
Only one inference engine is available: Euler EYE engine ( http://eulersharp.sourceforge.net/ ).
Main features:
- N3 editor: syntax coloring, tooltip with explanations about the resource under the mouse; HTTP connection to prefix.cc site for filling missing N3 prefixes; when an N3 file is modified on disk or Internet, it is re-parsed, and syntax errors are highlighted
- button to import from: N3/Turtle, RDF, OWL/XML, from local files or URL
- show tree view of OWL inferred class hierarchy using Pellet OWL reasoner
- action to add all refered ontologies (through N3 prefixes) to current project
- automatically loads the rule base for "Case Based Fuzzy Cognitive Maps" when the prefix fl: is referred ( for
http://eulersharp.sourceforge.net/2003/03swap/fl-rules# )
ERROR in running Drools Inference Engine
Cause:
java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.lang.CharSequence
Andy Seaborne andy@apache.org
18:39 (Il y a 46 minutes)
à jena-users
Jena is moving to be a top level project at Apache:
As part of this, the project infrastructure is moving to be under jena.apache.org
Unlike the move into the Apache incubator in the first place, much of this is handled by redirections.
== Website
The website will move to jena.apache.org, and a redirection from the incubator location will be left in-place.
== Mailing Lists
These will become
users@jena.apache.org
dev@jena.apache.org
commits@jena.apache.org
but redirections from the old incubator names are in place.
== svn
The code has been moved to
https://svn.apache.org/repos/asf/jena/
with the same layout as before. You can use 'svn switch' on working copies or check out a fresh copy.
e.g.
# All one line:
svn co https://svn.apache.org/repos/asf/jena/Jena2/Fuseki/trunk/ jena-fuseki
We are discussing a reorganistion of svn within the new area.
== Maven repositories
We already release under a group/artifact name which is org.apache.jena:... and this remains the same.
The version numbers of *new* code will drop the "-incubator" part. Previous releases are unchanged.
Andy
PS Personally I've checkout out fresh copies with:
svn co https://svn.apache.org/repos/asf/jena/Jena2/ARQ/trunk jena-arq svn co https://svn.apache.org/repos/asf/jena/Jena2/Fuseki/trunk jena-fuseki svn co https://svn.apache.org/repos/asf/jena/Jena2/IRI/trunk jena-iri svn co https://svn.apache.org/repos/asf/jena/Jena2/jena/trunk jena-core svn co https://svn.apache.org/repos/asf/jena/Jena2/JenaTop/trunk jena-top svn co https://svn.apache.org/repos/asf/jena/Jena2/JenaZip/trunk apache-jena svn co https://svn.apache.org/repos/asf/jena/Jena2/SDB/trunk jena-sdb svn co https://svn.apache.org/repos/asf/jena/Jena2/TDB/trunk jena-tdb svn co https://svn.apache.org/repos/asf/jena/Jena2/LARQ/trunk jena-larq
<jmvanel> Features : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/?view=log
<jmvanel> the first since the release !!!
<jmvanel> there is a mini application based on a table view;
<jmvanel> it updates the KB, but the modifications are not kept at application closing ;
<jmvanel> also no way of adding a property or new triple;
<jmvanel> this will be the job of the new TripleComboBoxes component
COMMIT TODO >>>>>>>>>
remove debug switches in N3SourcetoDrools
COMMIT
- upgrade Euler from version 2012-04 to version 2012-05
- FIX cell updates in N3TabularEditorComponent : in EditCellListener: now use oldValue to update the Triple on tripleStore
- TripleStoreDrools: FIX: updateTriple():
* use workingMemory.getFactHandle
* use workingMemory.update() instead of retract() and insert()
TODO: also use workingMemory.update() in kb:update builtin
test suite PASSES
Running deductions.runtime.swing.N3TableModelTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 5.649 sec <<< FAILURE!
I need a Java list , but which also maintains a correspondance value => index
So I could replace internally LinkedList<MyItem> by LinkedList<ReferenceTo<MyItem>> , plus using a Map <MyItem, ReferenceTo<MyItem>> .
Interesting posts on GF + attempto
TODO >>>>>>>>>
{ ?FORM :addTripleWidget ?SUBJECT. _:d e:findall ( ?PROP { ?SUBJECT a ?CLASS . ?PROP rdfs:domain ?CLASS . } ?PROPS ). } => { ?CB a java:javax-swing-JComboBox. ?FORM javam:add ( ?CB ). }.
http://www.molto-project.eu/
https://issues.jboss.org/browse/JBRULES-3488
<jmvanel> complete with test case !
https://github.com/jmvanel/drools/commit/1d31e94e6f9c457cf1d6124e640ada12da976032#diff-1
https://github.com/droolsjbpm/drools/pull/118
http://help.github.com/send-pull-requests/
https://issues.jboss.org/browse/JBRULES-3488
TODO
<ge0ffrey> jmvanel: git clone the drools repo, mvn clean install it, open it in m2eclipse/intellij/netbeans, look for MiscTest and copy paste an existing test - it should be fairly obvious
<jmvanel> I have a stack and I know where in the code the loop is
<ge0ffrey> if you run into any problem, just ask here
<jmvanel> guues it works also with eclipse ?
<jmvanel> I already have git working dirs, but there are several dirs : drools droolsjbpm-build-bootstrap droolsjbpm-build-distribution droolsjbpm-integration droolsjbpm-knowledge droolsjbpm-tools drools-planner guvnor jbpm
<jmvanel> I guess I just mean to build drools
<ge0ffrey> jmvanel: to setup eclipse, the latest m2elcipse should work, but there's an alternative way too, see https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/blob/master/README.md
<ge0ffrey> jmvanel: It's likely we 'll do 5.4.0.Final monday or next week. So, the sooner it is, the higher the chance that it gets fixed before 5.4.0.Final
<ge0ffrey> if it doesn't make 5.4.0.Final, it could take a long time for a community release with a fix is out :(
cd /home/jmv/src/droolsjbpm/drools/ gvim drools-compiler/src/test/java/org/drools/integrationtests/MiscTest.java
Try to upgrade to Drools Beta 5.4.0.CR1 : nothing changed.
This loop goes wild at line 460 in class FromNode in public void updateSink( final LeftTupleSink sink,
final PropagationContext context,
final InternalWorkingMemory workingMemory) {
for ( RightTuple rightTuple = rightTuples; rightTuple != null; rightTuple = (RightTuple) rightIter.next( rightTuples ) ) {
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended (breakpoint at line 477 in FromNode)) FromNode.updateSink(LeftTupleSink, PropagationContext, InternalWorkingMemory) line: 477 RightInputAdapterNode.attach(InternalWorkingMemory[]) line: 240 BuildUtils.attachNode(BuildContext, BaseNode) line: 149 AccumulateBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 74 PatternBuilder.attachPattern(BuildContext, BuildUtils, Pattern) line: 126 PatternBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 79 GroupElementBuilder$AndBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 116 GroupElementBuilder.build(BuildContext, BuildUtils, RuleConditionElement) line: 72 ReteooRuleBuilder.addSubRule(BuildContext, GroupElement, int, Rule) line: 154 ReteooRuleBuilder.addRule(Rule, InternalRuleBase, IdGenerator) line: 125 ReteooBuilder.addRule(Rule) line: 116 ReteooRuleBase.addRule(Rule) line: 445 ReteooRuleBase(AbstractRuleBase).addRule(Package, Rule) line: 955 ReteooRuleBase(AbstractRuleBase).addPackages(Collection<Package>) line: 626 ReteooRuleBase.addPackages(Collection<Package>) line: 472 ReteooRuleBase.addPackage(Package) line: 479 N3SourcetoDrools.droolsCompile(String, String) line: 425 N3SourcetoDrools.translate(IRDFIterator, String, boolean, boolean, boolean) line: 320 N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 262 N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 91 Project.doTranslateN32Drools(boolean, boolean) line: 944 Project.translateN32Drools(boolean) line: 895 Project.prepareDrools(boolean) line: 873 Project.doRunDrools(boolean) line: 827 Project.runDroolsTriples(boolean) line: 778 DroolsInferenceEngine.launch() line: 30 InferenceSwingWorker.doInBackground() line: 48 InferenceSwingWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 InferenceSwingWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Found a minimal rule that creates an infinite loop. Removing the green condition prevents the infinite loop.
rule "test.n3 0"
when
$LIST : java.util.List( )
from accumulate( $Triple_1 : Triple( $CN : subject, predicate == "<http://deductions.sf.net/samples/princing.n3p.n3#number>", $N : object )
, collectList( $N ) )
$NUMBER : Number() from accumulate(
$NUMBER_STRING_ : String() from $LIST
, sum( Double.parseDouble( $NUMBER_STRING_)) )
then
Triple newTriple;
TripleResult newTripleResult;
newTriple = new Triple( );
newTriple.setSubject( "<http://deductions.sf.net/samples/princing.n3p.n3#list>" );
newTriple.setPredicate( "<http://deductions.sf.net/samples/princing.n3p.n3#is>".toString() );
newTriple.setObject( $LIST ); insertLogical( newTriple );
end
Strange : XStream is only for test:
Exception in thread "main" java.lang.NoClassDefFoundError: com/thoughtworks/xstream/XStream at eulergui.inference.drools.impl.N3SourcetoDrools.debugDrools(N3SourcetoDrools.java:205) at eulergui.inference.drools.impl.N3SourcetoDrools.<init>(N3SourcetoDrools.java:169) at eulergui.inference.drools.impl.N3DroolsEngineFacade.<init>(N3DroolsEngineFacade.java:44)
Trouble : repositories for XStream and for Pellet ( courtesy Thorsten Möller ) are gone !!!!!!!!
mvn versions:display-dependency-updates [INFO] The following dependencies in Dependencies have newer versions: [INFO] com.thoughtworks.xstream:xstream ........................ 1.2 -> 1.4.2 [INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist [INFO] jline:jline ............................................... 1.0 -> 2.6 [INFO] org.drools:drools-compiler .................. 5.3.1.Final -> 5.4.0.CR1
Drools Error: Unable to Analyse Expression "\"gateau\"" == $X .toString(): [Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$X()] [Near : {... "\"gateau\"" == $X .toString() ....}] ^ [Line: 57, Column: 30] ErrorLines: - 57
# pb !!!!!!!!!!!!!!!!!!!!!!!
{ ?S ?P ?X .
?X log:equalTo "gateau" .
} => {
:test :equalTo3 "OK"
} .
{ ?S ?P ?X .
"gateau" log:equalTo ?X .
} => {
:test :equalTo2 "OK"
} .
Algorithm for log:equalTo
(should be OK if there is a variable binding after, but 2 pass translation not implemented)
DroolsTripleHandler.n3VariableOrLiteral2DroolsExpression(arg)
if one argument is literal, and the other is bound, the bound variable should on left side of ==
if all is literal , can directly generate true or false
http://debugit.eu/ medical ontology
N3JavaMappingBuiltin.processTripleElementForConsequent(): WARNING: "jmv has been updated at " is not a variable and not a Resource Drools Error: Unable to Analyse Expression "\"JMV\"" .toString().equals( $N .toString() ): [Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$N()] [Near : {... "\"JMV\"" .toString().equals( $N .toString() ) ....}] ^ [Line: 74, Column: 30] ErrorLines: - 74 Drools Error: Unable to Analyse Expression "\"jmv\"" .toString().equals( $N .toString() ): [Error: unable to resolve method using strict-mode: n3_project.helpers.Triple.$N()] [Near : {... "\"jmv\"" .toString().equals( $N .toString() ) ....}] ^ [Line: 128, Column: 30] ErrorLines: - 128
http://reasoning.restdesc.org/
Ideas :
Even after removing eval() instruction in Drools translation, that was not enough to make this work :
@prefix string: <http://www.w3.org/2000/10/swap/string#>. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . :s1 rdfs:label "papillon". { ?M rdfs:label ?L. ?L string:contains "pap". } => { :test :pass_contains0_res ?L . } .
COMMIT
continue removing Drools eval() instruction in src/main/java/eulergui/inference/drools/impl/ :
MathBuiltins.java , DroolsTripleHandler.java , ListBuiltins.java , LogBuiltins.java
test suite PASSES
With Drools/N3 engine, can now count all the things that have an rdfs:label containing "foo".
<jmvanel> Maybe you think it was possible since long ?
<jmvanel> NO
<jmvanel> What was possible was : count all the things that have an rdfs:label "foo"
<jmvanel> But counting involving string and math builtins was not possible before yesterday.
:test :pass_contains "true"^^<http://www.w3.org/2001/XMLSchema#boolean> ; :pass_contains0 "true"^^<http://www.w3.org/2001/XMLSchema#boolean> ; :pass_contains0_res "papillon" , "vive papi Mougeot!" , "pape" ; :pass_contains_count 2 ; :res (:s1 :s1) .
Added fl prefix on prefix.cc : http://eulersharp.sourceforge.net/2003/03swap/fl-rules#
rdfs:comment "to express fuzzy set membership e.g. (:x :C) fl:mu 0.8
says that :x a :C to a degree of 0.8".
rdfs:comment "to express fuzzy subsethood e.g. (:C :D) fl:sigma 0.9
says that :C rdfs:subClassOf :D to a degree of 0.9".
fl:pi a rdf:Property, e:Builtin;
rdfs:domain rdf:List;
rdfs:range xsd:decimal;rdfs:comment "builtin to calculate fuzzy set
membership according to Elpiniki Papageorgiou method".
Highlight jedit plugin "disappeared" from EulerGUI. The reason is that it's now bound to jEdit 4.5.0 , while EulerGUI is still at 4.3.1 :
http://plugins.jedit.org/plugins/?Highlight
Now that math builtins in findall are implemented, there is another trouble: an infinite loop when adding the Drools package.
AND[ Pattern type='[ClassObjectType class=n3_project.helpers.Triple]', index='0', offset='0', identifer='(ValueType = 'Object') $Triple_1', Pattern type='[ClassObjectType class=n3_project.helpers.Triple]', index='1', offset='1', identifer='(ValueType = 'Object') $Triple_2', Pattern type='[ClassObjectType class=java.util.List]', index='2', offset='2', identifer='(ValueType = 'Object') $LIST', Pattern type='[ClassObjectType class=java.lang.Number]', index='9', offset='3', identifer='(ValueType = 'Object') $NUMBER']
XML FormatRecognizer : Could not load from URL http://purl.org/imbi/dco/dco# ; this was expected to be XML, but does not seem to be XML; reason: White spaces are required between publicId and systemId. cause: null Cause: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 50; White spaces are required between publicId and systemId.
wget works fine :
wget 'http://purl.org/imbi/dco/dco#' ... Longueur: 872751 (852K) [application/rdf+xml]
and adding local file doc.rdf works fine too. So the trouble is with FormatRecognizer.
In fact, no !
the trouble is with the XML itself: this is not correct.
The XML header of this is NOT legal :
http://purl.org/imbi/dco/dco#
indeed :
xmllint --noout 'http://purl.org/imbi/dco/dco#'http://www.imbi.uni-freiburg.de/ontology/dco/dco:19: namespace warning : xmlns: URI &ontology;dco# is not absolute <rdf:RDF xmlns="&ontology;dco#"
but I understand the issue :
replacing
<rdf:RDF xmlns="&ontology;dco#" >
with
<rdf:RDF xmlns="&ontology;dco" >
removes the warning
I understand that a default xmlns must be absolute.
cwm --rdf dco.rdf --n3 > dco.n3
COMMIT
Drools N3 engine : now e:findall works with a math builtin in the query, e.g. :
{ _:d e:findall ( ?M {?M :height ?H. ?H math:greaterThan 6000 . } ?LIST ). ?LIST math:memberCount ?COUNT. } => {
TESTED in test/math.n3 ( via TestReasonning )
TODO : same issue in string buitlins
Caused by: org.drools.RuntimeDroolsException: pricing_n3_0.Rule_pricing_n3_0Eval0Invoker@1d02b098 : java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List
Declaration's:
[(ValueType = 'String') $CN, (ValueType = 'String') $CT, (ValueType = 'Object') $LIST, (ValueType = 'String') $N, (ValueType = 'Object') $PR, (ValueType = 'Object') $Triple_1, (ValueType = 'Object') $Triple_2, (ValueType = 'Object') $Triple_3, (ValueType = 'Object') $Triple_4, (ValueType = 'Object') $Triple_5, (ValueType = 'Object') $Triple_6, (ValueType = 'Object') $Triple_7, (ValueType = 'String') $consumerType1, (ValueType = 'String') $value2, (ValueType = 'String') $value3]
arg0EvalNodeLeftTuple (id=216) [fact 0:65:1878024157:-2086649774:65:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CT1> <http://deductions.sf.net/samples/princing.n3p.n3#value> 5 . ] [fact 0:65:1878024157:-2086649774:65:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CT1> <http://deductions.sf.net/samples/princing.n3p.n3#value> 5 . ] [fact 0:70:1971836583:1395426466:70:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CN1> <http://deductions.sf.net/samples/princing.n3p.n3#consumerType> <http://deductions.sf.net/samples/princing.n3p.n3#CT1> . ] [fact 0:71:689809977:305116845:71:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#CN1> <http://deductions.sf.net/samples/princing.n3p.n3#number> 200 . ] [fact 0:58:2072854871:-657863811:58:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#pricing> <http://deductions.sf.net/samples/princing.n3p.n3#theExpectedConsummerNumber> <http://deductions.sf.net/samples/princing.n3p.n3#CN1> . ] [fact 0:57:575741458:-1249255924:57:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#pricing> <http://deductions.sf.net/samples/princing.n3p.n3#theConsummerType> <http://deductions.sf.net/samples/princing.n3p.n3#CT1> . ] [fact 0:56:1425088407:-2049757810:56:DEFAULT:<http://deductions.sf.net/samples/princing.n3p.n3#pricing> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://deductions.sf.net/samples/princing.n3p.n3#Pricing> . ]
The offending rule is :
# create consumerNumberProfit for consumerType and consumerNumber
{
?PR a Pricing.
?PR theConsummerType ?CT.
# ?NUMBER : sum of the ?N such that :
# ?PR theExpectedConsummerNumber ?CN . ?CN number ?N .
# ?CN!consumerType!value >= CT!value
_:d e:findall ( ?N {
?PR theExpectedConsummerNumber ?CN.
?CN number ?N.
?CN!consumerType!value math:notLessThan ?CT!value .
# cf Paths in http://www.w3.org/DesignIssues/Notation3
} ?LIST ).
?LIST math:sum ?NUMBER.
} => {
?CNP a ConsumerNumberProfit.
?PR consumerNumberProfit ?CNP.
?CNP consummerType ?CT.
?CNP number ?NUMBER.
}.
Error, but not with drspp :
em-laptop: ~/src/APE/ % ./ape.exe -text 'Every man has a name. p:Paul has "Paul" and "Paul" is a name.' -solo owlfsspp <?xml version="1.0" encoding="UTF-8"?> <messages> <message importance="error" type="owl" sentence="2" token="8" value="be" repair="Subject or object of this verb makes an illegal reference."/> </messages>
How are the "" removed ?
eg test/javaMappingAccessFieldAsN3Variable.n3
http://www.w3.org/2001/sw/wiki/Category:RDF_or_OWL_Browser
This DeferredMethodCall is not working :
# DeferredMethodCall>> <http://eulergui.sourceforge.net/engine.owl#demo_main_window> <http://java.sun.com/method#add> [_:sk_B_6]
because the method that is found is not the right one :
public void java.awt.Component.add(java.awt.PopupMenu)
The argument is an instance of eulergui.util.ClassLauncherAction. This class extends AbstractAction .
because the method that should be found is :
public void java.awt.Container.add( java.awt.Component )
rsync --verbose /home/jmv/jmv_ubuntu_11.4/jmvanel.free.fr/* /media/JMV/jmvanel.free.fr umount /media/JMV
org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.PackageNotFoundException: Package with uri 'http://schema.omg.org/spec/XMI/2.1' not found. (file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/ontologies/edmsemantics.xmi, 3, 76)
<lcpvrr> I never saw application build by eg
<jmvanel> " build by eg" is not the right expression;
<jmvanel> once the business rules are there, they are interpreted by the engine
<jmvanel> what remains to do is adding the user actions ;
<jmvanel> suppose you want a FOAF contact manager as a local Swing app ;
<jmvanel> user actions will be : create a contact ( or another type ) ; remove ; update; search a contact by a string in any property
<jmvanel> If you want to see this, you 'll have it before 24 h
<jmvanel> the form generator will help for create and update ;
<jmvanel> what it really interesting is adding rules for detecting near duplicates, etc
<lcpvrr> I I well understand form generator make able to generate a ABOX editor ?
<jmvanel> yes
I am pleased to announce the release 1.10 of EulerGUI, a development tool and a framework for the Semantic Web and rules.
The improvements mainly concern the inference engine with RETE Drools N3, and SPARQL queries.
With the Drools inference engine, adapted to the N3 rule language for the Semantic Web, you can build applications where all the business logic is interpreted directly by the engine ( see EulerGUI application building Framework ).
More builtin functions: mathematical, string , were added .
In addition, we rely on Drools for automatically retracting GUI components when a business data is deleted ( see Leverage on Drools to automatically retract GUI components ).
We worked on the capability of extension point in the configuration files in N3, like Eclipse or Spring, but more powerful (see configure EulerGUI in N3).
SPARQL queries belong to the features "graphical tool for exploring the Semantic Web", usable by the users of these technologies, and also for teaching Semantic Web .
There are several fixes for SPARQL:
Sometimes the query was executed twice
Progress indicator when the query runs
Results buttons disabled until the request is completed
can be changed after the fact the query type (SELECT, CONSTRUCT, ...),
We added buttons to display the graph N3/RDF as an array.
Download:
https://sourceforge.net/projects/eulergui/
Documentation :
http://eulergui.sourceforge.net/documentation.html
Change Log :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/CHANGELOG
In N3Source . convertToN3() :
do not retry when SocketException: Connection reset : in fact retry did not work
( test suite passes, but still a random error in eulergui.gui.TestJavaEditor )
<jmvanel> now you have no excuse for not building EG from source !
<rszeno> :)
<jmvanel> the other day I built it on a newly installed Mageia linux, with just openjdk 6 (installed by default) , and Maven ( installed from regular package by me )
<jmvanel> and started ./quick_build.sh
COMMIT
FIX random socket exception "Connexion reset" in test suite :
in ProjectGUI moved this line :
app.redoLayoutFrame(); // in case something was changed through user preferences
before starting thread with:
app.rethrowEventsExceptGUIUpdater();
so that all calls to getLocalN3() due to redoLayoutFrame() will not perturb the Drools launch
source quick_tests.sh ... [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 14:19.659s
DISPLAY=:1 LANG=en mvn -DPARSER4J_TESTS=no release:perform ... [INFO] Cleaning up after release... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 45:02.924s [INFO] Finished at: Sun Apr 22 15:23:57 CEST 2012
Add in TestJemmy.generateAndLaunch()
Thread.sleep( 20000 );// TODO dirty trick; normally the Drools button should be active when project preparation is done
target/checkout/target/surefire-reports/eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules-output.txt
[INFO] Tests in error: [INFO] test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded [INFO] test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded [INFO] testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Wait for "Class Component Chooser "JEditTextArea"(..) [INFO] test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded
[INFO] Tests in error: [INFO] test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Component enabled: class javax.swing.JToolBar$1 [INFO] test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded
COMMIT
- TestJemmy.tearDown() : disposing all windows is now done in main (test) thread, and after disposing main window
- N3Source.java . manageParseN3() : add : assert localN3 != null
- SourceFactory.java : Connect_Timeout = 4000; // was 2000
- add ClassLauncherAction.java (WIP)
Still one Test in error:
testURLProjectOWL(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*index\.rdf.*"
[INFO] Tests in error: [INFO] testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*"
[INFO] Tests in error: [INFO] test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "cvTitle" loaded [INFO] testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser "<http://owldl.com/ontologies/dl-safe.owl#bc> <http://www.w
seeks
http://copernicus.deri.ie/
http://changingminds.org/techniques/questioning/5w1h.htm
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/E/2/1/E2129229DB9F951AFB77620FA7656489.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376) at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259) at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77) at eulergui.project.Project.translateN32Drools(Project.java:901) at eulergui.project.Project.prepareDrools(Project.java:873) at eulergui.project.Project.doRunDrools(Project.java:827) at eulergui.project.Project.runDroolsTriples(Project.java:778) at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30) at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48)
Demonstrations specifications:
demo1 a EulerGUI_demo ; rdfs:label "simple bizz rule + Java liaison" ; project <examples/BloodPressure.n3p> . demo2 a EulerGUI_demo ; rdfs:label "Swing form generation" ; project <../deductions/n3_nojs/person-app.n3p>. demo3 a EulerGUI_demo ; rdfs:label "Truth Maintenance" ; project <test/n3JavaMapping-GUI.n3p>. democ1 a shell_command_demo; rdfs:label "ATTEMPTO parser (APE)" ; command [ "ape.exe" "-text" "?" "-solo" "drspp" ].
Mixed rule base:
demo_main_window a java:javax-swing-JFrame ; javam:setTitle ( "EulerGUI framework demos" ) ; javam:pack () ; javam:setVisible ( true ). { ?DEMO a EulerGUI_demo ; rdfs:label ?L ; project ?P . } => { ?B a java:eulergui-util-ClassLauncherAction ; javam:setLaunchedClass ( java:n3_project-ProjectGUI ) ; javam:setArguments ( ?P ) ; javam:setLabel ( ?L ). # ?B a java:javax-swing-JButton # ; javam:setText ( ?L ) # ; javam:setAction # { java:n3_project-ProjectGUI javam:main ( ?P ) } . # not implemented !!!!!!!! } .
[INFO] Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) [INFO] testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells [INFO] [INFO] Tests in error: [INFO] testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-7679769972719149484.n3 ; http://live.dbpedia.org/sparql [INFO] testURLProjectOWL(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*index\.rdf.*"
[INFO] Failed tests: testLocalFacebookSearch(eulergui.gui.TestFacebookSearch) [INFO] [INFO] Tests in error: [INFO] testProjectFromURL(eulergui.project.TestProject) [INFO] testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*"
stream reasonner
loing running queries
d2rq.org + SPARQL update
COMMIT:
- GUIGenerationHelper.java : in forceRepack(Container container) , keep only window.pack();
- remove TestGenericGuiGeneration , that is not relevant anymore, and too much trouble to maintain
- added debug print to clarify this test in error: testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
- SwingHelper.java : add method listComponents(JComponent component)
Duplicate URI Prefixes: : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from gui_generic.n3 , previous Value: http://jmvanel.free.fr/ontology/examples/person# : ==> http://jmvanel.free.fr/ontology/java_projection.owl# , from java_event-rules.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl# : ==> http://jmvanel.free.fr/ontology/software_applications.owl# , from software_applications.n3 , previous Value: http://jmvanel.free.fr/ontology/java_projection.owl# : ==> http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# , from rpo-rules-small.n3 , previous Value: http://jmvanel.free.fr/ontology/software_applications.owl# : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from form-rules.n3 , previous Value: http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# : ==> http://java.sun.com/class# , from java_library.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl#
Duplicate URI Prefixes: : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from gui_generic.n3 , previous Value: http://jmvanel.free.fr/ontology/examples/person# : ==> http://jmvanel.free.fr/ontology/java_projection.owl# , from java_event-rules.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl# : ==> http://jmvanel.free.fr/ontology/software_applications.owl# , from software_applications.n3 , previous Value: http://jmvanel.free.fr/ontology/java_projection.owl# : ==> http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# , from rpo-rules-small.n3 , previous Value: http://jmvanel.free.fr/ontology/software_applications.owl# : ==> http://jmvanel.free.fr/ontology/gui_generic.owl# , from form-rules.n3 , previous Value: http://eulersharp.sourceforge.net/2003/03swap/rpo-rules# : ==> http://java.sun.com/class# , from java_library.n3 , previous Value: http://jmvanel.free.fr/ontology/gui_generic.owl#
Removed this from person-events.n3 :
@prefix ded: <http://deductions.sf.net/owl/events#> . @prefix : <http://jmvanel.free.fr/ontology/examples/person#> . # <http://deductions.sf.net/owl/events#exception> { ?P a :Person . ?P :name "bush" . } => { ded:exception :throw " is already retired!" . } .
What is in this demo :
using in real time a forward chaining rule engine and a generic rule set
Forward chaining rule engine :
except that there is a logical language (N3) to specify both what to listen, and what action to take
What the rule base does:
net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed N3Source.manageParseN3(): Erreur pendant re-parsing N3 source "person-data.n3" getLocalN3(): /home/jmv/src/deductions/n3_nojs/person-data.n3 getURI(): person-data.n3 file:/home/jmv/src/deductions/n3_nojs/person-data.n3 n3_project.exceptions.parser.ParsingException: Last character read : "@" on line 0
java.lang.NoSuchMethodException: <unbound>=N3Source.setProject(ProjectLegacy); at java.beans.Statement.invokeInternal(Statement.java:313) at java.beans.Statement.access$000(Statement.java:58) at java.beans.Statement$2.run(Statement.java:185) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Statement.invoke(Statement.java:182) at java.beans.Expression.getValue(Expression.java:153) at com.sun.beans.decoder.ObjectElementHandler.getValueObject(ObjectElementHandler.java:166) at com.sun.beans.decoder.NewElementHandler.getValueObject(NewElementHandler.java:123) at com.sun.beans.decoder.ElementHandler.endElement(ElementHandler.java:169) at com.sun.beans.decoder.DocumentHandler.endElement(DocumentHandler.java:305) at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source) at javax.xml.parsers.SAXParser.parse(SAXParser.java:392) at com.sun.beans.decoder.DocumentHandler.parse(DocumentHandler.java:356) at java.beans.XMLDecoder.parsingComplete(XMLDecoder.java:192) at java.beans.XMLDecoder.readObject(XMLDecoder.java:238) at eulergui.project.ProjectFactory.normalizeAndReadXMLEncoderStream(ProjectFactory.java:192) at eulergui.project.ProjectFactory.restoreXMLFile(ProjectFactory.java:104) at eulergui.project.ProjectFactory.restoreXML(ProjectFactory.java:87) at eulergui.project.ProjectFactory.restoreXMLURL(ProjectFactory.java:216) at eulergui.project.ProjectFactory.restore(ProjectFactory.java:65) at eulergui.project.ProjectFactory.restoreAnyFromURI(ProjectFactory.java:375) at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:60) at n3_project.ProjectGUI.main(ProjectGUI.java:202)
Caused by: java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List at pricing_n3_0.Rule_pricing_n3_0Eval0Invoker.evaluate(Unknown Source)
DISPLAY=:1 LANG=en mvn --offline -DargLine="-DDEDUCTIONS_PROJECTS=local" -Dtest=eulergui.gui test
printer config on Ubuntu :
system-config-printer
Added debug print to clarify this test in error:
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
DISPLAY=:1 LANG=en mvn -Dtest='eulergui.gui.TestImportSwrl#testRemoteImportSwrlWithDrools' test
Cette première video sur EulerGUI sera suivie par d'autres:
deductions/n3_nojs/person-app.n3p
show class tree with tooltips
show mini-application from class tree (? test)
power of subproperty
OWL rule to categorize resources
Documentation : fix bad viewvc links :
200,$s=http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/==
Error in test TestGenericGuiGeneration.java : removed test , as it is old anyway, and I suspect parallel changes in Drools translation settings and Swing rules.
ERROR in running Drools Inference Engine Cause: Exception executing consequence for rule "generic_gui_projection-rules.n3 7" in generic_gui_projection_rules_n3_4: org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback@1f49a696 ERROR
I upgraded to the "natty" upgrade. While the laptop was running the upgrade, my wife closed the laptop lid and apparently interrupted the install.
Next morning, I went to boot up and it wouldn't. It goes to where it lists "generic" versions (each with recovery mode version)...nothing will load. When i chose one, it goes to a point of running all kinds of script or something...then saying in the last few lines "The disk drive for / is not ready yet or present". Next line: "Continue to wait; pr Press S to skip mounting or M for manual recovery". Nothing I try with those options does anything to boot.
selected M to get to a comand line; ran
sudo mount -o remount,rw /
then was able to run
dpkg --configure -a
selecting the defaults whenever given a choice.
After that it hung, I restarted and I was able to log in normally, went to update manager and was prompted to do a partial upgrade
Tests in error:
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Image" loaded
TestN3SourceInGUI OK after this :
mvn clean DISPLAY=:1 LANG=en mvn -Dtest=eulergui.gui.TestN3SourceInGUI test
Results :
Tests in error:
testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded
test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded
test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded
testURLProjectOWL(eulergui.gui.TestJavaEditor): Wait for "getText() Component Chooser "rdfs:label="Agent""(..)
testAddNewN3SourceEditor(eulergui.gui.TestN3SourceInGUI): eulergui.gui.TestN3SourceInGUI.chooseFileAddTextInEditorAndSave(Ljava/lang/String;Ljava/lang/String;)V
<jmvanel> travelling to Lyon this morning ...
<jmvanel> still one thing not working with SPARQL :
<jmvanel> scenario : create a SPARQL query ; edit it ; choose endpoint
<jmvanel> then the query does not run again
<jmvanel> one must edit again the query
please test it with your SWRL rule bases and SQWRL queries
Martin O'Connor
18:49 (Il y a 15 heures)
à protege-owl
The 3.5 alpha release of Protege-OWL is now available on the Protege web site [1]. The main focus of the 3.5 series is the SWRLTab's support of the Drools rule engine, thus providing a completely free and open source solution for executing SWRL rules in Protege-OWL. Previously, executing SWRL rules or SQWRL queries in the SWRLTab required the use of the Jess rule engine, which is not open source and requires a license (though it is free for academic and U.S. government use). A new tab called the SWRLDroolsTab provides a graphical interface for interacting with the Drools implementation. SQWRL and all existing SWRL built-in libraries are supported by the Drools implementation. The existing SWRLJessTab is still available.
A major new feature is the use of OWL 2 RL-based reasoners [2] by the Jess and Drools implementations. Previously, the SWRLTab provided very incomplete OWL reasoning when executing SWRL rules or SQWRL queries. These reasoners are highly configurable via GUI-based or API-based interfaces [3].
The Jess and Drools implementations are functionally identical. For small ontologies, the Drools-based OWL 2 RL reasoner will typically be slightly slower than the Jess-based reasoner because of its greater startup time. However, Drools is typically slightly faster than Jess for the inference process itself, though the difference here is minor. By default, both implementations will be somewhat slower than the Jess implementation in 3.4.8 and earlier because of the more robust reasoning that is being performed. As mentioned, the reasoners are configurable so users may increase inference speeds by reducing the number of inferences being generated.
We would encourage users to try the new 3.5 alpha with their existing SWRL and SQWRL rule and query collections. Please post any problems to the list or send me (off-list) ontologies that I can use to replicate reported problems. Make sure to use the latest alpha release build (currently #644) before reporting a problem.
[1] http://protegewiki.stanford.edu/wiki/Protege_3.5_Alpha_Release_Notes
[2] http://www.w3.org/TR/owl2-profiles/#OWL_2_RL
[3] http://protege.cim3.net/cgi-bin/wiki.pl?SWRLTabOWL2RL
http://dbooth.org/2010/ambiguity/paper.html#sameAs
<rszeno> +33-6-89162952 must be +33-689-162-952
<rszeno> http://en.wikipedia.org/wiki/ITU
http://www.google.com/search?q=owl%3AsameAs+problems
See http://wiki.foaf-project.org/w/FOAFBulletinBoard
http://moustaki.org/foaf.rdf#moustaki : Yves Raymond's FOAF
http://bblfish.net/people/henry/card#me Henry Story
IDEAS:
TODO:
FIX : in person-app.n3p demo, the new label added by rule is not showing unless the window is resized
SPARQL : possibility to switch at any time between SELECT and CONSTRUCT
SELECT DISTINCT ?pname ?v # CONSTRUCT { dbpedia:Buddy_Guy ?p ?v . } WHERE { dbpedia:Buddy_Guy ?p ?v . ?p rdfs:label ?pname . }
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded Tests run: 184, Failures: 1, Errors: 7, Skipped: 0
COMMIT
- change API in ITripleStore : searchBySubjectAndPredicate() returns a List
- WIP: test N3TableModel
http://wiki.musicbrainz.org/LinkedBrainz#SPARQL_Endpoint
http://ismir2009.dbtune.org/taxonomy/term/5
http://dbtune.org/musicbrainz/sparql
Thread [rethrowEventsExceptListener(guiUpdater)] (Suspended (breakpoint at line 76 in N3SourceFromSPARQLSource)) N3SourceFromSPARQLSource.doUpdate(boolean) line: 76 N3SourceFromSPARQLSource.doUpdate() line: 66 N3SourceFromSPARQLSource.getLocalN3() line: 145 N3SourceFromSPARQLSource(N3Source).manageParseN3() line: 414 N3SourceFromSPARQLSource(N3Source).update() line: 394 N3ConversionRefesher.updateN3(N3Source) line: 121 UpdateN3Thread.run() line: 40 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 86 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1379 ProjectChangeSupport.rethrowEventsExceptListener(Project, ProjectListener) line: 190 Project.rethrowEventsExceptListener(ProjectListener) line: 1510 ProjectGUI.rethrowEventsExceptGUIUpdater() line: 329 ProjectGUI.access$0(ProjectGUI) line: 326 ProjectGUI$1.run() line: 316 Thread.run() line: 722
I thought to send this Mail to Jena list, but the problems was in EG ( bad request type CONSTRUCT or SELECT ).
This query runs fine from command line :
egcp arq.remote --results n3 --query virtuoso.rq --service=http://live.dbpedia.org/sparql --verbose --debug --strict
The query in virtuoso.rq is :
SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . ?LAB <bif:contains> "instrument" . ?C ?P ?V . } LIMIT 200
but not from the API. FIXED
As the Jena command lines program are hard to debug, and there is sure a difference somewhere, I ask if you have an idea about what can be the reason.
Another related question is : how can I get all the error information when the query fails ? I hope that in some servers ( Virtuoso ? Jena TDB ? others ? ) some HTTP headers give informations.
COMMIT
- avoid redo the query if it already aborted
( by setting updateTimestamp in finally block in N3SourceFromSPARQLSource.doUpdate() )
- avoid running the SPARQL query in main thread when opening a project including SPARQL queries
( do not call doUpdate in prepare in class N3SourceFromSPARQLSource )
I had the impression that updateTimestamp is set in doUpdate() , and when doUpdate() is called a second time in same thread, the value is 0 !!??
but that was a wrong guess from the debug print !
----------------------------------
<jmvanel> will be at WWW 2012 , in my birth city
<rszeno> lyon?
<jmvanel> Yes. I should have prepared something like in 2000
<jmvanel> http://www9.org/w9-devxml.html
Tests in error: testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded testSimpleURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*|.*book\.n3_.*"
running arq.remote with args:
--results n3 --query euler_project.xml.n3p.rq --service=http://live.dbpedia.org/sparql --verbose --debug --strict
works !
but not in EG :( . However I use the API like recommended .
cf http://jena.sourceforge.net/ARQ/cmds.html#arq.remote
http://www.geonames.org/export/ws-overview.html
<rszeno> take a look to http://www.wiwiss.fu-berlin.de/en/institute/pwo/bizer/research/publications/Bizer-FIS2010-Pay-As-You-Go-Talk.pdf
<rszeno> source is http://linkeddatabook.com/editions/1.0/#effortDistribution
Tests in error: testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*" testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*" Tests run: 180, Failures: 0, Errors: 8, Skipped: 0
With Revision 2980, the extension point capabilities of EulerGUI are used for real.
Now the result display features are set by N3 configuration rules in
src/main/resources/eulergui/gui/controller/application-rules.n3
These result display features are displayed by 4 buttons on upper right corner of main window, and are implemented by there classes:
ResultEditorAction, ResultEditorN3Action, ResultGraphvizAction, ResultTableAction
There is just one rule to configure these features :
{ ?GUI a java:n3_project-ProjectGUI ; javap:resultManagement ?R . } => { ?ResultEditorAction a java:eulergui-gui-actions-ResultEditorAction ; javam:setProjectGUI( ?GUI ). ?ResultEditorN3Action a java:eulergui-gui-actions-ResultEditorN3Action ; javam:setProjectGUI( ?GUI ). ?ResultGraphvizAction a java:eulergui-gui-actions-ResultGraphvizAction ; javam:setProjectGUI( ?GUI ). ?ResultTableAction a java:eulergui-gui-actions-ResultTableAction ; javam:setProjectGUI( ?GUI ). ?R javam:addAction ( ?ResultEditorAction ) ; javam:addAction ( ?ResultEditorN3Action ) ; javam:addAction ( ?ResultGraphvizAction ) ; javam:addAction ( ?ResultTableAction ) }.
This rule says : "for each main window ProjectGUI, with a field resultManagement ?R, create the 4 objects ?ResultEditorAction ,
etc, and add them to ?R through method addAction".
The method addAction on class ResultManagement is just one of 10 extension points that are planned :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/architecture.html#L762
In the Roadmap for EulerGUI 2.0 :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/documentation.html#L9989
this task is described this way :
Features
and code changes |
Comments | Estimate
(skilled developper) |
Sub-feature | Sub-feature |
---|---|---|---|---|
extension points for adding features in N3 configuration file | will also enable many things: user defined extensions à la eclipse; several user modes ; this will also be similar to Spring configuration, but with possibly platform and context -aware rules here; estimation just for creating interfaces and containers in Java | 2 | new N3 sources types: RDFa, ATTEMPTO sentences, ng4j / semweb client |
Note that the main architectural advantage of extensions point à la eclipse is to be able to add a feature without modifying a line in the Java code.
But here, contrary to Spring or eclipse stuff, we have the whole power of rules here: it is possible to take in account machine and user context and history.
This mechanism is usable also in applications built with the EulerGUI framework.
CAVEAT:
- no support for checking Java methods and classes is provided in EulerGUI editor, so error here raise Drools compliation errors that are not user-friendly
- the above rule N3 file is accessible to EulerGUI through the classpath, so to modify the internal rules, one must rebuild EulerGUI (or work in eclipse).
------------------------------------------------
COMMIT
ARCH: now the result display features are set by N3 configuration rules in
src/main/resources/eulergui/gui/controller/application-rules.n3
ResultEditorAction, ResultEditorN3Action, ResultGraphvizAction, ResultTableAction
This does work (but replacing the variable ?ResultTableAction with an URI fails )
{ ?GUI a java:n3_project-ProjectGUI ; javap:resultManagement ?R . } => { ?ResultTableAction a java:eulergui-gui-actions-ResultTableAction ; javam:setProjectGUI( ?GUI ). ?R javam:addAction ( ?ResultTableAction ); }.
This could be made to work (singleton instantiation and use)
:ResultTableAction a java:eulergui-gui-actions-ResultTableAction .
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
:ResultTableAction a java:eulergui-gui-actions-ResultTableAction .
} => {
:ResultTableAction javam:setProjectGUI( ?GUI ).
?R javam:addAction ( :ResultTableAction );
}.
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "BloodPressure.n3" getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/BloodPressure.n3 getURI(): BloodPressure.n3 at eulergui.project.N3Source.manageParseN3(N3Source.java:446) at eulergui.project.N3Source.update(N3Source.java:394) at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121) at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40) at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77) at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:86) at eulergui.project.Project.rethrowEventsPlease(Project.java:1379) at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:190) at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1510) at n3_project.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:329) at n3_project.ProjectGUI.access$0(ProjectGUI.java:326) at n3_project.ProjectGUI$1.run(ProjectGUI.java:316) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NullPointerException at net.sf.parser4j.parser.service.ParseStackAction.reduce(ParseStackAction.java:198) at net.sf.parser4j.parser.service.Parser.matchManagement(Parser.java:1033) at net.sf.parser4j.parser.service.Parser.checkForMatch(Parser.java:926) at net.sf.parser4j.parser.service.Parser.shiftByToken(Parser.java:814) at net.sf.parser4j.parser.service.Parser.parse(Parser.java:397) at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:178) at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155) at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117) at eulergui.project.N3Source.doParseN3(N3Source.java:499) at eulergui.project.N3Source.manageParseN3(N3Source.java:434)
Important stack to fix:
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "BloodPressure.n3"
getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/BloodPressure.n3
getURI(): BloodPressure.n3
at eulergui.project.N3Source.manageParseN3(N3Source.java:446)
at eulergui.project.N3Source.update(N3Source.java:394)
at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121)
at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40)
at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77)
at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57)
at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:86)
at eulergui.project.Project.rethrowEventsPlease(Project.java:1379)
at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:190)
at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1510)
at n3_project.ProjectGUI.rethrowEventsExceptGUIUpdater(ProjectGUI.java:329)
at n3_project.ProjectGUI.access$0(ProjectGUI.java:326)
at n3_project.ProjectGUI$1.run(ProjectGUI.java:316)
at java.lang.Thread.run(Thread.java:722)
Caused by: net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed
at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:861)
at net.sf.parser4j.parser.service.Parser.readTerminalValueAndParse(Parser.java:642)
at net.sf.parser4j.parser.service.Parser.parse(Parser.java:387)
at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:178)
at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155)
at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117)
at eulergui.project.N3Source.doParseN3(N3Source.java:499)
at eulergui.project.N3Source.manageParseN3(N3Source.java:434)
... 13 more
Caused by: java.io.IOException: closed
at net.sf.parser4j.parser.service.ParserInput.read(ParserInput.java:56)
at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:859)
This does not work :
@prefix java: <http://java.sun.com/class#> .
@prefix javam: <http://java.sun.com/method#> .
@prefix javap: <http://java.sun.com/predicate#> .
:f a java:javax-swing-JFrame .
:lab a java:javax-swing-JLabel .
{ ?F a java:javax-swing-JFrame
; javap:contentPane ?CP.
} => {
?CP javam:add( :lab ) .
This does not work :
:ResultTableAction a java:eulergui-gui-actions-ResultTableAction .
{
?GUI a java:n3_project-ProjectGUI
; javap:resultManagement ?R .
} => {
:ResultTableAction javam:setProjectGUI( ?GUI ).
?R javam:addAction ( :ResultTableAction );
}.
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
COMMIT
add button to show inference Result as a Table
This does not work , but works with the dbpedia web user interface !
SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . ?LAB <bif:contains> "instrument" . ?C ?P ?V . } LIMIT 200
search ( green ) , or orange ( main ) queries
{ :x :p ?V . ?V :p2 ?W . } => { :y :p ?V }.
"instrument" : label qui existe pas ==> on va aider l'utilisateur à créer une propriété :on va deviner: rdfs:label ; rdfs:domain ?? ; on va lui demander le type de valeur : litéral lequel ou resource
s'appuyer sur une ontologie de référence , lien entre "instrument" et des concepts
je pense à dbPedia ; requête : HELAS , marche mal !!!!!!!!!!!! Virtuoso :(((((((((
SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . FILTER regex( ?LAB , ".*instrument.*" ) ?C ?P ?V . } LIMIT 200
Virtuoso S1T00 Error SR171: Transaction timed out SPARQL query: PREFIX owl: PREFIX xsd: PREFIX rdfs: PREFIX rdf: PREFIX foaf: PREFIX dc: PREFIX : PREFIX dbpedia2: PREFIX dbpedia: PREFIX skos: SELECT ?C ?P ?V WHERE { ?C rdfs:label ?LAB . FILTER regex( ?LAB , ".*instrument.*" ) ?C ?P ?V . } LIMIT 200
<jmv__> Hi Is there a dbPedia endpoint not run by Virtuoso ?
Autre idée : utiliser WN 2.0 en Français ( Wolf )
-----------------------
D'n'd : transférer la ligne et les triplets
les propriétés musicales devraient commencer par des minuscules.
property - value pair to a resource
TDB : ACID ???
player todo
sort on artist
JMV:
?C a owl:Class .
COMMIT
FIX TestGenericGuiGeneration :
- add a remove method in GUIKBAdapter ( retraction errors occured, due to new retraction mechanism with Drools retraction listener
but still TODO : ERROR in running Drools Inference Engine
Cause:
Exception executing consequence for rule "generic_gui_projection-rules.n3 7" in generic_gui_projection_rules_n3_4: org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.common.TruthMaintenanceSystem$LogicalRetractCallback@798daa3f ERROR
- in N3Source.manageParseN3(), the call to doParseN3() is synchronized in all cases ( one thread was closing the input stream while another was reading )
FIX TestSPARQLInGUI
EEEE == passes in isolation in eclipse
Tests in error: testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" EEEE test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded testURLProject(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*employee.uml.*" EEEE
COMMIT : doc. :
add "Uploading a snapshot", links to ACE videos
some links were not relative
Daemon Thread [SwingWorker-pool-3-thread-1] (Suspended) N3Source.manageN3Cache(N3Source) line: 609 IOManager.getLocalCache(N3Source) line: 180 N3SourceFromSPARQLSource(N3Source).getLocalCache() line: 746 N3SourceFromSPARQLSource(N3Source).getLocalN3() line: 742 N3SourceFromSPARQLSource.getLocalN3() line: 128 N3SourceFromSPARQLSource(N3Source).manageParseN3() line: 413 N3SourceFromSPARQLSource(N3Source).update() line: 393 N3ConversionRefesher.updateN3(N3Source) line: 121 UpdateN3Thread.run() line: 40 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 86 Project.addN3Source(N3Source, boolean) line: 313 Project.addN3Source(N3Source) line: 293 SPARQLServiceInputAction$1.doInBackground() line: 113 SPARQLServiceInputAction$1(N3SourceWorker).doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SPARQLServiceInputAction$1(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded
http://dbpedia.org/page/Jimi_Hendrix
<jmvanel> uploading a snapshot : SPARQL fixes ;
<jmvanel> should work in any way : existing project, new query, changing an query (even from SELECT to CONSTRUCT),
<jmvanel> failing query, bad syntax, changing the endpoint
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testProjectFromURL(eulergui.project.TestProject) test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Skill" loaded testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded Tests run: 185, Failures: 1, Errors: 7, Skipped: 0
FIX: ProjectGUI_Updater was added twice :
Thread [main] (Suspended (breakpoint at line 24 in ProjectGUI_Updater)) ProjectGUI_Updater.<init>(ProjectGUI) line: 24 ProjectGUI.setProject(Project) line: 842 ProjectGUI.<init>(Project) line: 148 ProjectGUI.newWindow(Project, boolean) line: 260 ProjectGUI.main(String[]) line: 219
------
Thread [main] (Suspended (breakpoint at line 24 in ProjectGUI_Updater)) ProjectGUI_Updater.<init>(ProjectGUI) line: 24 ProjectGUI.populateWindow(Project, boolean) line: 290 ProjectGUI.newWindow(Project, boolean) line: 274 ProjectGUI.main(String[]) line: 219
------------------------
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 226 in ButtonsForN3Source)) ButtonsForN3Source.<init>(SourceFilesView, N3Source, boolean) line: 226 SourceFilesView.doAddButtonForFile(N3Source, boolean) line: 126 ProjectGUI_Updater.n3SourceAdded(Project, N3Source) line: 36 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 85 Project.addN3Source(N3Source, boolean) line: 313 Project.addN3Source(N3Source) line: 293 SPARQLServiceInputAction$1.doInBackground() line: 113 SPARQLServiceInputAction$1(N3SourceWorker).doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SPARQLServiceInputAction$1(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
COMMIT
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> CONSTRUCT { ?P a rdfs:Property. } WHERE { ?s ?p ?o }
SPARQL SELECT table button :
- now does NOT redo the query
- is disabled until query is done
http://www.prova.ws/ is now up !
<jmvanel> watched screencast on ontowiki : http://docs.ontowiki.net/ontowiki/screencasts/2008-01-22/
<jmvanel> nice tool !
looking for a tool or library to query Google API's ( contacts, agenda, mail ) and give N3 or RDF answer .
( nothing mentioned in the "standard" page http://www.w3.org/wiki/ConverterToRd )
<mhausenblas> jmvanel, maybe http://ceur-ws.org/Vol-521/paper1.pdf is of help?
* nonge est parti (Quit: Verlassend)
<jmvanel> mhausenblas, can be ; it's not an Open Source lib., and it's more general than Google API , which is good, as I have other use cases , like MusicBrainz
ANN: WebDataCommons.org - Offering 3.2 billion quads current RDFa, Microdata and Miroformat data extracted from 65.4 million websites
http://www.javaoracleblog.com/java/Rules_Engines_Pandora_Ushihidi_and_Everything_Else.jsf
http://www.w3.org/community/openannotation/
Read Write Web : http://www.w3.org/community/rww/
./ape.exe -solo paraphrase -guess -text \ 'If there is an order O then there is a demand-for-payment D, and D is associated-to O .' If there is an order X1 then a n:demand-for-payment is a:associated-to the order X1. ./ape.exe -solo paraphrase -guess -text 'If there is an alert A then A v:is-displayed in the dashboard.' If there is an alert X1 then the alert X1 v:is-displayed in a dashboard.
http://www.openlinksw.com/
W3C Community and Business Groups
http://www.w3.org/community/
I'm looking for some kind of web application Open Source framework, backed by a SPARQL endpoint : either CMS, or collaborative, or data input and display.
But I can not find one!! it is possible that it does not exists; I just saw http://incubator.apache.org/clerezza/ , but it's more a general RDF toolkit than a toolkit for collaborative apps .
LDIF translates heterogeneous Linked Data from the Web into a clean, local target representation while keeping track of data provenance.
http://www4.wiwiss.fu-berlin.de/bizer/ldif/
http://semtechbizsf2012.semanticweb.com/sessionPop.cfm?confid=65&proposalid=4671
http://spqr.cerch.kcl.ac.uk/?page_id=94
On swig IRC:
<ww> jmvanel: what about ontowiki?
<MacTed> jmvanel - you might look at http://ods.openlinksw.com/ which rides atop http://virtuoso.openlinksw.com/ (either open source or commercial edition). (ObDisclaimer: I work for OpenLink Software.)
<jmvanel> ww, ontowiki looks fine ; PHP is not my favorite language , but the code looks clean :)
<jmvanel> MacTed, is there such a thing as "design documentation" for Virtuoso ODS ?
<MacTed> jmvanel - not sure what you mean by "design documentation"... The Programmer's Guide is probably a good place to start -- http://ods.openlinksw.com/wiki/ODS/ODSProgrammersGuide
<jmvanel> MacTed, thanks, these pages are valuable ; they look like a howto for different modules, but some global architecture pages would be nice ...
<MacTed> jmvanel - perhaps this -- http://ods.openlinksw.com/wiki/ODS/OdsFramework
<MacTed> jmvanel - I can tell you that Virtuoso Open Source is in fairly broad use, based on public SPARQL endpoints provided by a number of different projects/companies/gov't orgs/etc. I can't speak to ODS usage levels, as it's purely open source, and can be used atop either VOS or Virtuoso Commercial without telling us a thing...
Book on Linked Data : http://linkeddatabook.com/editions/1.0/
http://www.innovation.ch/java/HTTPClient/getting_started.html
Looked for "SPARQL 1.1 diagnostic"
http://docs.openlinksw.com/virtuoso/rdfsparql.html
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_foaf_import2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Image" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
Example:
{ ?X :p ?V . ?V string:contains "bla" . ?X foaf:name ?N . } => { ?X foaf:name ?N . }.
How to do ?
For each row in answer, find the value of ?X and ?N byt looking in each Triple object. Then build the triple answer. The algorithm will interpret the query as an N3 graph.
To ask on swig : is there a connector to get Google API's as triples ?
<rszeno> need a 'webaccess' module
<rszeno> code can be reused
<rszeno> for example writing such a module in scala will reuse the code you have by calling 'actions' from existing and use info provided by others java parts
<jmvanel> yes, and SourceFactory is not modular , if I want to add new N3 source types, I have to add code in a big if - else black :(
<rszeno> this is why i said that scala can be used to control the 'flow' in eg
<rszeno> n3 sources you mean accept headers, file extensions, etc. ?
<jmvanel> N3Source subclasses are associated to different ways of translating stuff into N3 : from RDF, plain XML , UML, etc
<rszeno> a dispatcher who use a hash array? giventype: given-translator
<rszeno> giventype is computed based on some criteria: file extension, accept headers, server response status, etc.
<rszeno> what you have now in SourceFactory
<rszeno> adding a new type is as simple as building: 1. the decision logic for given type, 2. the translator and 3. adding the pair to dispacher
<rszeno> thing become complicated if you want to do 'error recovery', that mean the server return rdf/xml but is html+rdfa
<rszeno> but is still more easy to extend this based on 'current state' after attempting execution of the action( translation)
-------------------------------------
COMMIT
- added code so that http://education.data.gov.uk/id/school/118217 now works ;
in case of redirect, set the Accept header to application/rdf+xml
TODO SourceFactory is not modular , if I want to add new N3 source types, I have to add code in a big if - else block :(
the "keep actions separated from getters and decisions" is not there :(
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testProjectFromURL(eulergui.project.TestProject) test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
- follow Redirect Explicitly, that is, do not rely on {@link HttpURLConnection} default redirect following
Tested with http://education.data.gov.uk/id/school/118217 , but does not work on this site, because it needs a simple Accept header: application/rdf+xml
- set Request Property "User-Agent" => "EulerGUI/1.10"
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4113495
Saw this in HttpQuery.execCommon() in ARQ :
// +++ WORKAROUND for badly behaved apps. // Apps sometimes call QueryExecution.close straight after .execSelect. // that results in some resuls being seen, not all of them => XMl parse errors.
Is there a way to transform an HTML document into a PDF document?
My requirement is to transform hyperlinks into end notes, keeping the hyperlink in the body of the text.
oem-laptop: ~/bizz/taxochronos/src/audio-dam/ % sudo aptitude install gitk [sudo] password for jmv: Les NOUVEAUX paquets suivants vont être installés : gitk Les paquets suivants seront ENLEVÉS : libasound2{u} libasound2-plugins{u} libasyncns0{u} libatk1.0-0{u} libcairo2{u} libdatrie1{u} libflac8{u} libgdk-pixbuf2.0-0{u} libgtk2.0-0{u} libjack-jackd2-0{u} libjasper1{u} libjson0{u} libnspr4-0d{u} libnss3-1d{u} libogg0{u} libpango1.0-0{u} libpixman-1-0{u} libpulse0{u} libsamplerate0{u} libsndfile1{u} libspeexdsp1{u} libthai0{u} libvorbis0a{u} libvorbisenc2{u} libwrap0{u} libxcb-render0{u} libxcb-shm0{u} libxcomposite1{u} libxcursor1{u} libxft2{u} libxinerama1{u} libxrandr2{u} nspluginviewer{u} nspluginwrapper{u} 0 paquets mis à jour, 1 nouvellement installés, 34 à enlever et 0 non mis à jour. Il est nécessaire de télécharger 132 ko d'archives. Après dépaquetage, 19,8 Mo seront libérés. Voulez-vous continuer ? [Y/n/?] Y
http://software.intel.com/en-us/blogs/2011/05/18/the-first-thing-we-do-lets-kill-all-the-object-oriented-programming/
Example for processing HTTP 303 (redirect) :
http://education.data.gov.uk/id/school/118217
New Java module system : alas it's still in project
http://openjdk.java.net/projects/jigsaw/
http://openjdk.java.net/projects/jigsaw/doc/quickstart.html
Now we have a new table view for each N3 source.
Currently the class TableModelFromN3 takes as argument a list of triples from which row and columns are computed
Currently it has several flaws:
Some enhancements are already possible by the framework:
{ ?X ... } => { ?X :newProperty ?COMPUTED_VALUE }.
For point 1. , the design explained in previous post in the list must be used. More precisely, there will be a new class N3TableModel extending DefaultTableModel, and with methods :
/** populate the table with rows made of all triples ?uri ?P ?V */ void setRows( List<String> uri ); List<String> uri getRows(); List<String> uri getColumns(); /** add at the end of table a row made of all triples ?uri ?P ?V */ void add( String uri ); void remove( String uri ); /** add in table after given Uri a row made of all triples ?uri ?P ?V */ void add( String uri, String afterUri ); void add( String uri ); /** add a cell in the table; several cases: - if cell exists but is empty, it is filled - if cell exists but is not empty, a new colunm will be added - if cell does not exist, a new colunm will be added */ void addElement( ITriple t ); void removeElement( ITriple t );
For implementation, we will extract methods from TableModelFromN3.
For point 2., the above API offers methods. For implemeting drag and drop for columns, there is no obvious way, cf this Google search:
move rows by clicking jtable
One thing is sure, by default sorters in JTable manipulate the view, and the table model remains unchanged by default, see :
http://docs.oracle.com/javase/tutorial/uiswing/components/table.html#sorting
In list semantic-web this drew my attention :
implementation of the Linked Data API [2]. Elda is available from
the downloads page [3] of http://elda.googlecode.com. Elda is
open source available by cloning its Mercurial repository [4].
The Linked Data API provides a configurable way to access RDF data
using simple RESTful URLs that are translated into queries to a SPARQL
endpoint. The API developer writes an API spec (in RDF) which specifies
how to translate URLs into queries.
[1] http://www.epimorphics.com
[2] http://code.google.com/p/linked-data-api/
[3] http://code.google.com/p/elda/downloads/list
[4] http://elda.googlecode.com/hg/
[5] http://elda.googlecode.com/hg/ReleaseNotes/Release1.2.8.text
D2RQ is an open-source system for database-to-RDF mapping. It makes the contents of relational databases accessible as SPARQL endpoints, as Linked Data, and as RDF dumps.
http://d2rq.org/
New features in this version include preliminary SPARQL 1.1 support, Firebird support, generation of RDFS/OWL schemas for databases, and download maps for making the content of CLOB/BLOB columns accessible via HTTP. Datatype compatibility with Oracle, MySQL, SQL Server and HSQLDB has been greatly improved, and many bugs have been fixed. See [2] for the full list of changes.
Idea: use generated form for query parameter or "simple SPARQL"
on Ubuntu I have other troubles : mouse becomes slow and irreponsive when there are 2 screens :(
<jmv_> on a single screen , everything works for me ubuntu
<jmv_> sound, and even skype video + sound :)
I experimented a way to leverage on Drools to automatically retract GUI components and content when some domain fact triple is retracted from the Knowledge Base.
We leverage on Drools thruth maintenance (alias logical insert) .
How to test :
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/
==> a new Window with "data" appears
x :p "new data" .
==> in new window , "new data" appears
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( :x :p "data" ) .
==> in new window , "data" disappears
How it works:
There is a Swing DefaultListModel associated to the URI :listModel .
Then the rule says: whenever there is a triple :x :p ?V , add ?V to the ListModel .
:listModel a java:javax-swing-DefaultListModel. { :x :p ?V . } => { :listModel javam:addElement ( ?V ). } .
The DefaultListModel is added in a JList object itself added to a JFrame ( standard Swing technology, just wrapped in N3 ) :
:JFRAME a java:javax-swing-JFrame . :JLIST a java:javax-swing-JList . :JLIST javam:setModel ( :listModel ) . :JFRAME javam:add :JLIST . :JFRAME javam:setSize ( 200 200 ) . :JFRAME java:visible true .
So the scene is set at step 2.
As a by-product, this has added to the KB an object DeferredMethodCall that represents the addElement() method call in the consequent of the rule. This is N3 + Drools engine machinery ( BTW it allows to make calls deferred until both subject and arguments are bound ) .
Now, when the triple :x :p "data" is retracted, Drools automatically retracts the DeferredMethodCall object representing the addElement() method call:
We added a class JavaObjectsRetractionListener implementing WorkingMemoryEventListener which is called when the DeferredMethodCall object is retracted. The listener calls removeElement when the method was addElement (also another common pattern : remove and add methods names).
So the element "data" is removed from DefaultListModel, which removes the list item in the window by standard Swing Model - View design pattern.
% identify myImage1.jpg myImage1.jpg JPEG 4608x3072 4608x3072+0+0 8-bit DirectClass 5.912MB 0.000u 0:00.000 % convert -resample 2300x1500 myImage1.jpg myImage1a.jpg
It took 2.6 Gb , more than the memory, so I was forced to kill the command !!!
<rszeno> i think i start something foolish
<jmv> :)
<rszeno> i join to few online courses, e-learning
<rszeno> accidentaly i discover there are few free and i was thinking that is not a bad idea to join
<rszeno> now i'm student,
<rszeno> ;
<jmv> :)
<jmv> what subjects are you taking ?
<rszeno> machine learning, natural language processing and model thinking
<jmv> :)
<rszeno> i'm tempted to join few others but i'm not sure if this three are not already too much
<jmv> what are the e-learning features of the platform ? just presentations or videos , or also personalized questions and exercices ?
<rszeno> prezentation, learning materials, problems, programming, tests, forum for learning in groups
<rszeno> https://www.coursera.org/landing/hub.php
<rszeno> http://www.ml-class.org/course/auth/welcome
<rszeno> game theory, is Shovam course
<rszeno> half of it
<rszeno> :) this is devide by number of theachers in fact, not contribution
------------------------------------
<rszeno> anyway, i have a relative solid background re this subject
<rszeno> markov, bayes and statistics/probablility are part of my work
<rszeno> anyway i still have probably a lot of things to learn, :) this is never ends
<rszeno> do you use R and octave?
<rszeno> if not probably you will need them now, :)
<jmv> no, I have little knowledge on probability and statistics, and no experience of tools :( .
<rszeno> is very useful but unfortunately many people misunderstand both of them
<rszeno> http://zedshaw.com/essays/programmer_stats.html
COMMIT
Leverage on Drools to automatically retract GUI components
- added class JavaObjectsRetractionListener implements WorkingMemoryEventListener
- Reactivated insertLogical in DroolsTripleHandler , and activated it in N3JavaMappingBuiltin
TESTED with test/n3JavaMapping-GUI.n3p: paste this in N3 shell:
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
- Retracting a plain N3 fact undoes the DeferredMethodCall, which removes the list item in the window !
Thread [N3 Shell] (Suspended (breakpoint at line 111 in TripleStoreDrools)) TripleStoreDrools.remove(ITriple) line: 111 CRUD_builtins.acceptList(String, String, List<String>, String) line: 116 DroolsTripleHandler.acceptList(String, LinesAndCols, String, LinesAndCols, List<String>, List<LinesAndCols>, String, LinesAndCols) line: 190 ParserLink.visitAllURI(LineTrackingTripleHandler) line: 681 N3SourcetoDrools.translate(IRDFIterator, String, boolean, boolean, boolean) line: 291 N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 263 N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 91 Project.translateToDrools(N3Source, boolean, boolean) line: 983 N3ConversionRefesher.updateKB(Project, N3Source) line: 173 UpdateN3Thread.run() line: 41 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 85 Project.addN3Source(N3Source, boolean) line: 310 Project.addN3Source(N3Source) line: 291 BasicRuntimeShell(BasicRuntime).parseN3Source(String) line: 241 BasicRuntimeShell(BasicRuntime).processTriplesOrRules(String) line: 204 BasicRuntimeShell(BasicRuntime).executeLine(String) line: 192 BasicRuntimeShell.run() line: 83 Thread.run() line: 722
<jmv> This is what I'll implement to retract GUI elements :
public interface WorkingMemoryEventListener extends EventListener { void objectInserted(ObjectInsertedEvent event); void objectUpdated(ObjectUpdatedEvent event); void objectRetracted(ObjectRetractedEvent event); }
Searching RuleBase.newStatefulSession() :
eulergui.inference.drools.impl - src/main/java - eulergui DroolsFactsLoadStore main(String[]) DroolsRunExportedProjectOldAPI main(String[]) N3SourcetoDrools launchDrools() N3SourcetoDrools() setRuleBase(RuleBase) samples - src/test/java - eulergui DroolsSample genericTestOldAPI(Object, String) unif - src/main/java - eulergui TripleStoreDrools createNewEmptyWorkingMemory_test() createNewEmptyWorkingMemory()
what I want to add today , in the case of retract of myImage "something"
add a listener in Drools for retraction of ?P javam:addElement ?C .
that will call :
?P.remove ( ?C)
<jmv> implemented the callback for retraction of add Java method calls , that calls remove
<jmv> it's not very clean and maybe not efficient ...
Paste this in N3 shell:
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
callback on this:
# DeferredMethodCall>> <http://test#listModel> <http://java.sun.com/method#addElement> ["data"]
Erreur pendant Engine N3 run ERROR in running Drools Inference Engine Cause: Exception executing consequence for rule "DeferredMethodCall" in infrastructure_rules: java.lang.UnsupportedOperationException: this is implemented by StatefulKnowledgeImpl
==> have to use : iterateObjects()
Reactivated insertLogical in DroolsTripleHandler , and activated it in N3JavaMappingBuiltin
==> Now the test works !!!!!!!!!!
Retracting a plain N3 fact undoes the DeferredMethodCall , which removes the list item in the window !!! :)))
Tests have usual errors :
Results : Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_cv2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait AbstractButton with text "Skill" loaded test_ecore2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "title" loaded test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded test_foaf_import2(eulergui.gui.TestGenericGuiGeneration): Wait JLabel with text "gender" loaded test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded Tests run: 185, Failures: 1, Errors: 5, Skipped: 0
<rszeno> found one: http://www.cs.virginia.edu/~evans/cs655/readings/smalltalk.html
<rszeno> is fine that web is monotonic, :)
<jmv> Design Principles Behind Smalltalk
<jmv> Daniel H. H. Ingalls
<jmv> Learning Research Group
<jmv> Xerox Palo Alto Research Center
<jmv> 3333 Coyote Hill Rd
<jmv> Palo Alto, CA 94304
<jmv> BYTE Magazine, August 1981. Reproduced with permission.
<jmv> ?
<rszeno> imo, this article is the best presentation of what oop is
<jmv> OK, I got the same in PDF
<rszeno> from where?
<jmv> http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cts=1331387702133&ved=0CDMQFjAA&url=http%3A%2F%2Fuserweb.cs.utexas.edu%2F~shmat%2Fcourses%2Fcs345%2Fingalls.pdf&ei=LF1bT6jxAYmr0QWilY3bDQ&usg=AFQjCNHQiP9epIbrJXfrP658RLYV0wTPag
<jmvanel> once more I'm doing something that is not on the roadmap
<jmvanel> because I forgot to add it
<rszeno> ?
<jmvanel> I try a way to leverage on Drools to automatically retract GUI components and content when some fact triple is retracted
<jmvanel> That is, leverage on Drools TMS .
<rszeno> events, :)
<jmvanel> yes
<rszeno> dangerous sport, :)
<rszeno> we use to forget that 4-th dimension, time, exists
<jmvanel> this is what Euler does
This is my use case .
:listModel a java:javax-swing-DefaultListModel. { :x :p ?V . } => { :listModel javam:addElement ( ?V ). } .
If I retract the triple
:x :p "data" .
, I want that "data" disappears in the generated window .
Here is the N3 shell session :
~/bin/n3shell test/n3JavaMapping-GUI.n3p
...
Bound prefixes: [:, eg:, java:, javam:]
==> ?A ?B ?C .
?A ?B ?C .
FactCount: 10
<http://test#x> <http://test#p> "data" .
_:list0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://test#listModel> .
_:list0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
==> :a :a :a .
:a :a :a .
FactCount: 15
==> @prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> .
@prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> .
FactCount: 15
==> _:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
_:d kb:retract ( <http://test#x> <http://test#p> "data" ) .
FactCount: 26
<jmv> In this example, the domain model that is automatically added to the GUI is the set :x :p ?V .
<jmv> the event stack is :
<jmv> add some :x :p "something" . ( or retract )
<jmv> this calls addElement on the Java object ListModel
<jmv> then automatically by standard Java observer design pattern , the JList GUI object is updated
<jmv> And what I want to add today , in the case of retract of :x :p "something"
add a listener in Drools for retraction of ?P javam:addElement ?C .
that will call :
?P.remove ( ?C)
This will automatically remove the widget, by standard Java observer design pattern.
I saw a strange crash in commad line (works from eclipse ) :
% ~/bin/n3shell test/n3JavaMapping-GUI.n3p Exception in thread "main" java.lang.IllegalAccessError: tried to access field com.hp.gloze.Gloze.target from class eulergui.inputs.N3SourceFromXML_Gloze at eulergui.inputs.N3SourceFromXML_Gloze.convertToN3(N3SourceFromXML_Gloze.java:94) at eulergui.project.N3Source.manageN3Cache(N3Source.java:609) at eulergui.project.N3Source.doUpdate(N3Source.java:407) at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:47) at eulergui.project.N3Source.placeInProject(N3Source.java:333) at eulergui.project.N3Source.prepare(N3Source.java:357) at eulergui.inputs.N3SourceFromXML_Gloze.prepare(N3SourceFromXML_Gloze.java:46) at n3_project.SourceFactory.addSource(SourceFactory.java:109) at eulergui.CommandLineArguments.makeProjectFromEulerCommandLine(CommandLineArguments.java:121) at eulergui.CommandLineArguments.makeProjectsFromUserArgument(CommandLineArguments.java:71) at n3_project.ProjectGUI.main(ProjectGUI.java:202)
REFACTOR : finish move math stuff from DroolsTripleHandler to class MathBuiltins
REFACTOR : move processMathBuiltin() from DroolsTripleHandler to class MathBuiltins
REFACTOR extract class LogBuiltins from DroolsTripleHandler
This works with Drools/N3 engine :
@prefix : <http://example.com#> . :a :p (10 20) . { :a :p (10 20) } => { :a :p :v . } .
But this is not working:
{ :a :p (?V1 ?V2) } => { :a :p ?V1 . } .
Because it translates into :
rule "list-in-antecedent.n3 0"
when
$Triple_1 : Triple( subject == "<http://example.com#a>", predicate == "<http://example.com#p>", object == "( ?V1 ?V2 )" )
then ...
<rszeno> is like using an external css file to style a page, :)
<rszeno> or fresnel to change the view and content of data
<rszeno> biggest avantage of triples is that are 6-tuples, :)
<jmvanel> were you abler to install an run fresnel ?
<rszeno> not yet
<jmvanel> didn't success
<rszeno> ?
<jmvanel> didn't succeed in running fresnel
<rszeno> which one?
<jmvanel> you icon made me think :)
<jmvanel> fresnel , there are several ?
<jmvanel> it's a spec ?
<rszeno> only two parts are tricky, the fsl parser and the generator
<rszeno> yes, and manuals
<rszeno> one minute
<rszeno> http://www.w3.org/2005/04/fresnel-info/manual/
<rszeno> http://www.w3.org/2005/04/fresnel-info/fsl/
<rszeno> it need a extension for events
<rszeno> are few implementations, one in java, hardcoded, i don't like it defeat the purpose of fresnel
<rszeno> ww in python but i didn't succed to make it work
<rszeno> graphviz ontology
<rszeno> http://www.w3.org/2001/02pd/gv
<rszeno> google loose search engine market, :)
<jmvanel> in favor of who ?
<rszeno> baidu probably
<rszeno> the rest of se anyway
<rszeno> last year i stop using google doc
<rszeno> one month ago i stop using google search, :)
<rszeno> if they continue with this js mess i will probably stop to use their mail
<rszeno> anyway yahoo is not better then google
<rszeno> http://search.carrot2.org/stable/search
<rszeno> but this is a metase
<rszeno> give fine results
<rszeno> cuil seems closed
<rszeno> and quintura is same vizual mess, :)
<rszeno> did you take a look at proton?
Results : Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*"
Now builtins are taken in account; tested with :
:tune :genre "Blues" . @prefix string: <http://www.w3.org/2000/10/swap/string#>. { ?X ?P ?V0. ?V0 string:contains "Blues" . } => { :result :member ?X .}.
The trouble was due to changing the rule base after fact were inserted .
java -cp target/eulergui-1.10-SNAPSHOT-jar-with-dependencies.jar \ deductions.runtime.BasicRuntimeShell
:tune :genre "Blues" . @prefix string: <http://www.w3.org/2000/10/swap/string#>. { ?X ?P ?V0. ?V0 string:contains "Blues" . } => { :result :member ?X .}. ?A ?B ?C .
Same trouble with Drools 5.4.0-Beta2 !!!!!
The Drools code is :
rule "2 0" when $Triple_1 : Triple( $X : subject, $P : predicate, $V0 : object ) eval( $V0.toString().contains( "Blues" .toString() ) ) then Triple newTriple = new Triple(); newTriple.setSubject( "<http://user-input/result>" ); newTriple.setPredicate( "<http://user-input/member>".toString() ); newTriple.setObject( $X ); insertLogical( newTriple );
java.util.logging.Logger.getLogger("theDefault").setLevel( java.util.logging.Level.INFO )
Due to double KB initialization, queries do not work.
First time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools)) N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037 N3SourcetoDrools.<init>() line: 162 N3DroolsEngineFacade.<init>() line: 44 Project.initializeDrools() line: 1004 Project.getTranslator() line: 1059 ApplicationKB.<init>() line: 96 ApplicationKB.instance() line: 77 PlayerGUI.initKB() line: 85 PlayerGUI.init() line: 59 PlayerGUI.main(String[]) line: 48
Second time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools)) N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037 N3SourcetoDrools.setRuleBase(RuleBase) line: 1030 N3DroolsEngineFacade.setRuleBase(RuleBase) line: 175 Project.compiledRulebaseLoadedFromCache(String) line: 744 Project.translateN32Drools(boolean) line: 891 Project.prepareDrools(boolean) line: 870 ApplicationKB.<init>() line: 99 ApplicationKB.instance() line: 77 PlayerGUI.initKB() line: 85 PlayerGUI.init() line: 59 PlayerGUI.main(String[]) line: 48
-------------------------------------------------
Second time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools))
N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037
N3SourcetoDrools.<init>() line: 162
N3DroolsEngineFacade.<init>() line: 44
Project.initializeDrools() line: 1004
Project.getTranslator() line: 1059
ApplicationKB.<init>() line: 96
ApplicationKB.instance() line: 77
PlayerGUI.initKB() line: 80
PlayerGUI.init() line: 55
PlayerGUI.main(String[]) line: 44
First time:
Thread [main] (Suspended (modification of field workingMemory in N3SourcetoDrools)) N3SourcetoDrools.setWorkingMemory(StatefulSession) line: 1037 N3SourcetoDrools.setRuleBase(RuleBase) line: 1030 N3DroolsEngineFacade.setRuleBase(RuleBase) line: 175 Project.compiledRulebaseLoadedFromCache(String) line: 744 Project.translateN32Drools(boolean) line: 891 Project.prepareDrools(boolean) line: 870 KBManager.initKB() line: 35 Player.<init>() line: 16 PlayerGUI.<init>() line: 31 PlayerGUI.main(String[]) line: 43
Daemon Thread [SwingWorker-pool-4-thread-1] (Suspended (breakpoint at line 543 in N3Source)) N3Source.hasChanged() line: 543 N3Source.manageN3Cache(N3Source) line: 580 IOManager.getLocalCache(N3Source) line: 179 N3Source.getLocalCache() line: 746 N3Source.getLocalN3() line: 742 N3Source.manageParseN3() line: 413 N3Source.update() line: 393 N3Source.parseResult() line: 479 N3SourcetoDrools.translate(N3Source, boolean, boolean, boolean) line: 258 N3DroolsEngineFacade.translate(N3Source, boolean, boolean, boolean) line: 91 Project.translateToDrools(N3Source, boolean, boolean) line: 983 N3ConversionRefesher.updateKB(Project, N3Source) line: 173 UpdateN3Thread.run() line: 41 N3ConversionRefesher.doN3SourceAdded(Project, N3Source) line: 77 N3ConversionRefesher.n3SourceAdded(Project, N3Source) line: 57 ProjectChangeSupport.fireAddN3Source(Project, N3Source) line: 85 Project.addN3Source(N3Source, boolean) line: 310 Project.addN3Source(N3Source) line: 291 SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 277 SourceFilesManagement$AddN3Action$1AddN3SourceWorker.doInBackground() line: 1 SwingWorker$1.call() line: 296 FutureTask$Sync.innerRun() line: 334 SwingWorker$2(FutureTask<V>).run() line: 166 SourceFilesManagement$AddN3Action$1AddN3SourceWorker(SwingWorker<T,V>).run() line: 335 ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) line: 1110 ThreadPoolExecutor$Worker.run() line: 603 Thread.run() line: 722
Failed tests: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): contains Junior_Wells Tests in error: test_cv2(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "Skill" loaded
http://ontologydesignpatterns.org/wiki/Main_Page
COMMIT
refactor GUI tests: extract addTextInUnsavedEditor()
<jmvanel> rszeno, what about SPARQL queries in EG ?
<rszeno> i will try to finish it asap
<jmvanel> :) no rush
<jmvanel> a new release could be made tomorrow
<jmvanel> also I'm tracking a bug regarding the user Drools + N3 KB : when N3 data are added to project , the KB is not updated ; just after saving and restarting , it is effective :(
<jmvanel> no functional test for that :(
<jmvanel> also the Drools / N3 engine does match in antecedent :
?S :prop ( ?L1 L2 ) .
<jmvanel> ( working on the musical semantic player , but alas this is not OSS for now ...
<jmvanel> I'll ask permission to put the audio tag N3 source in OSS in EG ...
equalIgnoringCase
containsIgnoringCase
endsWith
greaterThan
lessThan
startsWith
{ ?X ?P ?V . ?V string:contains "my value" . } => { eg:result list:member ?X . } .
?X :pref:myProperty ?V . ?V string:contains "my value" .
{ :a :a :a } => { :b :b :b } . :a :a :a . :b ?X ?Y . @prefix kb: <http://deductions.sf.net/ontology/knowledge_base.owl#> . _:d kb:retract ( :a :a :a ) .
com.opensymphony.oscache.base.persistence.CachePersistenceException: Unable to write '/home/jmv/.eulergui/rule_bases_cache/application/C/A/D/CADE3025B7A4C01EC318D52A21F08252.cache' in the cache. Exception: java.lang.UnsupportedOperationException, Message: null at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:376) at com.opensymphony.oscache.plugins.diskpersistence.AbstractDiskPersistenceListener.store(AbstractDiskPersistenceListener.java:238) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.persistStore(AbstractConcurrentReadCache.java:1113) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:1679) at com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache.put(AbstractConcurrentReadCache.java:864) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:637) at com.opensymphony.oscache.base.Cache.putInCache(Cache.java:602) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:249) at com.opensymphony.oscache.general.GeneralCacheAdministrator.putInCache(GeneralCacheAdministrator.java:259) at eulergui.infrastructure.cache.URICacheOSCache.cacheObject(URICacheOSCache.java:77) at eulergui.project.Project.translateN32Drools(Project.java:898) at eulergui.project.Project.prepareDrools(Project.java:870) at deductions.runtime.BasicRuntime.initialize(BasicRuntime.java:124) at eulergui.tools.N3ShellFactory.makeN3ShellPane(N3ShellFactory.java:27) at eulergui.tools.N3ShellFrame.makeN3ShellFrame(N3ShellFrame.java:57) at eulergui.tools.N3ShellFrame.actionPerformed(N3ShellFrame.java:52) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
the next AGI conference should be in Oxford, way closer to Paris
http://docs.oracle.com/javase/tutorial/uiswing/components/progress.html
http://www.google.fr/search?hl=fr&q=FCA+ontology
COMMIT 1
- extract makeProgressFrame()
- call n3Source.getProject().fireN3SourceUpdated(n3Source);
instead of n3Source.doUpdate(false);
TODO :
- feature: have ProgressFrame in the case of SPARQL source update
- fix: when the SELECT/CONSTRUCT kind changes in the SPARQL source, update the the table button
- internal: further tidy for strict MVC pattern
COMMIT 2
- rename fireN3SourceUpdated(n3) to project.fireN3SourcePrepared : clearer
- SPARQLServiceInputAction : FIX: for Choose Service Action call n3Source.getProject().fireN3SourceChanged(n3) instead of fireN3SourceUpdated() : progressFrame did not work because fireN3SourceUpdated returns immediately
- add class N3SourceWorker : use SwingWorker and InferenceProgressFrame for long tasks in background.
COMMIT 3
TODO when opening dbpedia.n3p , all SPARQL queries are done before the GUI appears :(
mvn -Dmaven.test.skip=true deploy
Tests run: 182, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] <<< maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui <<< [INFO] [INFO] --- maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui --- [WARNING] Unable to locate Test Source XRef to link to - DISABLED [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 17:09.321s
http://mbostock.github.com/d3/ex/force.html mentioned by melvster
<melvster> ivan_herman: jmvanel: yes ive just switched from rdf / json to json - ld ... also experimenting with json LD macros https://github.com/antoniogarrote/json-ld-macros
<jmvanel> thanks ivan_herman and melvster , I like more rdf / json ; json ld tried to reproduce the Turtle syntaxic sugar , but it make the dish less healthy I think
<melvster> jmvanel: thing is that I think rdf / json may no longer be maintained / supported
<ivan_herman> melvster: that may indeed be true
<melvster> tho, to be fair, it may not change much
<melvster> or need to change much
<ivan_herman> of course, Ian should know. But json-ld has quite some traction
<melvster> i guess is may need to change if subjects one day become literals
<melvster> s/is/it
* mhausenblas est parti (Quit: mhausenblas)
<melvster> the idea i think is that json-ld can be non disruptive wrt existing json 'apis'
<melvster> and if you use the macros you can even add your own context
<melvster> perhaps that's one way to make existing json into LD ... you could have a set of API / transformation triples made public
* diegolo (~diego@host51-140-dynamic.51-82-r.retail.telecomitalia.it) a rejoint #swig
<melvster> <API-URI> :hasContext <Context-URI>
<melvster> then you can have one team working on exposing data, and another team making it linked data
<melvster> jmvanel: one nice thing about LD is that it has a canonicalization algorithm so that you can more easily do things like signing
* chrigi s'appelle maintenant cmollekopf
<jmvanel> ok, I'll this for future reference . So JSON LD could be a useful tool for connecting SEMWEB sources producing JSON to d3 ?
* mhausenblas (~mhausenbl@wlan-nat.fwgal01.deri.ie) a rejoint #swig
<melvster> maybe yes
<melvster> that's the approach I think I'll take
try ARQ command line sparql.remote
upgrade to latest ARQ
AI training: Mulgara, Open Enzo
I'm looking for some kind of web application Open Source framework, backed by a SPARQL endpoint : either CMS, or collaborative, or data input and display.
But I can not find one!! it is possible that it does not exists; I just saw http://incubator.apache.org/clerezza/ , but it's more a general RDF toolkit than a toolkit for collaborative apps .
This is not the first time I search.
Semantic Web Interest Group IRC log : http://swig.xmlhack.com/
<rszeno> sri had developed, i don't know when, a bot detector, log analyzer based on snark i guess
<jmvanel> find no trace of snark in my blog ...
<jmvanel> and no trace in my little mind ...
<rszeno> http://en.wikipedia.org/wiki/SNARK_theorem_prover
<rszeno> http://www.ai.sri.com/pubs/files/986.pdf
# Action [Ajouter une requête SPARQL] starting! # Action [Ajouter une source N3 (URL)] effectuée
prefix foaf: <http://xmlns.com/foaf/0.1/> SELECT ?personnes ?nom FROM <http://www.w3.org/People/Berners-Lee/card> where { <http://www.w3.org/People/Berners-Lee/card#i> foaf:knows ?personnes. ?personnes foaf:name ?nom. }
http://www4.wiwiss.fu-berlin.de/bizer/pub/linkeddatatutorial/
<jmvanel> bonjour rszeno
<jmvanel> beside EG and roqet , what other tool could I use for remore SPARQL queries ?
<jmvanel> remote
<jmvanel> could I just use wget or curl ?
<jmvanel> it seems that SPARQL support is broken :(
<jmvanel> no, in fact it's just that it's not possible to create new SELECT queries
http://www.sparql.org/query.html
looking for an RDF or N-triples dump of Linked Open Data sources
<jmvanel> AFAIK only a JSON dump of KCAN is available , and the CKAN API is not SPARQL
<kwijibo> jmvanel: http://dsi.lod-cloud.net
<kwijibo> also http://semantic.ckan.net/sparql
<jmvanel> haaaaaaa thanks kwijibo
<kwijibo> jmvanel: np - there is also http://dsi.lod-cloud.net/sparql
<kwijibo> "http://dsi.lod-cloud.net/ is part of the LATC project funded by EU FP7 http://latc-project.eu
SPARQL Endpoints Status
http://labs.mondeca.com/sparqlEndpointsStatus/
Returns nothing : http://thedatahub.org/dataset?q=botany , but plants returns this and others :
http://thedatahub.org/dataset/linked-open-data-of-ecology
http://thedatahub.org/dataset?q=foaf
http://thedatahub.org/dataset?q=foaf&res_format=api/sparql
http://thedatahub.org/dataset?tags=format-foaf&q=foaf&res_format=api/sparql
http://thedatahub.org/dataset/dcs-sheffield
http://wiki.ckan.org/API
EulerGUI : this runs forever ( returns HTML ) :
eg http://identi.ca/user/33
http://www.w3.org/People/Berners-Lee/FAQ.html
http://www.w3.org/People/Berners-Lee/card.n3
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
CONSTRUCT {?X foaf:knows ?Y .} WHERE {?X foaf:knows ?Y .} LIMIT 300
looks good : http://www.productontology.org/
Ontology ID http://www.productontology.org/#
Namespace http://www.productontology.org/id/
Class Identifier http://www.productontology.org/id/Hammer
Added this in my home page :
<link rel="alternate" type="application/rdf+xml" href="jmv.rdf#me" />
eg 'http://jmvanel.free.fr/jmv.rdf#me' ... java.lang.IllegalArgumentException: URI has a fragment component at java.io.File.<init>(File.java:399) at n3_project.ProjectGUI.setLastFile(ProjectGUI.java:894) at n3_project.ProjectGUI.<init>(ProjectGUI.java:185) at n3_project.ProjectGUI.newWindow(ProjectGUI.java:260) at n3_project.ProjectGUI.main(ProjectGUI.java:219)
Protege 4.2 build 256, fact++, , platform specific libraries issue on Debian 6
http://protege-ontology-editor-knowledge-acquisition-system.136.n4.nabble.com/Protege-4-2-build-256-fact-platform-specific-libraries-issue-on-Debian-6-td4393521.html
Error 1 Logged at Thu Feb 16 10:42:53 CET 2012 OWLRuntimeException: java.lang.UnsatisfiedLinkError: /tmp/ProtegeCache-720a4ee6-1463-4641-ae2d-e457b8965773/bundle14/version0.0/bundle.jar-lib/0/lib/native /64bit /libFaCTPlusPlusJNI.so: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /tmp/ProtegeCache-720a4ee6-1463-4641-ae2d-e457b8965773/bundle14/version0.0/bundle.jar-lib/0/lib/native/64bit/libFaCTPlusPlusJNI.so) uk.ac.manchester.cs.factplusplus.protege.FaCTPlusPlusFactory.getReasonerFactory(Unknown Source) org.protege.editor.owl.model.inference.ReasonerInfoComparator.compare(ReasonerInfoComparator.java:9) org.protege.editor.owl.model.inference.ReasonerInfoComparator.compare(ReasonerInfoComparator.java:5) java.util.TimSort.countRunAndMakeAscending(TimSort.java:325) java.util.TimSort.sort(TimSort.java:189) java.util.TimSort.sort(TimSort.java:173) java.util.Arrays.sort(Arrays.java:659) java.util.Collections.sort(Collections.java:217) org.protege.editor.owl.model.OWLWorkspace.rebuildReasonerMenu(OWLWorkspace.java:500)
My bug report : SPARQL query fails with Jena ARQ 2.8.8
<rszeno> 4.1 from roadmap for SPARQL generation
<rszeno> command line for engines can be generated from n3. this mean to control the flow using rules
<jmvanel> which also means having a rule engine controling another
<jmvanel> well maybe that's a good way ...
<jmvanel> but I really would like point 2 to be done
<jmvanel> Good news ! while preparing my AI course, I tested all of Jos' genric OWL+RDFS rules with Euler and Drools
<jmvanel> just had to fix something with integrity constraints.
[] a owl:Class ; rdfs:subClassOf :free-software-developer ; owl:intersectionOf (:developer [ a owl:Restriction ; owl:onProperty :participate-in ; owl:someValuesFrom [ a owl:Class ; owl:intersectionOf (owl:Thing :free-software-project) ] ]) .
You can then add this data to trigger the rule:
@prefix : <http://jmvanel.free.fr/jmv.rdf#> . @prefix sf: <http://sourceforge.net/projects/> . @prefix ex: <http://eulergui.sf.net/examples.owl#> . @keywords a. me ex:participate-in sf:eulergui ; a ex:developer. sf:eulergui a ex:free-software-project .
which should entail:
me a ex:free-software-developer .
I tried to simplify the OWL expression :
:participateRestriction a owl:Restriction ; owl:onProperty :participate-in ; owl:someValuesFrom :free-software-project ; rdfs:subClassOf :free-software-developer .
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "dbpedia-construct.sparql" getLocalN3(): /home/jmv/.eulergui/n3_cache/dbpedia-construct.sparql_7686357754521563757.n3 getURI(): dbpedia-construct.sparql at eulergui.project.N3Source.manageParseN3(N3Source.java:449) at eulergui.project.N3Source.update(N3Source.java:393) at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121) at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40) at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77) at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:85) at eulergui.project.Project.rethrowEventsPlease(Project.java:1376) at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:189) at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1506) at n3_project.ProjectGUI.rethrowEventsExceptListener(ProjectGUI.java:325) at n3_project.ProjectGUI.access$000(ProjectGUI.java:71) at n3_project.ProjectGUI$1.run(ProjectGUI.java:314) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.NullPointerException at net.sf.parser4j.parser.service.Parser.shiftByToken(Parser.java:797) at net.sf.parser4j.parser.service.Parser.parse(Parser.java:397) at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:177) at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155) at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117) at eulergui.project.N3Source.doParseN3(N3Source.java:502) at eulergui.project.N3Source.manageParseN3(N3Source.java:433) ... 13 more
URI list ==> triple list ==> TableModelFromN3
?E list:in ?LIST. ?E ?P ?V. => :tableComponent :add ( ?E ?P ?V ) .
<utopiah_> jmvanel: too late but it might still interest you http://decibel.cirsfid.unibo.it/icail2011-workshop/?page_id=32
<hivemind-sb> Title: About Computational Law Workshop | icail2011 workshop (at decibel.cirsfid.unibo.it)
<jmvanel> thanks utopia
<jmvanel> indeed interesting , but I don't run after conferences right now, I look for customers :) willing to have rule-based applications using my framework ...
<jmvanel> I made my first video on youtube (in french for now ) : http://www.youtube.com/watch?v=KMmo9dvJEKI
<hivemind-sb> Title: démo cadriciel EulerGUI : mélanger règles métier et règles Java - YouTube (at www.youtube.com)
<jmvanel> Title: mix business rules and Java
rszeno, I guess it's not in your radar, but I'm looking for some kind of collaborative web app backed by a SPARQL endpoint
My bug report : SPARQL query fails with Jena ARQ 2.8.8
java.lang.RuntimeException: Erreur pendant re-parsing N3 source "owl-rules.n3" getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/owl-rules.n3 getURI(): owl-rules.n3 at eulergui.project.N3Source.manageParseN3(N3Source.java:449) at eulergui.project.N3Source.update(N3Source.java:393) at eulergui.gui.controller.N3ConversionRefesher.updateN3(N3ConversionRefesher.java:121) at eulergui.gui.controller.UpdateN3Thread.run(UpdateN3Thread.java:40) at eulergui.gui.controller.N3ConversionRefesher.doN3SourceAdded(N3ConversionRefesher.java:77) at eulergui.gui.controller.N3ConversionRefesher.n3SourceAdded(N3ConversionRefesher.java:57) at eulergui.project.ProjectChangeSupport.fireAddN3Source(ProjectChangeSupport.java:85) at eulergui.project.Project.rethrowEventsPlease(Project.java:1376) at eulergui.project.ProjectChangeSupport.rethrowEventsExceptListener(ProjectChangeSupport.java:189) at eulergui.project.Project.rethrowEventsExceptListener(Project.java:1506) at n3_project.ProjectGUI.rethrowEventsExceptListener(ProjectGUI.java:325) at n3_project.ProjectGUI.access$000(ProjectGUI.java:71) at n3_project.ProjectGUI$1.run(ProjectGUI.java:314) at java.lang.Thread.run(Thread.java:722) Caused by: net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:861) at net.sf.parser4j.parser.service.Parser.readTerminalValueAndParse(Parser.java:642) at net.sf.parser4j.parser.service.Parser.parse(Parser.java:387) at eulergui.parser.n3.impl.parser4j.service.N3Parser.parseN3(N3Parser.java:177) at eulergui.drools_engine.ParserLink.doParse(ParserLink.java:155) at eulergui.drools_engine.ParserLink.parse(ParserLink.java:117) at eulergui.project.N3Source.doParseN3(N3Source.java:502) at eulergui.project.N3Source.manageParseN3(N3Source.java:433) ... 13 more Caused by: java.io.IOException: closed at net.sf.parser4j.parser.service.ParserInput.read(ParserInput.java:56) at net.sf.parser4j.parser.service.Parser.readTerminalValue(Parser.java:859) ... 20 more ERROR [rethrowEventsExceptListener(guiUpdater)] (TemporaryFrame.java:48) - TemporaryFrame.TemporaryFrame(): ERROR during project opening (N3 rethrow Event) Erreur pendant re-parsing N3 source "owl-rules.n3" getLocalN3(): /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/owl-rules.n3 getURI(): owl-rules.n3 Cause: net.sf.parser4j.parser.service.ParserException: java.io.IOException: closed ERROR
pasted from http://wiki.dbpedia.org/OnlineAccess :
There is a public Faceted Browser search
and find user interface at http://DBpedia.org/fct, and a corresponding faceted
web service over the DBpedia data set at
http://DBpedia.org/fct/service. Usage details
can be found in the
Virtuoso Facets Web Service documentation.
http://dbpedia.org/describe/?url=http://dbpedia.org/resource/B.B._King
@pkleef
A similar SELECT query works :
PREFIX dbpedia: <http://dbpedia.org/resource/> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT DISTINCT ?pname ?v WHERE { dbpedia:Buddy_Guy ?p ?v . ?p rdfs:label ?pname . }
In the console :
Caused by: com.hp.hpl.jena.shared.JenaException: org.xml.sax.SAXParseException; lineNumber: 521; columnNumber: 92; The reference to entity "q" must end with the ';' delimiter. at com.hp.hpl.jena.rdf.model.impl.RDFDefaultErrorHandler.fatalError(RDFDefaultErrorHandler.java:45) at com.hp.hpl.jena.rdf.arp.impl.ARPSaxErrorHandler.fatalError(ARPSaxErrorHandler.java:35) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.warning(XMLHandler.java:225) at com.hp.hpl.jena.rdf.arp.impl.XMLHandler.fatalError(XMLHandler.java:255) at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source) at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source) at org.apache.xerces.impl.XMLScanner.scanAttributeValue(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanAttribute(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source) at com.hp.hpl.jena.rdf.arp.impl.RDFXMLParser.parse(RDFXMLParser.java:142) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:158) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:145) at com.hp.hpl.jena.rdf.arp.JenaReader.read(JenaReader.java:215) at com.hp.hpl.jena.rdf.model.impl.ModelCom.read(ModelCom.java:197) at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execModel(QueryEngineHTTP.java:169) at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execConstruct(QueryEngineHTTP.java:158) at com.hp.hpl.jena.sparql.engine.http.QueryEngineHTTP.execConstruct(QueryEngineHTTP.java:156) at n3_project.SPARQLToN3Converter.doQuery(SPARQLToN3Converter.java:79) at eulergui.inputs.N3SourceFromSPARQLSource.doUpdate(N3SourceFromSPARQLSource.java:96) ... 14 more
In the debugger:
Thread [main] (Suspended (breakpoint at line 44 in RDFDefaultErrorHandler)) RDFDefaultErrorHandler.fatalError(Exception) line: 44 JenaHandler(ARPSaxErrorHandler).fatalError(SAXParseException) line: 35 RDFXMLParser(XMLHandler).warning(Taint, int, SAXParseException) line: 225 RDFXMLParser(XMLHandler).fatalError(SAXParseException) line: 255 ErrorHandlerWrapper.fatalError(String, String, XMLParseException) line: not available XMLErrorReporter.reportError(XMLLocator, String, String, Object[], short) line: not available XMLErrorReporter.reportError(String, String, Object[], short) line: not available XMLDocumentScannerImpl(XMLScanner).reportFatalError(String, Object[]) line: not available XMLDocumentScannerImpl(XMLScanner).scanAttributeValue(XMLString, XMLString, String, boolean, String) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanAttribute(XMLAttributes) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanStartElement() line: not available XMLDocumentScannerImpl$ContentDispatcher(XMLDocumentFragmentScannerImpl$FragmentContentDispatcher).dispatch(boolean) line: not available XMLDocumentScannerImpl(XMLDocumentFragmentScannerImpl).scanDocument(boolean) line: not available StandardParserConfiguration(DTDConfiguration).parse(boolean) line: not available StandardParserConfiguration(DTDConfiguration).parse(XMLInputSource) line: not available RDFXMLParser$SAXParserWithEncodingCheck(XMLParser).parse(XMLInputSource) line: not available RDFXMLParser$SAXParserWithEncodingCheck(AbstractSAXParser).parse(InputSource) line: not available RDFXMLParser.parse(InputSource, String) line: 142 JenaReader.read(Graph, InputSource, String, Model) line: 158 JenaReader.read(Model, InputSource, String) line: 145 JenaReader.read(Model, InputStream, String) line: 215 ModelCom.read(InputStream, String) line: 197 QueryEngineHTTP.execModel(Model) line: 169 QueryEngineHTTP.execConstruct(Model) line: 158 QueryEngineHTTP.execConstruct() line: 156 SPARQLToN3Converter.doQuery(Query, URL, String, File) line: 79 N3SourceFromSPARQLSource.doUpdate(boolean) line: 99 TestSPARQL.testDoUpdateBoolean() line: 32 NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available [native method] NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57 DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43 Method.invoke(Object, Object...) line: 601 FrameworkMethod$1.runReflectiveCall() line: 45 FrameworkMethod$1(ReflectiveCallable).run() line: 15 FrameworkMethod.invokeExplosively(Object, Object...) line: 42 InvokeMethod.evaluate() line: 20 BlockJUnit4ClassRunner(ParentRunner<T>).runLeaf(Statement, Description, RunNotifier) line: 263 BlockJUnit4ClassRunner.runChild(FrameworkMethod, RunNotifier) line: 68 BlockJUnit4ClassRunner.runChild(Object, RunNotifier) line: 47 ParentRunner$3.run() line: 231 ParentRunner$1.schedule(Runnable) line: 60 BlockJUnit4ClassRunner(ParentRunner<T>).runChildren(RunNotifier) line: 229 ParentRunner<T>.access$000(ParentRunner, RunNotifier) line: 50 ParentRunner$2.evaluate() line: 222 BlockJUnit4ClassRunner(ParentRunner<T>).run(RunNotifier) line: 300 JUnit4TestMethodReference(JUnit4TestReference).run(TestExecution) line: 50 TestExecution.run(ITestReference[]) line: 38 RemoteTestRunner.runTests(String[], String, TestExecution) line: 467 RemoteTestRunner.runTests(TestExecution) line: 683 RemoteTestRunner.run() line: 390 RemoteTestRunner.main(String[]) line: 197
Tests in error: testDoUpdateBoolean(eulergui.inputs.TestSPARQL): N3SourceFromSPARQLSource.doUpdate(): file:/tmp/eg-9043668807154012866.n3 ; http://dbpedia.org/sparql testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Wait for "getText() Component Chooser "@prefix "(..) testSimpleProjectLocal(eulergui.gui.TestJavaEditor): Frame Title Component Chooser ".*book\.n3$|.*book\.n3 .*"
TestSPARQLInGUI and TestSPARQL are related to a dbPedia problem ( see 2012-02-13 ).
marc: tu as le paquet sysstat ?
moi: ok : installé
moi: j(ai ces colonnes :
# Time TGID TID %usr %system %guest %CPU CPU minflt/s majflt/s VSZ RSS %MEM kB_rd/s kB_wr/s kB_ccwr/s cswch/s nvcswch/s Command
marc: avec ca tu as la tendance naturelle des process au locking
moi: combinable avec une moteur de règles donc ?
marc: oui
ex
si %cpu user tres haut
moi: je lance EG
marc: implqque que le thread est dans le code de l'utilsateur -> thread ump -> correaltion avec la methode
si %sys elevé
alors plsucas possible
18:13
bcps de rkb wkb le thread consomme du temps dans des call systeme io blocks -> thread dump
methode coupable
moi: rkb wkb ?
marc: si voluntary context swicth élévé et peu d'ecriture ==> forte presomption de locking
kB_rd/s kB_wr/s
c cool ?
;)
moi: ça a l'air bien
marc: un petit truc crafter au coin du feu
pidstat -udhtswr -C java | awk '{ if (( $7 > 0) || ( $8 == "%CPU" ) ){ print }}' > analyse.txt && jstack -l `pgrep java` | perl tda.pl >> analyse.txt
je t'envoie le perl
moi: ok
18:16
marc: ca fait quoi ?
ca prends un instantané des mesure systeme
en // ca oblige le process java a dumpé ces thread
ca convertis via le perl les id java en id systeme
18:17
et ca te fait un fichier d'analyser
moi: reçu le perl :)
marc: je debug des prod en 3 sec ;)
avec ca
j'ai une version degradé quand systat et pas installé
et bientot le developpeur de collectl
18:18
un concurrent de systat
un version qui gere les context switc
pidstat -C chromium -wIldhurt pidstat -C xchat -wIldhurt pidstat -C empathy -wIldhurt pidstat -C java -wIldhurt
marc: brace cun une tchon qui egnere des agent
pour la jvm
une sorte d'aop
mais sirect sur la vm
genre intercepte tous les call socket connect
tu voit l'idée
18:38
moi: oui
marc: et je te pris a chaud
;)
moi: :)
"une tchon" ?
marc: le tout c l'algo de correlation
truc
18:39
moi: ;)
btrace comme strace mais mieux adapté aux pg Java ?
marc: tiens cconnias tu autojump?
moi: non
marc: alors je vais te faire gagner 1 minute par jour
pour tous les jour futur
marc: http://www.youtube.com/watch?v=tnNyoMGnbKg
tu vas perdre 5 minute a voir la video et l'installer
mais noramlement c amortis jeudi prochain ;)
18:54
c un truc pour naviqguer dans les repertoire
j'en suis fou
moi: ok
marc: il memorise tes navigation
genre mon repertoire de travail
un autre petit outils
que j'aime ack-grep
un grep special code
et aussi git
I saw a regression here with Drools/N3 :
{ (1 2) math:sum ?R . (?R 4) math:product ?P . } => { :test :pass_expression true . :test :pass_expression ?P . } .
Broken :
{ ?PR a Pricing. ?PR consumerNumberProfit ?CNP. # ?CNP a ConsumerNumberProfit. # EST CE NECESSAIRE ? ?CNP consummerType ?CT. ?CT value ?CTVALUE. ?CNP number ?NUMBER. ?PR marginalCost ?COST. ( ?CTVALUE ?COST ) math:difference ?MARGIN. ( ?MARGIN ?NUMBER) math:product ?PV. } => { ?CNP profit ?PV. }.
translated as :
...
$Triple_6 : Triple( subject == $PR, predicate == "<http://deductions.sf.net/samples/princing.n3p.n3#marginalCost>", $COST : object )
then
Double $PV = new Double( MARGIN * Double.parseDouble( Triple.n3ValueToNumeric($NUMBER )) );
...
COMMIT
Drools/N3 engine: Reuse a variable in another math expression now works , e.g. :
{ (1 2) math:sum ?R .
(?R 4) math:product ?P . } =>
Drools/N3 engine: add implementation of math:difference, quotient and remainder
N3SourcetoDrools.translate(): java.lang.RuntimeException: Drools exception during package addition to rule base
java.lang.RuntimeException: translate(IRDFIterator iterator, ... file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/deductions/samples/pricing/pricing.n3
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:328)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:263)
at eulergui.inference.drools.impl.N3DroolsEngineFacade.translate(N3DroolsEngineFacade.java:91)
at eulergui.project.Project.doTranslateN32Drools(Project.java:941)
at eulergui.project.Project.translateN32Drools(Project.java:892)
at eulergui.project.Project.prepareDrools(Project.java:870)
at eulergui.project.Project.doRunDrools(Project.java:824)
at eulergui.project.Project.runDroolsTriples(Project.java:775)
at eulergui.inference.drools.DroolsInferenceEngine.launch(DroolsInferenceEngine.java:30)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:48)
at eulergui.gui.inference.InferenceSwingWorker.doInBackground(InferenceSwingWorker.java:17)
at javax.swing.SwingWorker$1.call(SwingWorker.java:296)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at javax.swing.SwingWorker.run(SwingWorker.java:335)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.RuntimeException: Drools exception during package addition to rule base
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:428)
at eulergui.inference.drools.impl.N3SourcetoDrools.translate(N3SourcetoDrools.java:321)
... 17 more
Caused by: org.drools.RuntimeDroolsException: pricing_n3_0.Rule_pricing_n3_0Eval0Invoker@1d02b098 : java.lang.ClassCastException: n3_project.helpers.LineTrackingTriple cannot be cast to java.util.List
at org.drools.rule.EvalCondition.isAllowed(EvalCondition.java:119)
at org.drools.reteoo.EvalConditionNode.assertLeftTuple(EvalConditionNode.java:178)
at org.drools.reteoo.JoinNode.updateSink(JoinNode.java:420)
at org.drools.reteoo.EvalConditionNode.attach(EvalConditionNode.java:132)
at org.drools.reteoo.builder.BuildUtils.attachNode(BuildUtils.java:150)
at org.drools.reteoo.builder.EvalBuilder.build(EvalBuilder.java:39)
at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73)
at org.drools.reteoo.builder.AccumulateBuilder.build(AccumulateBuilder.java:70)
at org.drools.reteoo.builder.PatternBuilder.attachPattern(PatternBuilder.java:122)
at org.drools.reteoo.builder.PatternBuilder.build(PatternBuilder.java:76)
at org.drools.reteoo.builder.GroupElementBuilder$AndBuilder.build(GroupElementBuilder.java:126)
at org.drools.reteoo.builder.GroupElementBuilder.build(GroupElementBuilder.java:73)
at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:152)
at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:123)
at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:110)
at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:441)
at org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:821)
at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:555)
at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:458)
at org.drools.reteoo.ReteooRuleBase.addPackage(ReteooRuleBase.java:465)
at eulergui.inference.drools.impl.N3SourcetoDrools.droolsCompile(N3SourcetoDrools.java:426)
... 18 more
I'm trying to debug generated Java code; I use setDumpDir() , but the trouble is that the line number is not available
http://docs.jboss.org/drools/release/5.3.0.Final/drools-expert-docs/html_single/index.html#d0e4051
5.8.3.3.6. Unification
Drools does not allow bindings to the same declaration. However this is an important aspect to derivation query unification. While positional arguments are always processed with unification a special unification symbol, ':=', was introduced for named arguments named arguments. The following "unifies" the age argument across two people.
Person( $age := age ) Person( $age := age)
In essence unification will declare a binding for the first occurance, and constrain to the same value of the bound field for sequence occurances.
http://stackoverflow.com/questions/138511/what-are-java-command-line-options-to-set-to-allow-jvm-to-be-remotely-debugged
java -agentlib:runjdwp:transport=dt_socket,address=8000,server=y,suspend=y \ -jar target/eulergui-1.10-SNAPSHOT-jar-with-dependencies.jar
http://www.google.fr/search?&q=javascript+drawing
http://code.google.com/p/svg-edit/
http://svg-edit.googlecode.com/svn/branches/2.5.1/editor/svg-editor.html
http://www.draw2d.org/draw2d/
http://javascript.open-libraries.com/utilities/drawing/10-best-javascript-drawing-and-canvas-libraries/
http://zwibbler.com/
http://stackoverflow.com/questions/96486/javascript-drawing-library
Autojump: a cd command that learns
http://www.youtube.com/watch?v=tnNyoMGnbKg
How to query the FOAF social graph using our API
http://www.foaf-search.net/ApiDocs
http://www.foaf-search.net/SearchRDFType?type=http://dbpedia.org/ontology/MusicalArtist
http://www.foaf-search.net/
add webapp.html : how to make a rule based web app with Wicket
But Wicket applications are not like applications written in either Tapestry or Echo, because in Wicket you get the best of both worlds. You get the benefits of a first-class component model and a non-intrusive approach to HTML. In many situations, this combination may prove to be a significant development advantage.
Stanford Encyclopedy of philosophy
https://inpho.cogs.indiana.edu/
Gotten a LOG IN AND ACCOUNT : W3C Community and Business Groups
http://www.w3.org/community/semwebprog/
http://www.w3.org/community/ontolex/
http://www.w3.org/community/rww/
http://www.openannotation.org/ns/
http://www.w3.org/community/groups/#userix
http://www.w3.org/community/groups/
http://static.springsource.org/docs/Spring-MVC-step-by-step/part2.html
looking at the ACEWIKI video : http://attempto.ifi.uzh.ch/acewiki/
jmvanel in here ! no good : http://www.w3.org/DesignIssues/Notation3.html
view-source:http://www.w3.org/DesignIssues/Notation3.html
Yesterday tried akinator with my daughter ; it found easily "Buddy Miles" and "Gotlob Frege".
http://plato.stanford.edu/search/searcher.py?query=Gotlob+Frege
<rszeno> this remember me that i want to tell you about a link from a long time
<rszeno> https://inpho.cogs.indiana.edu/owl/
<rszeno> is a owl file
<rszeno> it work with eg, :)
<jmvanel> indeed, d'n'd worked perfectly
http://www.miximum.fr/methodes-et-outils/77-interfacer-git-avec-un-depot-subversion
sudo apt-get install git-svn git svn clone http://eulergui.svn.sourceforge.net/svnroot/eulergui/trunk eulergui_trunk.git ... : -empty_dir: eulergui/src/main/java/eulergui/parser/n3/impl/parser4j/service/N3ParserSession.java r220 = fbccab9ebfeab372226385d03140f88ca2557698 (refs/remotes/git-svn) La requête de la couche RA a échoué: REPORT de '/svnroot/eulergui/!svn/vcc/default': Could not read response body: Connexion ré-initialisée par le correspondant (http://eulergui.svn.sourceforge.net) at /usr/lib/git-core/git-svn line 5091
http://www.pocock.com.au/migrating-a-sourceforge-project-from-subversion-to-git
oem-laptop: ~/jmv_ubuntu_11.4/src/droolsjbpm/ % droolsjbpm-build-bootstrap/script/git-clone-others.sh ... =============================================================================== Repository: droolsjbpm-build-distribution =============================================================================== Cloning into droolsjbpm-build-distribution... remote: Counting objects: 4140, done. remote: Compressing objects: 100% (2185/2185), done. remote: Total 4140 (delta 1729), reused 3986 (delta 1575) Receiving objects: 100% (4140/4140), 4.76 MiB | 847 KiB/s, done. Resolving deltas: 100% (1729/1729), done. Disk size: 1,2M droolsjbpm-build-bootstrap 34M droolsjbpm-knowledge 153M drools 184M drools-planner 31M jbpm 32M droolsjbpm-integration 139M guvnor 17M droolsjbpm-tools 7,1M droolsjbpm-build-distribution Total time: 500s
gnome-display-properties
owl-time geonames
http://www.w3.org/TR/owl-time/
<jmv> done this video !!!!!!!!!
<jmv> found bugs in EG :( but worked around them :)
<jmv> on the way I used pitivi to edit and merge videos .
<jmv> now going to upload
my 2 original recordings are in 1354 x 768 in .ogv
<rszeno> 3. somebody who watch a video doesn't expect to see to text, mainly a way how to explore eg using the mouse or other vizual things
<jmvanel> but after perginf in pitivi it created the black surroundings :(
due to bad setting in pitivi , it went to 720 x 576 :( and from 15 to 25 image / sec ( bad also )
enhanced my slides before recording the video: http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/connaissances_DL_CNL_regles.xhtml#(29)
<jmvanel> i recorded my second video : the video is good , but no sound !!!!!!!!!!!
<jmvanel> I discovered that the gui volulme controler is bugged and does not keep the setting that I use the analogic mike :(
<jmvanel> that's debian
<jmvanel> so I'll go back to ubuntu but gnome classic no effects
<rszeno> try byzanz
<jmvanel> http://www.ubuntugeek.com/desktop-recording-made-easy-with-byzanz.html
<jmvanel> I may try byzanz
<jmvanel> but right now my problem is more basic : the basic sound recorder does not work !!!
The quantity of memory taken by browsers is shocking !!!!
Tests in error: testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait JLabel with text "title" loaded test_uml2(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "Employee" loaded testLocalImportSwrlWithDrools(eulergui.gui.TestImportSwrl)
Tests in error: testRemoteFacebookSearch(eulergui.gui.TestFacebookSearch) test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) test_person_import3(eulergui.gui.TestGenericGuiGeneration) test_SaveExistingProjectAsN3(eulergui.gui.TestN3FormatForProject)
COMMIT tests:
- raised ComponentOperator.WaitComponentTimeout to 10000
- added print of test name at beginning of test
- added debug print for local N3 mangement
mvn surefire-report:report-only
Now the test suite passes, but the worm is still in the apple :( !
[INFO] The following dependencies in Dependencies have newer versions: [INFO] commons-logging:commons-logging ......... 1.0.4 -> 99.0-does-not-exist [INFO] org.drools:drools-compiler ................ 5.3.1.Final -> 5.4.0.Beta2
animesh: Hi
moi: hi
animesh: how is response for your launch?
moi: 55 since 22th jan ; expected more
animesh:
moi: and I don't know if these 55 represent old followers or newcomers that will be disappointed and won't say nothing
but that's the hard law of open source
animesh: yes, but if more following, it will click
moi: sure ; I know that I'm in the right direction, it's just that modeling in formal logic , be it Drools or N3 is not familiar to the majority of developers.
BTW I'll record videos today
animesh: Great!! are you using Drools too?
moi: sure
Drools is a solid infrastructure
they help me when I have problems
AFAIK EulerGUI is the only project mixing Drools and semantic web
animesh: yes right, your project is good
any commercial talk in progress?
moi: I have a customer ; they develop a semantic musical player
and one partnership are in progress
also I give a course about IA in an engineer school
and also I gor an encouraging meeting at a ministry friday
animesh: oh Great!!!
you are sincere, it will pay off, hope you gain critical mass to award me some paid job (some small task to begin with)
moi: yeah
That's great to have a customer willing to try a new framework
My AI course (in french and work in progress ) : http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/ia1_logique.xhtml
http://echo.nextapp.com/site/node/102
Tests in error: test_person_import3(eulergui.gui.TestGenericGuiGenerationInsertLogical): Wait AbstractButton with text "address" loaded test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules): Wait JLabel with text "title" loaded
[--nope, file:///media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/dl-safe.owl_data.n3, file:///media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/dl-safe_small.owl, file:///tmp/dl-safe_small.owl.as.rules.n3, --query, file:///media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/examples/dl-safe.owlQ.n3]
testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Wait for "getText() Component Chooser ":bc a :BadChild."(..)
java.lang.RuntimeException: ** ERROR ** file://https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/agent.n3 ** error(existence_error(source_sink,https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/agent.n3),[open/3|local_sp(269060340,269059464,[],[])])
http://maven.apache.org/plugins/maven-site-plugin/examples/site-deploy-to-sourceforge.net.html
http://sourceforge.net/apps/trac/sourceforge/wiki/SSH%20keys
DISPLAY=:1 LANG=en mvn -DPARSER4J_TESTS=no -Dmaven.test.skip=true deploy
Removed this in manual:
CAUTION: |
There is a workaround for a Maven issue that waits for weeks to be corrected (bug report : jar-with-dependencies: class from the source in project does NOT override the class in jar dependency ). If you don't do that, with the executable jar, it is impossible to open the N3 editor . |
You have to apply this hack after mvn package : |
REL=1.9 cd target/classes zip -r ../eulergui-${REL}-SNAPSHOT-jar-with-dependencies.jar . cp ../eulergui-${REL}-SNAPSHOT-jar-with-dependencies.jar \ ~/.m2/repository/eulergui/eulergui/${REL}-SNAPSHOT/ cd ../.. |
I fixed the long-awaiting problem that a zip command was necessary after building EG .
The issue was that 4 jEdit classes are redefined in the EulerGUI source . Bad practice !!!!!!!! And Maven does not handle this !
So I removed these 4 classes from the jEdit jar provided on our Maven repo, and changed build*.sh .
JAR=~/apps/jedit-4.3.1.jar mvn deploy:deploy-file \ -Durl=sftp://web.sourceforge.net/home/groups/e/eu/eulergui/htdocs/maven2 \ -DrepositoryId=repository.eulergui.sf.net \ -Dfile=${JAR} \ -DgroupId=org.jedit \ -DartifactId=jedit \ -Dversion=4.3.1 -Dpackaging=jar
Trace: Start to wait action "Wait for "getText() Component Chooser "PREFIX " " subcomponent to be displayed" Trace: "Wait for "getText() Component Chooser "PREFIX " " subcomponent to be displayed" action has been produced in 2 milliseconds with result : org.gjt.sp.jedit.textarea.JEditTextArea[,0,24,1113x841,layout=org.gjt.sp.jedit.textarea.ScrollLayout,alignmentX=0.0,alignmentY=0.0,border=org.gjt.sp.jedit.textarea.TextAreaBorder@7a083b7b,flags=0,maximumSize=,minimumSize=,preferredSize=,caret=1098,caretLine=23,caretScreenLine=23,electricScroll=3,horizontalOffset=0,magicCaret=-1,offsetXY=java.awt.Point[x=0,y=391],oldCaretLine=0,screenLastLine=23,visibleLines=49,firstPhysicalLine=0,physLastLine=23] Trace: Start to wait dialog "Dialog with title "File Browser"" opened 09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [doN3SourceAdded: file:/media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq] [error] rq: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) 09:58:47 [SwingWorker-pool-3-thread-1] [error] SwingWorker-pool-3-thread-1: N3SourceFromSPARQLSource.isSelect(): java.io.FileNotFoundException: /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/new_source.rq (Aucun fichier ou dossier de ce type) Error: Dialog "Dialog with title "File Browser"" has not been opened in 60007 milliseconds
http://echo.nextapp.com/site/node/25
Proposition de Luc :
/** * la facade du service */ public interface IHTMLPageServer { /* @param path le chemin relatif de la page * @return le document HTML de la page sur le navigateur */ HTMLDocument getHTMLDocument(String path); /* @param path le chemin relatif de la page * @param listener celui qui gère les événement sur la page au chemin relatif path */ void addListerner(String path,IHTMLPageServerListener listener); } /** * le contrat du listener des événements coté navigateur */ public IHTMLPageServerListener { void pageRequest(IHTMLPageServer pageServer,String path,IHTMLEvent htmlEvent); void pageEvent(IHTMLPageServer pageServer,String path,IHTMLEvent htmlEvent); }
The project has two facets, and you can use just what you need :
- tool for exploring the Semantic Web format through the readable N3 syntax and SPARQL queries
- framework to develop Java applications centered on an expert system
Hi all,
I am happy to announce the release of EulerGUI 1.9.
If you are looking for a tool to download and edit in the convenient N3 format : RDF, OWL and LOD resources, you should try EulerGUI.
It has SPARQL queries, drag'n'drop, prefix completion using prefix.cc, and other goodies.
Apart from that, EulerGUI is also a framework to develop portable applications centered on an expert system for the N3 rules language.
It can launch several inference engines for N3 logic. It is Open Source, written in Java Swing.
DOWNLOAD:
http://sourceforge.net/projects/eulergui/
User Manual: http://eulergui.sourceforge.net/documentation.html
Cheers,
http://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html
http://www.stopacta.info/
Server returned HTTP response code: 406 for URL: http://www.w3.org/TR/2004/REC-rdf-schema-20040210/rdfs-namespace
https://accounts.google.com/b/0/NewPrivacyPolicy?service=mail&continue=https://mail.google.com/mail/%3Fui%3D2
https://help.ubuntu.com/community/ComposeKey
How to generate these special characters with the french keyboard :
ł , ż , ę , ą , ñ , ń , ó
this morning, my first commit since last EulerGUI release
<jmvanel> ( Scala branch is not quite merged now, but worked on this )
COMMIT : add html/fr/ia1_logique.xhtml : first part of an AI training ( in french )
Given this morning at http://www.ingesup.com/
http://eulergui.svn.sourceforge.net/viewvc/eulergui/trunk/eulergui/html/fr/ia1_logique.xhtml
http://help.github.com/linux-set-up-git/
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCv4Ef56BvkamiOnInAfyq8LZHNegYSu2caC8Oww8CrCZJH//XBEQgM/SJKY/G8Qz+xVldfB5QBpbVrxfCtPsUQbX4vl5oLaqbCKw7D5Mr26hsVZ3peet5ZJbdA5dPmA9fJYI60RYcWa2mO1wfJ6BzYYefCkG1iDlyfMD4SaIifmhU0LOd9TrzcX0N3Jh6Wig4Yih/yI+SlJkFCq9Xj13P1ES4QaRRTmBJ74kT1Cw1ucpnZnW59f+UjB9AsHDzWPi5lGZ4zIOteWL1APqrxTvGUBejJ5tz1PvIk8sU4v6CgZrKojhIOn2rdlnzl837DKRHLBS8zIvXcnpDxHwjDWK9j jeanmarc.vanel@gmail.com
ssh-keygen -t rsa -C "jeanmarc.vanel@gmail.com"
DO 178== méthodologie utilisée à Thales
http://www.imagemagick.org/Usage/resize/
convert -resize 70% Cornus_florida_voeux.jpg Cornus_florida_voeux2.jpg
<jmvanel> I had another idea to manage the liaison with a script in a Web page
<jmvanel> use https://sourceforge.net/apps/trac/eulergui/wiki/EulerGUIServer
<jmvanel> the HTML user events would be sent on the socket as N3 text, in which every source of event will have an URI identify them
<jmvanel> the response can be some Javascript that is directly evaluable by Javascript .
Not responding :
http://download.scala-ide.org/nightly-update-master-2.9
Starting eclipse on JDK 6 because of Scala
eclipse -vm /home/jmv/jmv_ubuntu_11.4/apps/jdk1.6.0_24/bin/java
mvn -Dmaven.test.skip=true scala:compile
http://xchat.org/encoding/
Now that the release is out , I begin the merging with Scala branch
scala branch: pom.xml : merge latest from main branch
http://scala-ide.org/blog/scala-ide-roadmap.html
Announce
- EulerGUI as a tool for exploring the Semantic Web
- EulerGUI as framework to develop portable applications centered on an expert system
pom.xml : fix sourceforge URI for release upload
[INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-deploy) on project eulergui: Failed to deploy artifacts: Could not transfer artifact eulergui:eulergui:jar:1.9 from/to repository.eulergui.sf.net (scp://shell.sourceforge.net:/home/project-web/eulergui/htdocs/maven2): Cannot connect. Reason: Auth fail -> [Help 1]
eulergui.gui.TestEulerGUIOutputs : lasting forever ??
cd /home/jmv/src/eulergui/ java -jar ~/apps/dependometer-java-1.2.5/lib/dependometer-java-1.2.5.jar \ -file dependometer.xml
http://www.eclipsezone.com/eclipse/forums/t53736.html
Classycle Plugin for Eclipse
Installation with the Install/Update Manager from Eclipse
remote site informations http://classycleplugin.graf-tec.ch/update
Both tools flag a cycle in EG .
SUCCEEDED !
DISPLAY=:1 LANG=en mvn -Dmaven.test.skip=true release:prepare
Fix application-examples.html
Fix TestForJos : bad file URI
http://en.wikipedia.org/wiki/SPARK_(programming_language)
[INFO] Tests in error: [INFO] testProjectFromURL(eulergui.project.TestProject) [INFO] testFromEulerSharp(eulergui.parser.n3.impl.parser4j.service.TestForJos) [INFO] testRemoteImportSwrlWithDrools(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" [INFO] testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" [INFO] testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI): Dialog with title "File Browser" [INFO] test_person_import3(eulergui.gui.TestGenericGuiGeneration): Wait AbstractButton with text "address" loaded
NOT reproduced in eclipse : TestProject, TestImportSwrl, TestGenericGuiGeneration
at a prez about PAUG Android : http://www.meetup.com/Android-Paris/events/46922312/
http://www.oracle.com/technetwork/java/javase/samplecode-138571.html#JMStudio
gnome-control-center display
cvs -d:pserver:anonymous@jffmpeg.cvs.sourceforge.net:/cvsroot/jffmpeg login cvs -z3 -d:pserver:anonymous@jffmpeg.cvs.sourceforge.net:/cvsroot/jffmpeg co -P jffmpeg cd jffmpeg export JMFHOME=/home/jmv/src/w/jffmpeg mvn dependency:get -DartifactId=jmf -DgroupId=javax.media -Dversion=2.1.1e -DrepoUrl=http://download.java.net/maven/2/ -Dtransitive=true
A table view of properties of a resource is probably easier to implement in Java, while remaining generic.
==> There are the pointers to add in the user KB
We can also implement a recursive descent with adjustable depth.
void makeTableView(JComponent c, List<List<Triple>> data, List<List<Triple>> properties, );
New snapshot !!!!!!! Révision de la dernière modification : 2868
MD5 sum : 84c746a01c6b12fec9b6b4138d1b91e9
java.lang.InstantiationException: eulergui.n3model.LinesAndCols Continuing ... java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Renamed this JavaBean method in N3Source: getLocation() with location()
% wc wordnet-synset.rdf 577135 610413 22437182 wordnet-synset.rdf
Orange message:
N3Source.manageParseN3(): wordnet-synset.rdf : freeMemory=467_919_120 < necessaryMemory=1_520_213_440 this N3 source will NOT have tooltips in editor, and Drools runs will not include it; it is suggested to restart EulerGUI with -Xmx2G or more.
Adding -Xmx2G .
The orange message becomes:
freeMemory=276_727_088 < necessaryMemory=1_520_213_440
Running in Euler the rules base with owl-subclass-assertions-to-rules.n3 swrl-n3-rules.n3 is not done in background :( .
And opening the jEdit lasts very long !!!!!
The file is 193M .
Same problem with jedit_4.3.2 from Debian package :( !
However , the latest version jedit_4.5pre1_all.deb of jEdit from sf.net says :
/home/jmv/ontologies/dbpedia/instance_types_fr.nt: There was insufficent Java heap memory to complete this request. Try increasing the maximum heap size. Documentation on changing the Java heap size can be found in the "Buffers" section of the "jEdit Basics" chapter of the user guide.
And if start the latest version with:
java -Xmx2G -jar /usr/share/jEdit/jedit.jar dbpedia/instance_types_fr.nt
I don't even get the window ! It is stuck at 650Mb with 100% CPU.
However, starting with
JAVA_HEAP_MAX_SIZE=1920 jedit wordnet-synset.rdf
gives this message:
The buffer is very large and jEdit may become unresponsive because of syntax highlight. You should consider the
following options.
-Keep Full syntax : jEdit's syntax highlight will work as usual, jEdit
may become very slow, this is not recommanded.
-Context insensitive syntax highlight. In that case jEdit will try to
keep some syntax highlight, but the result may not be perfect. The
buffer is highlighted line by line without taking care of the context
of the previous line. So it is possible that the syntax is not accurate
if you have tokens on multiple lines (multiline comments, xml tags ...)
EulerGUI stack in AWT event view:
Thread [AWT-EventQueue-0] (Suspended) CMap$CMapFormat12.getGlyph(int) line: 1021 TrueTypeGlyphMapper.getGlyphFromCMAP(int) line: 80 TrueTypeGlyphMapper.charToGlyph(int) line: 156 TrueTypeFont(Font2D).charToGlyph(int) line: 496 SunLayoutEngine.nativeLayout(Font2D, FontStrike, float[], int, int, char[], int, int, int, int, int, int, int, Point2D$Float, GlyphLayout$GVData, long, long) line: not available [native method] SunLayoutEngine.layout(FontStrikeDesc, float[], int, int, TextRecord, int, Point2D$Float, GlyphLayout$GVData) line: 160 GlyphLayout$EngineRecord.layout() line: 664 GlyphLayout.layout(Font, FontRenderContext, char[], int, int, int, StandardGlyphVector) line: 463 Font.layoutGlyphVector(FontRenderContext, char[], int, int, int) line: 2603 Chunk.init(Segment, TabExpander, float, FontRenderContext) line: 331 DisplayTokenHandler.initChunk(Chunk, Segment) line: 194 DisplayTokenHandler.handleToken(Segment, byte, int, int, TokenMarker$LineContext) line: 120 TokenMarker.handleRule(ParserRule, boolean) line: 504 TokenMarker.markTokens(TokenMarker$LineContext, TokenHandler, Segment) line: 162 Buffer(JEditBuffer).markTokens(int, TokenHandler) line: 1336 ChunkCache.lineToChunkList(int, List<Chunk>) line: 786 ChunkCache.getLineSubregionCount(int) line: 269 DisplayManager.updateScreenLineCount(int) line: 664 DisplayManager.getScreenLineCount(int) line: 192 ScrollLineCount.reset() line: 54 DisplayManager.notifyScreenLineChanges() line: 547 DisplayManager.resetAnchors() line: 740 DisplayManager.init() line: 513 DisplayManager.bufferLoaded() line: 680 BufferHandler.bufferLoaded(JEditBuffer) line: 67 Buffer(JEditBuffer).fireBufferLoaded() line: 2577 Buffer.access$700(Buffer) line: 89 Buffer$1.run() line: 281 WorkThreadPool.doAWTRequest(WorkThreadPool$Request) line: 398 WorkThreadPool.doAWTRequests() line: 383 WorkThreadPool.access$200(WorkThreadPool) line: 37 WorkThreadPool$RunRequestsInAWTThread.run() line: 483 InvocationEvent.dispatch() line: 251 EventQueue.dispatchEventImpl(AWTEvent, Object) line: 705 EventQueue.access$000(EventQueue, AWTEvent, Object) line: 101 EventQueue$3.run() line: 666 EventQueue$3.run() line: 664 AccessController.doPrivileged(PrivilegedAction<T>, AccessControlContext) line: not available [native method] ProtectionDomain$1.doIntersectionPrivilege(PrivilegedAction<T>, AccessControlContext, AccessControlContext) line: 76 EventQueue.dispatchEvent(AWTEvent) line: 675 EventDispatchThread.pumpOneEventForFilters(int) line: 211 EventDispatchThread.pumpEventsForFilter(int, Conditional, EventFilter) line: 128 EventDispatchThread.pumpEventsForHierarchy(int, Conditional, Component) line: 117 EventDispatchThread.pumpEvents(int, Conditional) line: 113 EventDispatchThread.pumpEvents(Conditional) line: 105 EventDispatchThread.run() line: 90
COMMIT
relative URI for N3 sources including parent directories , e.g. ../dir/file.n3
added dependency org.apache.commons / commons-io
allSaved
is set to false here :
Thread [main] (Suspended (modification of field allSaved in ProjectGUI)) ProjectGUI.setAllSaved(boolean) line: 1060 ProjectGUI_Updater.subprojectAdded(Project, Project) line: 75 ProjectChangeSupport.fireAddSubproject(Project, Project) line: 116 Project.rethrowEventsPlease(ProjectChangeSupport) line: 1402 ProjectChangeSupport.rethrowEventsForListener(Project, ProjectListener) line: 195 Project.rethrowEventsForListener(ProjectListener) line: 1509 ProjectGUI.rethrowEventsForListener(ProjectListener) line: 326 ProjectGUI.populateWindow(Project, boolean) line: 293 ProjectGUI.newWindow(Project, boolean) line: 274 ProjectGUI.main(String[]) line: 219
properties allSaved and lastFile should only be modified upon user actions
DONE
FIX: N3 shell : in case of syntax error, must remove the line from the project, so that the saved lines are correct, and the Euler runs too .
Exception in thread "AWT-EventQueue-0" java.lang.NoSuchMethodError: n3_project.SourceFilesView.getButtonsPanel()Ljavax/swing/JPanel; at n3_project.ProjectFileManagement$OpenProjectAction.actionPerformed(ProjectFileManagement.java:539) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
<jmvanel> I have an issue with: Runtime.getRuntime().exec()
<jmvanel> I run "/usr/bin/mplayer" , and it actually works, but stops after about 30 seconds .
syddraf, I understand better now what's happening with mplayer ; by default this interactive music player outputs lots of things on the console ; it 's very conspicuous as it's overwritten on a normal console; and it works fine from Java I add options to mplayer to be non -verbose ;
<jmvanel> so my understanding it that Runtime().exec() has a buffer for std output that gets full after some time
So this code works in a main() :
Process process = Runtime.getRuntime().exec( new String[] { "/usr/bin/mplayer" , "-msglevel", "all=-1", "Countdown.mp3" }, null, new File( System.getProperty( "user.dir" ) ) ); Thread.sleep( 9*60*1000);
so I changed the rule to do :
mplayer -msglevel all=-1 Countdown.mp3
But I must catch the standard output to avoid troubles with other verbose commands .
Maybe reusing some existing code ?
I think I'll reuse Jos' class euler.Process
<jmvanel> I could do some smart GUI stuff in the N3 shell , but for I'll just absorb the std out
<rszeno> jos class have some code specific for what he need, will be ok?
<rszeno> plus writing your own can't take to long, i write it in less then one hour, if i recall corectly, you are much more familiar then me with java
<jmvanel> Jos's one is tested, and pretty general
http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1
Is there a convention for (human) langage used in javadocs comments?
TODO: EulerGUI: in N3 shell :
COMMIT
in new method Project.checkURIPrefixes(), report Duplicate diverging URI Prefix
- display warning in LaunchWMDump and LaunchUserWMN3Editor Actions
M src/main/java/eulergui/gui/TemporaryFrame.java
M src/main/java/eulergui/tools/LaunchWMDump.java
M src/main/java/eulergui/tools/LaunchUserWMN3Editor.java
M src/main/java/eulergui/project/Project.java
M src/main/java/n3_project/ToolsManagement.java
http://stackoverflow.com/questions/309023/howto-bring-a-java-window-to-the-front
vlc --extraintf http
Drools Error: Rule Compilation error $G cannot be resolved
ErrorLines: - 443
TODO EulerGUI
http://www.ldodds.com/projects/musicbrainz/
http://musicbrainz.1054305.n4.nabble.com/Java-API-http-svn-musicbrainz-org-libmusicbrainz-java-trunk-td1557916.html
http://en.wikipedia.org/wiki/%C5%9Etefan_Odobleja
TO READ:
Mission-Critical Development with Open Source Software:
Lessons Learned
Jeff Norris, NASA Jet Propulsion Laboratory
they reorganized youtube so there is a section special for each musician
<rszeno> http://www.youtube.com/artist/Bobby_McFerrin?feature=watch_video_title
http://eulersharp.sourceforge.net/maven2/euler/euler/2012-01/
You can try to take a screencaption(screenshot/scree ndump of only the picture, and the search on google. Go to google, press picturesearch --> press the small icon with the camera next to the searchbar --> upload your picture and try to find the source. ;-)
I should add to rules-documentator.n3 rules for plain triples
http://missioncriticalit.com/odase.html#135Enter238+-6ae72a3d
convert -sample 15%x15% Cornus_florida_voeux.jpg Cornus_florida_voeux4.jpg ls -l Cornus_florida_voeux.jpg Cornus_florida_voeux4.jpg -rw-r--r-- 1 jmv jmv 49617 6 janv. 18:28 Cornus_florida_voeux4.jpg -rw-r--r-- 1 jmv jmv 491613 6 janv. 18:09 Cornus_florida_voeux.jpg
In fact the original file was 3,8 Mio , and I reduced by saving in gimp.
But using convert is obviously the most convernient.
owl-rules.n3 in Drools :
:IntegrityConstraintId112 :falseModel_because :rule_112_is_violated . #R :IntegrityConstraintId113 :falseModel_because :rule_113_is_violated . #R
_:X <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> _:A .
_:X <http://eulersharp.sourceforge.net/2003/03swap/owl-rules#inSomeOf> _:B .
junit.framework.AssertionFailedError: check Pattern Triple Handler,
for test test/list_alone.n3, unsatisfied Patterns:
[_:X_1 <http://eulersharp.sourceforge.net/2003/03swap/owl-rules#inSomeOf> _:B_1. .
]
at junit.framework.Assert.fail(Assert.java:50)
at junit.framework.Assert.assertTrue(Assert.java:20)
at eulergui.drools_engine.TestReasonning.testRunDrools(TestReasonning.java:386)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at junit.framework.TestCase.runTest(TestCase.java:168)
at junit.framework.TestCase.runBare(TestCase.java:134)
at junit.framework.TestResult$1.protect(TestResult.java:110)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.framework.TestResult.run(TestResult.java:113)
at junit.framework.TestCase.run(TestCase.java:124)
at junit.framework.TestSuite.runTest(TestSuite.java:243)
at junit.framework.TestSuite.run(TestSuite.java:238)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
COMMIT
Drools/N3 engine: Infinite loop with owl-rules.n3 : isolated RDF lists are now implemented
Tests in error: testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI) test_ecore2(eulergui.gui.TestGenericGuiGenerationInsertLogicalRefactorRules) Tests run: 176, Failures: 0, Errors: 2, Skipped: 0 [ERROR] There are test failures. Please refer to /media/bd003f3b-ff18-4655-91dc-e014ba1af42e/home/jmv/src/eulergui/target/surefire-reports for the individual test results. [INFO] [INFO] <<< maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui <<< [INFO] [INFO] --- maven-surefire-report-plugin:2.11:report (default-cli) @ eulergui --- [WARNING] Unable to locate Test Source XRef to link to - DISABLED [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 16:13.970s [INFO] Finished at: Fri Jan 06 14:43:31 CET 2012 [INFO] Final Memory: 32M/229M
http://www.bioontology.org/wiki/index.php/Introduction_to_Bio-Ontologies
java.lang.InstantiationException: eulergui.n3model.LinesAndCols Continuing ... java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
This is probably due to this method in N3Source:
public URL getLocation()
Not reproduced
not reproduced on Linux !!!!!!
file:/C:/Users/ltemal/Dropbox/Taxo_share_Temal/Ontologies/TaxoPlayerOntologies/peuplingTest.n3
makes lots of irrelevant messages in standard output (on Linux ) ,
while on Windows there is another problem
Other issues :
log:uri
when subject is
unbound{ ?L :alert "true" # ; log:uri ?LL . } => { :application :displayAlert ?L . }. { :application :displayAlert ?LL . } => { ?F a java:eulergui-gui-TemporaryFrame ; javap:localizedMessage ?LL . }.
I get the warning about memory insufficient , but -Xmx is 2g , and using the same OWL donloaded manually , it works !
- The name of the directory containing the Java properties files (default ".")
- The name of the key that will be the URI for each property file (or a single or multiple file )
- RDF / XML prefix for keys
This is going into an infinite loop :
{?S rdf:first ?A. ?X a ?A} => {?X :inSomeOf ?S}. _:S rdf:first _:A . _:X a _:A.
because of bad list management, the first triple is lost in translation ;) .
COMMIT
owl-rules.n3 :
- now no more a concatenation; taken from https://eulersharp.svn.sourceforge.net/svnroot/eulersharp/trunk/2003/03swap/owl-rules.n3
- changed one rule and removed one not compiling in Drools
Preceding commits :
oem-laptop: ~/src/eulergui/examples/ % svn log owl-rules.n3 ------------------------------------------------------------------------ r2801 | jmvanel | 2011-11-11 22:06:21 +0100 (ven. 11 nov. 2011) | 5 lignes replace examples/owl-rules.n3 with a concatenation of all Jos' rules for OWL: eulersharp/trunk/2003/03swap/owl-*.n3 Compiles and runs with Drools / N3 engine ------------------------------------------------------------------------ r1919 | jmvanel | 2010-11-23 12:37:30 +0100 (mar. 23 nov. 2010) | 5 lignes - add a version of owl-rules.n3 in examples/ ; just move log:notEqualTo at the end of the antecedent. TODO The problem is that the implementation of log:notEqualTo expects that all variables were already used in preceding triples in same rule. This is not easy to implement with Drools. The translation should be postponed to end of the antecedent. ------------------------------------------------------------------------
#TRACE_RULE ( owl-rules.n3 293 $B=_:sk_S_79964 $X=<http://www.w3.org/2000/01/rdf-schema#seeAlso> ) #TRACE_RULE ( owl-rules.n3 293 $B=_:sk_S_79965 $X=<http://www.w3.org/2000/01/rdf-schema#seeAlso> ) ...
TODO
new search : button does not appear
In owl-rules-concat.n3
Drools Error: [ERR 102] Line 862:27 mismatched input ':' in rule "owl-rules.n3 31"
ErrorLines: - 862
Drools Error: [ERR 102] Line 1046:27 mismatched input ':' in rule "owl-rules.n3 37"
http://openjena.org/wiki/Fuseki
http://on.cs.unibas.ch/maven/repository/com/owldl/pellet/
http://cs.uga.edu/research/index.htm
http://en.wikipedia.org/wiki/Scripting_language#Extension.2Fembeddable_languages
Lots of interestring projects at Innsbruck :
http://www.sti-innsbruck.at/research/projects/
Fifth annual report for the STEPS project
interesting : http://www.w3.org/wiki/LargeTripleStores
http://seaborne.blogspot.com/2008/06/tdb-loading-uniprot.html
the latter indirectly linked to the first
Andy's response:
It looks like it's because the data (which isn't Turtle, or as claimed N3, but N-triples already) has huge numbers of bNodes in it.
The parser keeps a map of the bnode labels so that when it's reused in a file, it's the same bNode, but that requires state to be keep and the file seems to have a massive number of bNodes.
Set the heap large and hope.
I tried 4G and the parser ran -
There are internally to the parser different bNode label policies but these aren't exposed in a convenient way currently.
Another way is to convert the bNodes to URIs - the data is simply full for synthetic URIs so why it uses bNodes I don't know.
Beginning with this release the group ID is now org.apache.jena and the artifact names for jar files are all of the form jena-*
Code artifacts in this release:
org.apache.jena jena-core v2.7.0
org.apache.jena jena-arq v2.9.0
org.apache.jena jena-iri v0.9.0
See
http://incubator.apache.org/jena/download/maven.html
for full details.
Tests in error: testProjectFromURL(eulergui.project.TestProject) testLocalImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testRemoteImportSwrlWithEuler(eulergui.gui.TestImportSwrl): Frame Title Component Chooser "jEdit.*.as.rules.n3.*" testAddNewSPARQL(eulergui.gui.TestSPARQLInGUI)
Table of contents