W3C home > Mailing lists > Public > public-data-shapes-wg@w3.org > March 2015

Re: is there an implementation of Shape Expressions that correctly handles recursive shapes?

From: Iovka Boneva <iovka.boneva@univ-lille1.fr>
Date: Wed, 25 Mar 2015 14:13:43 +0100
Message-ID: <5512B487.6060305@univ-lille1.fr>
To: "Peter F. Patel-Schneider" <pfpschneider@gmail.com>
CC: RDF Data Shapes Working Group <public-data-shapes-wg@w3.org>
Please refer to the README file and the examples.

Then I guess your next remark would be "These are not shape 
expressions, but some unknown formalism".
To which I would respond that these are the ShEx from our paper, but I 
didn't take time to write the appropriate parser and took an easy to 
parse syntax.
The program is given as is, and requires from the user to adapt to it.


Le mar. 24 mars 2015 19:33:23 CET, Peter F. Patel-Schneider a écrit :
> Hash: SHA1
> Thanks, I've got it.
> However, it appears that I need some documentation on the language that it
> accepts.  I tried it out with an example that works for other Shape
> Expressions systems, and got
> Line 2 : Expecting the TYPES keyword.
>   #### The schema ####
> null
> Exception in thread "main" java.util.NoSuchElementException
> 	at java.util.HashMap$HashIterator.nextEntry(HashMap.java:925)
> 	at java.util.HashMap$KeyIterator.next(HashMap.java:956)
> 	at com.hp.hpl.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94)
> 	at com.hp.hpl.jena.util.iterator.Map1Iterator.next(Map1Iterator.java:45)
> 	at com.hp.hpl.jena.util.iterator.WrappedIterator.next(WrappedIterator.java:94)
> 	at shex.tools.CommandLine.retrievePreTyping(CommandLine.java:73)
> 	at shex.tools.CommandLine.main(CommandLine.java:40)
> I pretty sure that TYPES is not a keyword in Shape Expressions as defined in
> the W3C submission.
> peter
> On 03/24/2015 08:54 AM, Iovka Boneva wrote:
>> You can find here a archive containing - an executable jar file
>> containing a command line utility for testing our algorithm for
>> validation of RDF graphs against deterministic single occurrence ShEx
>> schema: Algorithm 1 in our ICDT 2015 paper - 3 example files for running
>> the program - all the required libraries (mainly jena)
>> These are provided as is, with a very minimal user interface. If you have
>> questions, please contact me by mail.
>> The file is available for download until April 24. Please contact me if
>> you want to have it after that date.
>> https://filesender.renater.fr/?vid=2f1e6710-8ce8-9ce8-8b29-0000114bb87b
>> Iovka
>> Le 20/03/2015 20:08, Peter F. Patel-Schneider a écrit : Yes, please send
>> me a copy of the system.
>> Thanks,
>> peter
>> On 03/20/2015 11:55 AM, Iovka Boneva wrote:
>>>>> I sent my previous mail by error before  finishing it...  so didn't
>>>>> have the occasion to say that unfortunately these  implementations
>>>>> are not accessible for testing. As I said they were made for our
>>>>> own needs as proof  of concept, and do not have friendly user
>>>>> interface. I am however willing to send the API in a jar file,
>>>>> together with example code on how to use it, if  somebody wants to
>>>>> play with that. Unfortunately next week I won't have time to do
>>>>> more (and anyway my technical skills are insufficient for
>>>>> publishing it for testing on the web, while spending a reasonable
>>>>> amount  of time on that).
>>>>> My main point was that there are indeed working implementations
>>>>> with recursion.
>>>>> Now to answer Peter's questions: - the first algorithm is indeed
>>>>> for subclass of ShEx, which merely corresponds to the first version
>>>>> of ShEx (no repetition of symbols). It is however not so limiting,
>>>>> as it allows to handle a lot of the identified use cases, and can
>>>>> be easily extended for handling more cases,  as I already explained
>>>>> in a previous mail; - the second one is for full ShEx,  (therefore
>>>>> its worse case complexity is not linear, and right  now I cannot
>>>>> give figures on its actual performance in practice).
>>>>> Iovka
>>>>> Le 20/03/2015 17:05, Peter F. Patel-Schneider a écrit : On
>>>>> 03/20/2015 08:42 AM, Iovka Boneva wrote:
>>>>>>>> We do have 3 implementations of recursive shapes with bag
>>>>>>>> semantics, for 2 different algorithms - one for validating
>>>>>>>> against deterministic schemas w/o repetitions, with a set of
>>>>>>>> pre-typed root nodes. It is written in Java using jena, and
>>>>>>>> works both with in-memory RDF-graphs, and using the Jena
>>>>>>>> RDF-database API. Written by myself;
>>>>> So this implementation is only for part of Shape Expressions?
>>>>>>>> - one for the same algorithm written in Python also using RDF
>>>>>>>> API, written by Slawek Staworko and Samuel Hym;
>>>>> And this implementation is also only for part of Shape
>>>>> Expressions?
>>>>>>>> - one for validation of a whole graph w/o pre-typed root
>>>>>>>> nodes, using our greatest fixed point algorithm. Also written
>>>>>>>> in Python by Slawek and Samuel.
>>>>> Does this implementation handle all of Shape Expressions?  Is there
>>>>> an on-line demo?  How can I get a copy of the system?
>>>>>>>> Our implementations were written for "proof of concept" prior
>>>>>>>> to our publication. We also have an algorithms for generating
>>>>>>>> large graphs on which we tested our implementations, and they
>>>>>>>> indeed ran in linear time in the size of the graph, as they
>>>>>>>> were supposed to from theoretical point of view.
>>>>>>>> Iovka
>>>>> peter
> Version: GnuPG v2
> iQEcBAEBAgAGBQJVEa3zAAoJECjN6+QThfjzyVUH/1nkv8awGVeene2KJsbOnC4w
> mj9yCqfQCx1tldUrEPPgTV1JAnw9YsLvcuta7EG4+bY5Ua6Vj3Aw7KJM60B4I//N
> tigcq3KRtw4wB+YcYv59RYO2LUsJGWrBfHnTeak+vhc2sarfaiP5ab3X7vJNQ+QO
> MV8eKAhrEU1rlxieoogY1hPVNDo6j0So8QGDjeQxfgEnCKj8k40PFA5OjwXfH712
> KqXOlnOmJVDXwTiuUv5NQ8/Q59TMRU7fTz+kg36zUO+CldbnYh1C8lUHySRw8qW9
> 2blhOYwjjtaCR7jnT5QsnuaXDIjl9xCWE3p7OmIH1fMG5LMMc3EMFPfRyBOTAMs=
> =aT+t

Iovka Boneva
Associate professor (MdC) Université de Lille
+33 6 95 75 70 25
Please note that I read my mails twice a day at 9:00 and 13:00 (CET)
For urgent matters, please contact me by phone
Received on Wednesday, 25 March 2015 13:14:22 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 19:30:18 UTC