Hello,

Please check my reply below:

On Thu, Apr 9, 2015 at 12:07 PM, Ying Jiang <jpz6311...@gmail.com> wrote:
> Hi Andy,
>
> Now, we are at "proposal ranking phase 1: indicate willingness to
> mentor", with the deadline of April 12 00:00 UTC. I've already
> registered as a "Possible mentor" for Qihong's proposal. Not sure what
> the next step is. Maybe, ranking all the proposals with scores. I'm
> waiting for the notices from the mentors@.
>
> Hi, Qihong,
> I think we should take Andy's advice to start discussion on dev@. The
> proposal has been submitted, and you can not change it. But we can put
> some posts below there to improve the proposal evaluation. So, I
> suggest:
> 1) Andy has made some comments about the project details on dev@ and
> JIRA. You can summarize them and enrich your proposal in
> google-melange. If you have any questions, just ask ASAP.

I've modified the project proposal:
https://docs.google.com/document/d/1KiDlfxMq5ZsU7vj7ZDm10yC96OZgdltwmZAZl56sTw0/edit

> 2) The project schedule can be adjusted, because the first half is
> larger so it may not split at the mid-term evaluation.
> 3) The javacc grammar changes should be done first. Have you learned
> the document of how to use javacc? Have you tried the scripts in
> cygwin?

Yes, cygwin works for me. However I need some time to study the javacc grammar.

> 4) You can also set up the project documentation in Github or
> Jena-site. It's better to write the document of design now, like Andy
> says.
>
> You should know that Apache strives for a 100% success rate of GSoC
> project. It makes good chance to get accepted if we can get things go
> on ASAP. I'd like to help you with pleasure. Good luck!
>
> Best,
> Ying Jiang
>
>
>
> On Wed, Apr 8, 2015 at 9:18 PM, Andy Seaborne <a...@apache.org> wrote:
>> Hi Ying,
>>
>> What is the next process step for GSoC this year?
>>
>> As mentor, you probably want to see this project as starting now.  As you
>> know, I don't have time to mentor this year and so can't really guarantee
>> technical invovement at short notice.
>>
>> The proposal will updating for the comments; it also needs to be made
>> consistent.  This is better now as part of the submission process, not in
>> the bonding stage.  It'll improve the proposal evaluation.
>>
>> e.g,. the javacc grammar changes should be done first.  Not much point
>> hacking the generated java parser (it'll be over written by the grammar
>> compiler).
>>
>> e.g. Documentation should arrive with a deliverable, not later (writing the
>> document, which isn't going to be very large, helps check the design).
>>
>> Ying - do you want to work with Qihong to do that? As discussion on dev@?
>>
>> The first half is ARQ changes, the second is Fuseki changes (Fuseki2) - the
>> first half is larger so it may not split at the mid-term evaluation.
>>
>> What will be important for this project is regular email traffic to dev@.
>> It's all about making a smooth path for change.  This isn't a new module,
>> this is making changes to an area users depend on already. Several people
>> here will want to know what's happening, hopefully comment; we should break
>> the deliverables up to get them in piece by piece, not wait until the end.
>>
>> Using github and generating pull requests throughout the project will work
>> best.  There needs to be a fallback in case github is not accessible after
>> our experiences of last year.
>>
>> Qihong - do you have any questions on the process?
>>
>>         Andy
>>
>>
>> On 07/04/15 15:00, Ying Jiang wrote:
>>>
>>> Hi Andy,
>>>
>>> Thanks for answering Qihong's questions! JENA-491 is not original from
>>> my idea. So, I'm very grateful if you can help the student to clarify
>>> the project goals and the scopes. Then, as the mentor, I can push the
>>> project going on when it starts, with technical assistance regarding
>>> Jena.
>>>
>>> For the first question, is it OK to expose Quad to end user in
>>> querying? I mean, we have 2 layers of Jena API: the higher one of
>>> Model/Statement/Resource, and the underlying Graph/Triple/Quad/Node.
>>> It makes sense to me if we encourage the end users using the former as
>>> much as possible. Currently, in the API, we already have:
>>> Iterator<Triple> QueryExecution.execConstructTriples(). I have the
>>> same doubt with it. What's your opinion?
>>>
>>> Best,
>>> Ying Jiang
>>>
>>> On Sun, Apr 5, 2015 at 2:04 AM, Andy Seaborne <a...@apache.org> wrote:
>>>>
>>>> On 03/04/15 03:47, Qihong Lin wrote:
>>>>>
>>>>>
>>>>> Hello Andy,
>>>>>
>>>>> It's submitted in time.
>>>>
>>>>
>>>>
>>>> Good.
>>>>
>>>> Ying - what is the next process step?
>>>>
>>>>> I saw your notes, thanks. Here're some further
>>>>> questions.
>>>>>
>>>>> 1) API of QueryExecution
>>>>> Does the API look like:
>>>>> - Iterator<Quad> QueryExecution.execConstrucQuads()
>>>>> - Dataset QueryExecution.execConstructDataset()
>>>>
>>>>
>>>>
>>>> Both.  (One builds on the other anyway.)
>>>>
>>>> It should mirror how execConstruct/execConstructTriples are done unless
>>>> there is a very good reason not to.
>>>>
>>>>> 2) master.jj
>>>>> How does master.jj generate arq.jj? What tool? You mentioned "is
>>>>> processed with cpp". What's cpp?
>>>>
>>>>
>>>>
>>>> cpp is the C preprocessor (yes!!)  It rewrites one text file to another
>>>> text
>>>> file.  ARQ does not cpp macros, it is just using defined symbols ARQ and
>>>> SPARQL_11 to put in different blocks of text.
>>>>
>>>> It's also why there are no comments in arq.jj.  cpp removes them and
>>>> blank
>>>> lines (the alternative is lots of blank lines - it's yuk).
>>>>
>>>> The script to drive it is jena-arq/Grammar/grammar (it's a bash script -
>>>> I
>>>> don't know how well it runs on MS Windows - it used to using cygwin).
>>>> The
>>>> script directs the output to the right place in the java source code.
>>>>
>>>> If you have trouble running it, edit arq.jj then run javacc.
>>>>
>>>> The SyntaxARQ parts that are not SPARQL 1.1, are in sections
>>>>
>>>> #ifdef ARQ
>>>> ....
>>>> #endif
>>>>
>>>>
>>>>> 3) query string  sytax
>>>>> I went through TriG syntax.
>>>>> - For our query string, can it construct a Dataset with multiple
>>>>> graphs, or just one default/named graph?
>>>>
>>>>
>>>>
>>>> Multiple.
>>>>
>>>> A dataset is one default and zero or more named graphs.
>>>>
>>>> CONSTRUCT
>>>> { GRAPH :g1 { ?s ?p ?o }
>>>>    GRAPH :g2 { ?s ?p ?o }
>>>>    GRAPH ?g { ?s ?p ?o }
>>>> } ...
>>>>
>>>> only in real use the patterns will be bigger.
>>>>
>>>>> - Shall we consider using variables for named graphs? I mean "?g", not
>>>>> ":g":
>>>>> CONSTRUCT {
>>>>>       # Named graph
>>>>>       GRAPH ?g { ?s :p ?o }
>>>>> } WHERE
>>>>>
>>>>
>>>> Yes.
>>>>
>>>> Class Template can be made to work purely on quads.  Where it current
>>>> uses
>>>> BasicPattern (which is triples), use QuadPattern.
>>>>
>>>> That will work for non-extended SPARQL 1.1 as well because "CONSTRUCT {
>>>> no
>>>> use of GRAPH }" will give a quad pattern of all quads for the default
>>>> graph.
>>>> There is a magic constant for "this quad is for the default graph" - see
>>>> class Quad.
>>>>
>>>> So you don't need tow different sets of machinary - update Template to
>>>> handle quads and the syntactic restrictions of SPARQL_11 will stop it
>>>> getting named graph in CONSTRUCT.
>>>>
>>>> execConstruct/execConstructTriples then work on the default graph of a
>>>> dataset.
>>>>
>>>> You may find it helpful to look at the TriG parser output. That parser is
>>>> not Javacc (it's much faster).  It's informing but you will need to write
>>>> the javacc for this project.
>>>>
>>>>> regards,
>>>>> Qihong
>>>>
>>>>
>>>>
>>>>          Andy
>>
>>

Reply via email to