[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jaxme-dev
Subject:    Re: Ideas for a GSOC 2013 Project
From:       Isuru Ranawaka <irjanith () gmail ! com>
Date:       2013-03-25 6:36:30
Message-ID: CABN=8bcDB4oKcBtbHZqE4KqQjejTNDM_QZ5X4kdaQQc58xW3JA () mail ! gmail ! com
[Download RAW message or body]

Hi Kishanthan,

which I suggest is to  rewrite a  XpathEngine on top  the XMLStream and not
to improve the current Streaming XpathParser which Operate on Axiom that
you referred.

thanks
isuru














On Mon, Mar 25, 2013 at 12:04 AM, Kishanthan Thangarajah <
kshanth2101@gmail.com> wrote:

> Hi Isuru,
>
> On Sun, Mar 24, 2013 at 1:49 PM, Isuru Ranawaka <irjanith@gmail.com>wrote=
:
>
>> hi,
>>
>> 1. ) Streaming Xpath Parser is developed for a ESB which get AXIOM Objec=
t
>> and traverse through it and get results.here the main concern is to impr=
ove
>> the performance of xpath parsing by specifying specific rules relevant t=
o
>> the domain. (e.g if there is expression such as =93/data/book=94  it onl=
y give
>> the first child element under the data element )  what i suggest is
>> creating a XpathEngine which does not consume any external object model =
and
>> it will operate on top of the XML Stream that means traverse xmlstream a=
nd
>> evaluate xpath.
>>
>
> If i'm not mistaken, the approach taken by a streaming Xpath parser does
> not apply for all cases? For example, if the user wants a specific elemen=
t,
> then he/she will have to use the normal way, since the above approach onl=
y
> gets the first node or element which matches the given expression?
>
> Have you already thought of how to handle this?
>
> Thanks,
> Kishanthan.
>
>>
>> 2.) I have read some background documents and tutorials about Operation
>> and design of PsychoPathXpathProcessor  basically it Operates as follows
>>
>>                 1. Load the XML Document
>>
>> currently XMLDocument is load using DOM Package ,Xerces and it can be
>> replaced with other packages by implementing wrapper  and it should be
>> implemented in a way that inner functionality should not break.
>>
>>          2.  Initialize static and dynamic context in respect to the
>> document root.
>>
>>                     this is done by internal packages.
>>
>>          3.  Parse the XPath 2.0 expression.
>>
>>                      this is done by external packages JFlex and CUP
>>
>>          4.  Statically verify the XPath 2.0 expression.
>>
>>          5.  Evaluate the XPath 2.0 expression in respect to the XML
>> document.
>>
>>  both 4 and 5 are done internally.
>>
>> If internal functionality is tightly coupled with DOM is it possible  to
>> integrate with DOOM component .
>>
>>
>>
>>
>> On Sat, Mar 23, 2013 at 9:09 PM, Andreas Veithen <
>> andreas.veithen@gmail.com> wrote:
>>
>>> I think that 1 and 2 only make sense as a single project (as described
>>> in AXIOM-367):
>>>
>>> * The scope of 2 is not large enough for a GSoC project.
>>> * 2 is a prerequisite for 1, but 1 is also an important test to check
>>> that the design of the new API is correct.
>>>
>>> Regarding 3, can you give a definition of "streaming XPath parser"?
>>>
>>> Andreas
>>>
>>> On Sat, Mar 23, 2013 at 3:47 AM, Isuru Ranawaka <irjanith@gmail.com>
>>> wrote:
>>> > hi all ,
>>> >
>>> >  I am a final year student from computer science and engineering
>>> department
>>> > of  university of moratuwa. I would like to do a  GSOC project  .Some
>>> of the
>>> > prefered project ideas are as follows
>>> >
>>> >
>>> > 1. Improve AXIOMXpath for support for Xpath 2.0
>>> >
>>> >      currently AXIOM is only support for Xpath 1.0 which is used in
>>> jaxen
>>> > 1.1 .So upgrading Xpath 1.0 to Xpath 2.0 can be done by integrating
>>> Xpath
>>> > Processor such as psychoPath xpath 2.0 processor. basically it has
>>> loosely
>>> > coupled API with internal implementation and it has more than 80
>>>  production
>>> > rules.Xpath parsing is done via JFlex and CUP.
>>> >
>>> >
>>> > 2. Develop Abstract API for make AXIOM loosely couple with Xpath
>>> > Implementation.
>>> >
>>> >      currently AXIOM is tightly coupled with jaxen 1.1 and it will
>>> hard to
>>> > replace with new Xpath implementations.So developing Abstract API wit=
h
>>> > reusing   javax.xml.xpath which is independent from object model is
>>> another
>>> > idea.
>>> >
>>> >
>>> > 3. Implement Streaming Xpath Engine on top of the XMLStream.
>>> >
>>> >      Available Streaming Xpath Parsers are implement on top of the
>>> AXIOM .So
>>> > this idea is to implement it on top of the XMLStream which can gain
>>> > performance than others.Here  a Xpath Expression Compiler should be
>>> > implemented and have to figure out object model for evaluate XML
>>> Stream.
>>> >
>>> >
>>> >
>>> >                 I would like to work on a project above mentioned and
>>> please
>>> > send your thoughts and ideas .
>>> >
>>> >
>>> >
>>> > thanks
>>> >
>>> > isuru
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: dev-help@ws.apache.org
>>>
>>>
>>
>

[Attachment #3 (text/html)]

Hi Kishanthan,<br><br>which I suggest is to  rewrite a  XpathEngine on top  the \
XMLStream and not to improve the current Streaming XpathParser which Operate on Axiom \
that you referred. <br><br>thanks <br>isuru<br><br><br><br> \
<br><br><br><br><br><br><br><br><br><br><br><div class="gmail_quote">On Mon, Mar 25, \
2013 at 12:04 AM, Kishanthan Thangarajah <span dir="ltr">&lt;<a \
href="mailto:kshanth2101@gmail.com" \
target="_blank">kshanth2101@gmail.com</a>&gt;</span> wrote:<br> <blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">Hi Isuru,<br><br><div class="gmail_quote"><div class="im">On \
Sun, Mar 24, 2013 at 1:49 PM, Isuru Ranawaka <span dir="ltr">&lt;<a \
href="mailto:irjanith@gmail.com" target="_blank">irjanith@gmail.com</a>&gt;</span> \
wrote:<br> <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex">

<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">hi,</span></p>




<br><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-si \
ze:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"></span><p \
dir="ltr" style="margin-top:0pt;margin-bottom:0pt">



<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:1 \
5px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">1.
  ) Streaming Xpath Parser is developed for a ESB which get AXIOM Object 
and traverse through it and get results.here the main concern is to 
improve the performance of xpath parsing by specifying specific rules 
relevant to the domain. (e.g if there is expression such as “/data/book”
  it only give the first child element under the data element )  what i 
suggest is creating a XpathEngine which does not consume any external 
object model and it will operate on top of the XML Stream that means 
traverse xmlstream and evaluate \
xpath.</span></p></blockquote><div><br></div></div><div><div>If i&#39;m not mistaken, \
the approach taken by a streaming Xpath parser does not apply for all cases? For \
example, if the user wants a specific element, then he/she will have to use the \
normal way, since the above approach only gets the first node or element which \
matches the given expression?</div>


</div><div><br></div><div>Have you already thought of how to handle \
this?</div><div><br></div><div>Thanks,</div><div>Kishanthan.</div><div><div \
class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px \
#ccc solid;padding-left:1ex">


<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
</span></p>


<br><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-si \
ze:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"></span><p \
dir="ltr" style="margin-top:0pt;margin-bottom:0pt">



<span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:1 \
5px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">2.)
  I have read some background documents and tutorials about Operation and
 design of PsychoPathXpathProcessor  basically it Operates as follows</span></p><p \
dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
1. Load the XML Document</span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">currently
  XMLDocument is load using DOM Package ,Xerces and it can be replaced 
with other packages by implementing wrapper  and it should be 
implemented in a way that inner functionality should not break.</span></p><p \
dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
2.  Initialize static and dynamic context in respect to the document root.</span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
this is done by internal packages.</span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
3.  Parse the XPath 2.0 expression.</span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
this is done by external packages JFlex and CUP </span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
4.  Statically verify the XPath 2.0 expression.</span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
5.  Evaluate the XPath 2.0 expression in respect to the XML document.</span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"> \
both 4 and 5 are done internally. </span></p>



<p dir="ltr" style="margin-top:0pt;margin-bottom:0pt"><span \
style="vertical-align:baseline;font-variant:normal;font-style:normal;font-size:15px;ba \
ckground-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal">If \
internal functionality is tightly coupled with DOM is it possible  to integrate with \
DOOM component .</span></p>


<div><div>
<br><span style="vertical-align:baseline;font-variant:normal;font-style:normal;font-si \
ze:15px;background-color:transparent;text-decoration:none;font-family:Arial;font-weight:normal"></span><br><br><br><div \
class="gmail_quote">



On Sat, Mar 23, 2013 at 9:09 PM, Andreas Veithen <span dir="ltr">&lt;<a \
href="mailto:andreas.veithen@gmail.com" \
target="_blank">andreas.veithen@gmail.com</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">



I think that 1 and 2 only make sense as a single project (as described<br>
in AXIOM-367):<br>
<br>
* The scope of 2 is not large enough for a GSoC project.<br>
* 2 is a prerequisite for 1, but 1 is also an important test to check<br>
that the design of the new API is correct.<br>
<br>
Regarding 3, can you give a definition of &quot;streaming XPath parser&quot;?<br>
<br>
Andreas<br>
<div><div><br>
On Sat, Mar 23, 2013 at 3:47 AM, Isuru Ranawaka &lt;<a \
href="mailto:irjanith@gmail.com" target="_blank">irjanith@gmail.com</a>&gt; \
wrote:<br> &gt; hi all ,<br>
&gt;<br>
&gt;  I am a final year student from computer science and engineering department<br>
&gt; of  university of moratuwa. I would like to do a  GSOC project  .Some of the<br>
&gt; prefered project ideas are as follows<br>
&gt;<br>
&gt;<br>
&gt; 1. Improve AXIOMXpath for support for Xpath 2.0<br>
&gt;<br>
&gt;      currently AXIOM is only support for Xpath 1.0 which is used in jaxen<br>
&gt; 1.1 .So upgrading Xpath 1.0 to Xpath 2.0 can be done by integrating Xpath<br>
&gt; Processor such as psychoPath xpath 2.0 processor. basically it has loosely<br>
&gt; coupled API with internal implementation and it has more than 80  production<br>
&gt; rules.Xpath parsing is done via JFlex and CUP.<br>
&gt;<br>
&gt;<br>
&gt; 2. Develop Abstract API for make AXIOM loosely couple with Xpath<br>
&gt; Implementation.<br>
&gt;<br>
&gt;      currently AXIOM is tightly coupled with jaxen 1.1 and it will hard to<br>
&gt; replace with new Xpath implementations.So developing Abstract API with<br>
&gt; reusing   javax.xml.xpath which is independent from object model is another<br>
&gt; idea.<br>
&gt;<br>
&gt;<br>
&gt; 3. Implement Streaming Xpath Engine on top of the XMLStream.<br>
&gt;<br>
&gt;      Available Streaming Xpath Parsers are implement on top of the AXIOM .So<br>
&gt; this idea is to implement it on top of the XMLStream which can gain<br>
&gt; performance than others.Here  a Xpath Expression Compiler should be<br>
&gt; implemented and have to figure out object model for evaluate XML Stream.<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;                 I would like to work on a project above mentioned and please<br>
&gt; send your thoughts and ideas .<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; thanks<br>
&gt;<br>
&gt; isuru<br>
&gt;<br>
&gt;<br>
<br>
</div></div>---------------------------------------------------------------------<br>
To unsubscribe, e-mail: <a href="mailto:dev-unsubscribe@ws.apache.org" \
target="_blank">dev-unsubscribe@ws.apache.org</a><br> For additional commands, \
e-mail: <a href="mailto:dev-help@ws.apache.org" \
target="_blank">dev-help@ws.apache.org</a><br> <br>
</blockquote></div><br>
</div></div></blockquote></div></div></div><br>
</blockquote></div><br>



[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic