Answers interleaved.... Le lun. 24 déc. 2018 à 00:27, Bruno P. Kinoshita <ki...@apache.org> a écrit :
> That's great news Jean! That's some fine investigation work you did! > > Couple questions > > Q1/ is it something that you think could help others doing the same? If so > we could add it somewhere in the documentation. > Sure, but, as I wrote previously, it probably only works statically, that is, TDB updates are probably not reflected in both indices. I put the new config on a site in production, and I will confirm that. That being said, many people only use Jena on stable data, so it can suit their needs.. NOTE that I fixed FIX spatial.EntityDefinition("uri","geo") everywhere in code : in fact basically 2 variants of config. code work! The only thing that does not work is sharing the Lucene directory for text and spatial, because of LockObtainFailedException. Q2/ just to confirm, that's not doable via assembler files, right? Only > programmatically? > It is *probably* doable via assembler file; I made 2 attempts to reproduce the code that works with an assembler file, but it does not work: jena.spatial+text4.assembler.ttl <https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext4.assembler.ttl> jena.spatial+text5.assembler.ttl <https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext5.assembler.ttl> > Cheers! > Bruno > > > > > ________________________________ > From: Jean-Marc Vanel <jeanmarc.va...@gmail.com> > To: Jena users <users@jena.apache.org> > Sent: Monday, 24 December 2018 9:36 AM > Subject: Re: Build by program a Dataset that is both textual and spatial > > > > I finally got it to work by coding: > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/forms/src/main/scala/deductions/runtime/jena/lucene/LuceneIndex.scala#L199 > > > A confusing documentation item was this in > > > https://jena.apache.org/documentation/query/spatial-query.html#create-spatial-dataset > > : > > EntityDefinition entDef = new EntityDefinition("entityField", > > "geoField"); > > when it should be: > > EntityDefinition entDef = new EntityDefinition("uri", "geo"); > > as in > > > https://jena.apache.org/documentation/query/spatial-query.html#create-spatial-dataset > > > In fact it is not clear the role of these 2 parameters, but it works with > > these values ! > > > > > > > > > Le dim. 23 déc. 2018 à 15:49, ajs6f <aj...@apache.org> a écrit : > > > > Hello, Jean-Marc, > > > > > > Thank you for investigating this question so carefully! Of course, it > > > should indeed be possible to build up a "text+spatial" dataset along the > > > lines you've proposed. But would it do what is needed? I can see how it > > > would feed changes to both indexes (which, I would note, I think you > could > > > also do with a DatasetChanges implementation that did the same thing) but > > > how would it use both for queries? How to combine, for example, the > `find` > > > methods? > > > > > > DatasetGraphSpatial seems to use its indexes via these overrides: > > > > > > // ---- Intecept these and force the use of views. > > > @Override > > > public Graph getDefaultGraph() > > > { return GraphView.createDefaultGraph(this) ; } > > > @Override > > > public Graph getGraph(Node graphNode) > > > { return GraphView.createNamedGraph(this, graphNode) ; } > > > // - > > > > > > whereas DatasetGraphText does something similar, as well as introducing a > > > number of `search` methods. How to combine these? > > > > > > It's a good general problem. I can imagine other kinds of indexes that > > > people might want to use (image indexes, timeseries representations) and > > > our basic SPI should be able to support using multiple kinds of special > > > indexes... > > > > > > ajs6f > > > > > > > On Dec 23, 2018, at 9:37 AM, Jean-Marc Vanel <jeanmarc.va...@gmail.com > > > > > wrote: > > > > > > > > I think it would not be difficult to set Jena for text and spatial, by > > > > adding the indexes in the so-called Context > (org.apache.jena.sparql.util > > > > .Context) of the DatasetGraph . > > > > But achieving dynamic update of both indexes when TDB is updated will > > > > require extending the implementation along the line of preceding mail. > > > > > > > > I wonder if new GeoSPARQL implementation will be compatible with > textual > > > > indexing . > > > > > > > > > > > > > > > > Le dim. 23 déc. 2018 à 11:53, Jean-Marc Vanel < > jeanmarc.va...@gmail.com> > > > a > > > > écrit : > > > > > > > >> Thanks Bruno for sharing your trials; alas you're not further than I. > > > >> Using gist.github.com is indeed better than the regular git, like I > do, > > > >> for sharing trials. > > > >> > > > >> I'm getting skeptical about doing spatial + textual as the Jena API > > > >> stands. > > > >> For one thing, nobody stood up and said "I did it" since 10 days. > > > >> Second, spatial and textual indexing follow a similar design, but not > > > >> readily mixable: > > > >> > > > >> - TextDatasetFactory 's create() method returns a DatasetGraphText > > > >> - SpatialDatasetFactory create() method returns a > DatasetGraphSpatial > > > >> > > > >> Both classes DatasetGraphText and DatasetGraphSpatial have their > > > >> respective index as members and extend DatasetGraphMonitor so that > they > > > get > > > >> notified of add or delete to the DatasetGraph. > > > >> Moreover, alas, the DatasetGraphMonitor class does not follow the > > > observer > > > >> design pattern <https://en.wikipedia.org/wiki/Observer_pattern> , > which > > > >> would allow to attach several observer objects to the same > DatasetGraph. > > > >> The monitor in DatasetGraphMonitor class is interface DatasetChanges. > > > >> > > > >> So the solution I can think of at the moment is creating a mixin > > > >> class DatasetGraphTextSpatial with delegation like this: > > > >> > > > >> class DatasetGraphTextSpatial extends DatasetGraphWrapper { > > > >> DatasetGraphText datasetGraphText; > > > >> DatasetGraphSpatial datasetGraphSpatial; > > > >> public DatasetGraphTextSpatial(DatasetGraph dsg) { > > > >> super(dsg); > > > >> } > > > >> // delegating all methods to both members: > > > >> public void commit() { > > > >> datasetGraphText.commit(); > > > >> datasetGraphSpatial.commit(); > > > >> } > > > >> // etc (tedious) ... > > > >> } > > > >> > > > >> > > > >> Le dim. 23 déc. 2018 à 09:13, Bruno P. Kinoshita <ki...@apache.org> a > > > >> écrit : > > > >> > > > >>> Hi, > > > >>> > > > >>> I had a crack at it, without luck. Here's my set up: > > > >>> https://gist.github.com/kinow/f391be7036b63f8ac0c08b9832e8bfa7 > > > >>> > > > >>> I started with a Spatial only, using a configuration turtle file from > > > >>> Jena Spatial tests (see gist's spatial1.ttl). Loaded the dataset > (also > > > from > > > >>> tests), a query with spatial:nearby worked (geoarq-data-1.ttl & > > > >>> geoarq-data-1-query.ttl in the gist above). > > > >>> > > > >>> Then started by modifying the spatial Lucene Index, adding the > > > properties > > > >>> necessary for a Jena Text dataset (see gist's spatial-text.ttl). > Tried > > > to > > > >>> make both, the spatial lucene index and the text lucene index point > to > > > the > > > >>> same directory. > > > >>> > > > >>> > > > >>> Once I started Fuseki (see comments in gist for rest of set up), the > > > >>> spatial query was still working, but even though I had a text:index > > > >>> pointing to an index, when the query was executed, it would be > > > delegated to > > > >>> the DatasetGraphSpatial. This dataset knows nothing of text, and when > > > the > > > >>> TextQueryPF is executed, the textIndex is null. My logs have: > > > >>> > > > >>> [2018-12-23 21:03:57] TextQueryPF WARN Failed to find the text > index : > > > >>> tried context and as a text-enabled dataset > > > >>> [2018-12-23 21:03:57] TextQueryPF WARN No text index - no text > search > > > >>> performed > > > >>> > > > >>> So alas I couldn't post a working example. > > > >>> > > > >>> Hope that helps anyway > > > >>> > > > >>> Bruno > > > >>> > > > >>> ps: Lucene locks its indexes, so I **guess** if you tried a different > > > >>> approach of having another Fuseki pointing to the same directory, it > > > would > > > >>> probably raise an exception at some point > > > >>> > > > >>> > > > >>> ________________________________ > > > >>> > > > >>> From: Jean-Marc Vanel <jeanmarc.va...@gmail.com> > > > >>> To: Jena users <users@jena.apache.org> > > > >>> Sent: Saturday, 22 December 2018 10:03 PM > > > >>> Subject: Re: Build by program a Dataset that is both textual and > > > spatial > > > >>> > > > >>> > > > >>> > > > >>> I reverted to trying configuration by code, with 2 more tries: > > > >>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/forms/src/main/scala/deductions/runtime/jena/lucene/LuceneIndex.scala#L109 > > > >>> : > > > >>> add to textual Dataset's Context a spatialIndex key to the > > > spatialIndex. > > > >>> > > > >>> and line 135 : > > > >>> Use same Lucene directory for both indexes (not forgetting to > spatially > > > >>> index the existing textual index). > > > >>> WARN > > > >>> > org.apache.jena.query.spatial.pfunction.SpatialOperationWithCircleBase > > > >>> - Failed to find the spatial index : tried context and as a > > > >>> spatial-enabled dataset > > > >>> > > > >>> Both fail! > > > >>> > > > >>> My best hope is to look into Fuseki code, > > > >>> but can someone confirm that Fuseki does spatial WITH textual > Indexing? > > > >>> > > > >>> I already looked into Fuseki code, but could not find calls to > spatial > > > or > > > >>> textual factory in > jena-fuseki1/src/main/java/org/apache/jena/fuseki/ . > > > >>> > > > >>> > > > >>> Le ven. 21 déc. 2018 à 11:29, Jean-Marc Vanel < > > > jeanmarc.va...@gmail.com> > > > >>> a > > > >>> écrit : > > > >>> > > > >>>> I'm still clueless about how to configure Jena for textual AND > spatial > > > >>>> indexes. > > > >>>> I tried yet another assembler file: > > > >>>> > > > >>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext3.assembler.ttl > > > >>>> but even less good as > > > >>>> > > > >>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext2.assembler.ttl > > > >>>> reported just before. > > > >>>> > > > >>>> It seems that nobody uses both indexes by program; > > > >>>> otherwise I'd like to know how you do; you can send me privately > your > > > >>>> assembler files. > > > >>>> > > > >>>> Fuseki claims to "incorporate Jena text query > > > >>>> <https://jena.apache.org/documentation/query/text-query.html> and > > > Jena > > > >>>> spatial query > > > >>>> <https://jena.apache.org/documentation/query/spatial-query.html>" > in > > > >>> this > > > >>>> documentation: > > > >>>> https://jena.apache.org/documentation/fuseki2/ > > > >>>> So there is a way to configure Jena for textual AND spatial indexes! > > > >>>> In absence of other help, I'll have to look into Fuseki code. > > > >>>> > > > >>>> NOTE: the error message "*tried context and as a text-enabled > > > dataset*" > > > >>>> maybe hints at a solution, but the word "context" is not clear. > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> > > > >>>> Le lun. 17 déc. 2018 à 14:51, Jean-Marc Vanel < > > > jeanmarc.va...@gmail.com > > > >>>> > > > >>>> a écrit : > > > >>>> > > > >>>>> > > > >>>>> > > > >>>>> Le lun. 17 déc. 2018 à 13:24, Andy Seaborne <a...@apache.org> a > > > écrit > > > >>> : > > > >>>>> > > > >>>>>> ... > > > >>>>>> :spatial_dataset rdf:type spatial:SpatialDataset ; > > > >>>>>> rdf:type text:TextDataset ; > > > >>>>>> ... > > > >>>>>> > > > >>>>>> Not sure but I think the system will create this twice. > > > >>>>>> > > > >>>>>> It would be better to have two declarations, one for spatial, one > > > for > > > >>>>>> text. I'm not sure what happen if they share the same :directory > - > > > it > > > >>>>>> might work, it might not. > > > >>>>>> > > > >>>>> > > > >>>>> So, if one want to make queries that are both textual and spatial, > > > >>>>> having two declarations, one for spatial, one for text, sharing the > > > >>> same > > > >>>>> directory, appears as the only solution . > > > >>>>> I tested and report here. > > > >>>>> The current assembler file: > > > >>>>> > > > >>>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext2.assembler.ttl > > > >>>>> Results: > > > >>>>> > > > >>>>> - spatial query works, textual query has empty result, but no > > > >>>>> message in log, when *calling with spatial Dataset* in call > > > >>>>> to DatasetFactory.assemble() > > > >>>>> - spatial query works, textual query has result independant of > the > > > >>>>> string searched, and messages in log "Failed to find the text > > > >>> index" , "No > > > >>>>> text index - no text search performed : tried context and as a > > > >>> text-enabled > > > >>>>> dataset", when *calling with textual Dataset *in call to > > > >>>>> DatasetFactory.assemble() > > > >>>>> > > > >>>>> The query tested for text: > > > >>>>> PREFIX text: <http://jena.apache.org/text#> > > > >>>>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> > > > >>>>> SELECT * > > > >>>>> WHERE { > > > >>>>> ?s a <http://dbpedia.org/ontology/Garden> ; > > > >>>>> text:query (rdfs:label 'Gardens' ) ; > > > >>>>> } LIMIT 11 > > > >>>>> > > > >>>>> The spatial query tested: > > > >>>>> > > > >>>>> PREFIX spatial: <http://jena.apache.org/spatial#> > > > >>>>> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> > > > >>>>> SELECT DISTINCT ?placeName ?place > > > >>>>> WHERE { > > > >>>>> ?place spatial:nearby ( > > > >>>>> 45.750000 4.85 # Lyon > > > >>>>> 1000 'km') . > > > >>>>> ?place rdfs:label ?placeName > > > >>>>> FILTER( LANG( ?placeName) = 'en' ) > > > >>>>> } LIMIT 111 > > > >>>>> > > > >>>>> Data: the 2600 dboGarden in dbPedia endpoint. > > > >>>>> > > > >>>>> > > > >>>>> > > > >>>>>> Andy > > > >>>>>> > > > >>>>>> On 16/12/2018 16:41, Jean-Marc Vanel wrote: > > > >>>>>>> Sorry , I sent a bad link on the list, my assembler file is > really > > > >>>>>> this: > > > >>>>>>> > > > >>>>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext.assembler.ttl > > > >>>>>>> > > > >>>>>>> > > > >>>>>>> > > > >>>>>>> > > > >>>>>>> Le dim. 16 déc. 2018 à 13:40, Marco Neumann < > > > >>> marco.neum...@gmail.com> > > > >>>>>> a > > > >>>>>>> écrit : > > > >>>>>>> > > > >>>>>>>> you are missing the text index in the assembler. > > > >>>>>>>> > > > >>>>>>>> On Sun, Dec 16, 2018 at 12:08 PM Jean-Marc Vanel < > > > >>>>>> jeanmarc.va...@gmail.com > > > >>>>>>>>> > > > >>>>>>>> wrote: > > > >>>>>>>> > > > >>>>>>>>> Yes indeed, > > > >>>>>>>>> exactly with this assembler file: > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial.assembler.ttl > > > >>>>>>>>> > > > >>>>>>>>> And, when the Jena based application is started with this same > > > >>>>>> assembler > > > >>>>>>>>> file, the spatial queries work , as said above in this thread. > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> Le dim. 16 déc. 2018 à 12:18, Marco Neumann < > > > >>> marco.neum...@gmail.com> > > > >>>>>> a > > > >>>>>>>>> écrit : > > > >>>>>>>>> > > > >>>>>>>>>> did you create the text index with jena.textindexer > > > >>>>>>>>>> --desc=/<path>/config.ttl? > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> On Sun, Dec 16, 2018 at 8:48 AM Jean-Marc Vanel < > > > >>>>>>>>> jeanmarc.va...@gmail.com> > > > >>>>>>>>>> wrote: > > > >>>>>>>>>> > > > >>>>>>>>>>> I fixed a stupid error in text index URI, resulting from > > > >>> pasting, > > > >>>>>> in > > > >>>>>>>>> new > > > >>>>>>>>>>> file jena.spatial+text.assembler.ttl: > > > >>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext.assembler.ttl > > > >>>>>>>>>>> > > > >>>>>>>>>>> Now, it reads: > > > >>>>>>>>>>> :spatial_dataset rdf:type spatial:SpatialDataset ; > > > >>>>>>>>>>> rdf:type text:TextDataset ; > > > >>>>>>>>>>> spatial:dataset <#dataset> ; > > > >>>>>>>>>>> spatial:index <#indexLucene> ; > > > >>>>>>>>>>> text:dataset <#dataset> ; > > > >>>>>>>>>>> text:index * <#indexLuceneText>* ; > > > >>>>>>>>>>> . > > > >>>>>>>>>>> > > > >>>>>>>>>>> But still it says "Failed to find the text index" . > > > >>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>>> Le dim. 16 déc. 2018 à 09:34, Jean-Marc Vanel < > > > >>>>>>>>> jeanmarc.va...@gmail.com> > > > >>>>>>>>>> a > > > >>>>>>>>>>> écrit : > > > >>>>>>>>>>> > > > >>>>>>>>>>>> So I tried a new file jena.spatial+text.assembler.ttl with > > > >>>>>>>> separate > > > >>>>>>>>>>>> Lucene indices for spatial and text: > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > https://github.com/jmvanel/semantic_forms/blob/master/scala/jena.spatial%2Btext.assembler.ttl > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> It defines a Dataset with both Dataset types and both Lucene > > > >>>>>>>> indices: > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> :spatial_dataset rdf:type spatial:SpatialDataset ; > > > >>>>>>>>>>>> rdf:type text:TextDataset ; > > > >>>>>>>>>>>> spatial:dataset <#dataset> ; > > > >>>>>>>>>>>> spatial:index <#indexLucene> ; > > > >>>>>>>>>>>> text:dataset <#dataset> ; > > > >>>>>>>>>>>> text:index <#indexLucene> ; > > > >>>>>>>>>>>> . > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> Alas , when querying , it says "Failed to find the text > index" > > > >>> : > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> WARN org.apache.jena.query.text.TextQueryPF - Failed to > find > > > >>> the > > > >>>>>>>>> text > > > >>>>>>>>>>>> index : tried context and as a text-enabled dataset > > > >>>>>>>>>>>> WARN org.apache.jena.query.text.TextQueryPF - No text > index - > > > >>> no > > > >>>>>>>>> text > > > >>>>>>>>>>>> search performed > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> Is it because rdf:type spatial:SpatialDataset is asserted > > > >>> first in > > > >>>>>>>>>>>> assembler file? > > > >>>>>>>>>>>> So, defining a hybrid Dataset does not work anymore by TTL > > > >>>>>>>>>> specification > > > >>>>>>>>>>>> than by JVM code specification. > > > >>>>>>>>>>>> I definitely need more experts' advice . > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> Le sam. 15 déc. 2018 à 21:10, ajs6f <aj...@apache.org> a > > > >>> écrit : > > > >>>>>>>>>>>> > > > >>>>>>>>>>>>>> On Dec 15, 2018, at 9:59 AM, Marco Neumann < > > > >>>>>>>>> marco.neum...@gmail.com > > > >>>>>>>>>>> > > > >>>>>>>>>>>>> wrote: > > > >>>>>>>>>>>>>> > > > >>>>>>>>>>>>>>> *Question*: does that make sense to have a unique Lucene > > > >>> index > > > >>>>>>>>> for > > > >>>>>>>>>>>>> text and > > > >>>>>>>>>>>>>>> space ? > > > >>>>>>>>>>>>>>> It is possible at all? If yes, is it good in terms of > disk > > > >>>>>>>> space > > > >>>>>>>>>> and > > > >>>>>>>>>>>>>>> performance? > > > >>>>>>>>>>>>>>> Like this: > > > >>>>>>>>>>>>>>> <#indexLucene> a text:TextIndexLucene ; > > > >>>>>>>>>>>>>>> a spatial:SpatialIndexLucene ; > > > >>>>>>>>>>>>>>> # etc ... > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> I'm sure that would be ideal for many cases, but I'm not at > > > >>> all > > > >>>>>>>> sure > > > >>>>>>>>>>> that > > > >>>>>>>>>>>>> the same index can answer queries of both kinds. Perhaps we > > > >>> can > > > >>>>>>>>>> combine > > > >>>>>>>>>>>>> fields from both, but are the relationships between tuple > and > > > >>>>>>>> index > > > >>>>>>>>>>> record > > > >>>>>>>>>>>>> the same in both cases? > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> Otherwise, I know we had a conversation at some point in > the > > > >>> past > > > >>>>>>>> on > > > >>>>>>>>>> one > > > >>>>>>>>>>>>> of the lists about trying to factor out commonalities > between > > > >>>>>>>>>>> jena-spatial > > > >>>>>>>>>>>>> and jena-text, but it didn't go very far at that time and I > > > >>> don't > > > >>>>>>>>> know > > > >>>>>>>>>>> what > > > >>>>>>>>>>>>> the intervening years have done to make it more or less > > > >>> feasible. > > > >>>>>>>>>> There > > > >>>>>>>>>>>>> have been many changes to jena-text in that time and the > new > > > >>>>>>>> spatial > > > >>>>>>>>>>> module > > > >>>>>>>>>>>>> is a whole new story. I'd put a link here but searching > > > >>>>>>>>>>> lists.apache.org > > > >>>>>>>>>>>>> hasn't brought it up for me. > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> ajs6f > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>>> > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> -- > > > >>>>>>>>>>>> Jean-Marc Vanel > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >>>>>>>>>>>> < > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> Rule-based programming, Semantic Web > > > >>>>>>>>>>>> +33 (0)6 89 16 29 52 > > > >>>>>>>>>>>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > > > >>>>>>>>>> irc.freenode.net#eulergui > > > >>>>>>>>>>>> Chroniques jardin > > > >>>>>>>>>>>> < > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > >>>>>>>>>>>> > > > >>>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>>> -- > > > >>>>>>>>>>> Jean-Marc Vanel > > > >>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >>>>>>>>>>> < > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > >>>>>>>>>>>> > > > >>>>>>>>>>> Rule-based programming, Semantic Web > > > >>>>>>>>>>> +33 (0)6 89 16 29 52 > > > >>>>>>>>>>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > > > >>>>>>>>> irc.freenode.net#eulergui > > > >>>>>>>>>>> Chroniques jardin > > > >>>>>>>>>>> < > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > >>>>>>>>>>>> > > > >>>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> -- > > > >>>>>>>>>> > > > >>>>>>>>>> > > > >>>>>>>>>> --- > > > >>>>>>>>>> Marco Neumann > > > >>>>>>>>>> KONA > > > >>> > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>>> -- > > > >>>>>>>>> Jean-Marc Vanel > > > >>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >>>>>>>>> < > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > >>>>>>>>>> > > > >>>>>>>>> Rule-based programming, Semantic Web > > > >>>>>>>>> +33 (0)6 89 16 29 52 > > > >>>>>>>>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > > > >>>>>> irc.freenode.net#eulergui > > > >>>>>>>>> Chroniques jardin > > > >>>>>>>>> < > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>> > > > >>> > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > >>>>>>>>>> > > > >>>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> -- > > > >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> --- > > > >>>>>>>> Marco Neumann > > > >>>>>>>> KONA > > > >>>>>>>> > > > >>>>>>> > > > >>>>>>> > > > >>>>>> > > > >>>>> > > > >>>>> > > > >>>>> -- > > > >>>>> Jean-Marc Vanel > > > >>>>> > > > >>>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >>>>> < > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > >>>> > > > >>>>> Rule-based programming, Semantic Web > > > >>>>> +33 (0)6 89 16 29 52 > > > >>>>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > > > >>> irc.freenode.net#eulergui > > > >>>>> Chroniques jardin > > > >>>>> < > > > >>> > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > >>>> > > > >>>>> > > > >>>> > > > >>>> > > > >>>> -- > > > >>>> Jean-Marc Vanel > > > >>>> > > > >>>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >>>> < > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > >>>> > > > >>>> Rule-based programming, Semantic Web > > > >>>> +33 (0)6 89 16 29 52 > > > >>>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > > > irc.freenode.net#eulergui > > > >>>> Chroniques jardin > > > >>>> < > > > >>> > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > >>>> > > > >>>> > > > >>> > > > >>> > > > >>> -- > > > >>> Jean-Marc Vanel > > > >>> > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >>> < > > > >>> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > >>>> > > > >>> Rule-based programming, Semantic Web > > > >>> +33 (0)6 89 16 29 52 > > > >>> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > > > irc.freenode.net#eulergui > > > >>> Chroniques jardin > > > >>> < > > > >>> > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > >>>> > > > >>> > > > >> > > > >> > > > >> -- > > > >> Jean-Marc Vanel > > > >> > > > >> > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > >> < > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > > > > > >> Rule-based programming, Semantic Web > > > >> +33 (0)6 89 16 29 52 > > > >> Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > irc.freenode.net#eulergui > > > >> Chroniques jardin > > > >> < > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > > > > > >> > > > > > > > > > > > > -- > > > > Jean-Marc Vanel > > > > > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > > > < > > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > > > > > > Rule-based programming, Semantic Web > > > > +33 (0)6 89 16 29 52 > > > > Twitter: @jmvanel , @jmvanel_fr ; chat: irc:// > irc.freenode.net#eulergui > > > > Chroniques jardin > > > > < > > > > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > > > > > > > > > > > -- > > Jean-Marc Vanel > > > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject > > < > http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me > > > > Rule-based programming, Semantic Web > > +33 (0)6 89 16 29 52 > > Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui > > Chroniques jardin > > < > http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle > > > -- Jean-Marc Vanel http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me#subject <http://www.semantic-forms.cc:9111/display?displayuri=http://jmvanel.free.fr/jmv.rdf%23me> Rule-based programming, Semantic Web +33 (0)6 89 16 29 52 Twitter: @jmvanel , @jmvanel_fr ; chat: irc://irc.freenode.net#eulergui Chroniques jardin <http://semantic-forms.cc:1952/backlinks?q=http%3A%2F%2Fdbpedia.org%2Fresource%2FChronicle>