OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

relax-ng message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Subject: Re: Issue: restrict <interleave>


Given words w, and w1, w2, ..., wn, is w in the interleaving of w1,


w2, ..., wn?  This problem is NP-complete ("Warmuth and Haussler,

Onthe Compexity of Iterated Shuffle, Journal of Computer and Syste
m
Sciences, 1984"
)
.

Jing is usually very fast, but I have some malic
ious
schemas/insta
n
ces.

0) Elaps
e
d time

c:\interleave>java -Xms50m -Xmx200m  -cp jing.jar;c:\lib\jaxp.jar;c:
\xerces-1
_3_0\xerces.jar com.thaiopensource.relaxng.util.Driver interleaving6.rng interle
a
ving6.xml

Elapsed time 60031 
m
illiseconds

c:\inter
l
eave>jing.bat

c:\interleave>java -Xms50m -Xmx200m  -cp jing.jar;c:\lib\jaxp
.jar;c:\xerces-1
_3_0\xerces.jar com.thaiopensource.relaxng.util.Driver interleaving61.rng
 i
nterleaving6.xm
l
Elapsed time 
1
00688 milliseconds

c
:
\interleave>jing.bat

c:\interleave>java -Xms50m -Xmx200m  -cp jing.jar;c:\l
ib\jaxp.jar;c:\xerces-1
_3_0\xerces.jar com.thaiopensource.relaxng.util.Driver interleavin
g6
2.rng interleaving6.xm
l
Elapse
d
 time 149391 millisecon
d
s

c:\interleave>jing.bat

c:\interleave>java -Xms50m -Xmx200m  -cp jing.j
ar;c:\lib\jaxp.jar;c:\xerces-1
_3_0\xerces.jar com.thaiopensource.relaxng.util.Driver inte
rl
eaving63.rng interleaving6.xm
l


Elapsed time 198359 mil
l
iseconds

c:\interleave>jing.bat

c:\interleave>java -Xms50m -Xmx200m  -cp
 jing.jar;c:\lib\jaxp.jar;c:\xerces-1
_3_0\xerces.jar com.thaiopensource.relaxng.util.Driv
e
r interleaving7.rng interleaving7
.
xml

Elapsed time 4
8
5375 milliseconds

1) interleaving6.rng

interleaving61.rng, interleaving62.r
ng, and interleaving63.rng has one,
 
two, and
three more <group>s, respectively.

<element name="fo
o" xmlns="http:
//relaxng.or
g/ns/structure/0.9">
  <interleave>
    <group>
     <option
al><element name="a"><empty/></element></optional>
     <optio
nal><element name="b"><empty/></element></optional>
     <opti
onal><element name="c"><empty/></element></optional>
     <opt
ional><element name="d"><empty/></element></optional>
     <op
tional><element name="e"><empty/></element></optional>
     <o
ptional><element name="f"><empty/></element></optional>
     <
optional><element name="g"><empty/></element></optional>
     
<optional><element name="h"><empty/></element></optional>
    
 <optional><element name="i"><empty/></element></optional>
   
  <optional><
element name
="j"><empty/></element></optional>
    </group>
    <group>
     <optional><element name="a"><empty/></element></optional>


     <optional><element name="b"><empty/></element></optional>

     <optional><element name="c"><empty/></element></optional
>
     <optional><element name="d"><empty/></element></optiona
l>
     <optional><element name="e"><empty/></element></option
al>
     <optional><element name="f"><empty/></element></optio
nal>
     <optional><element name="g"><empty/></element></opti
onal>
     <optional><element name="h"><empty/></element></opt
ional>
     <optional><element name="i"><empty/></element></op
tional>
    
 <optional><
element name="j"><empty/></element></optional>
    </group>
 
   <group>
     <optional><element name="a"><empty/></element>
</optional>
     <optional><element name="b"><empty/></element
></optional>
     <optional><element name="c"><empty/></elemen
t></optional>
     <optional><element name="d"><empty/></eleme
nt></optional>
     <optional><element name="e"><empty/></elem
ent></optional>
     <optional><element name="f"><empty/></ele
ment></optional>
     <optional><element name="g"><empty/></el
ement></optional>
     <optional><element name="h"><empty/></e
lement></optional>
     <optional><element name="i"><empty/></
element></opt
ional>
    
 <optional><element name="j"><empty/></element></optional>
   
 </group>
    <group>
     <optional><element name="a"><empty
/></element></optional>
     <optional><element name="b"><empt
y/></element></optional>
     <optional><element name="c"><emp
ty/></element></optional>
     <optional><element name="d"><em
pty/></element></optional>
     <optional><element name="e"><e
mpty/></element></optional>
     <optional><element name="f"><
empty/></element></optional>
     <optional><element name="g">
<empty/></element></optional>
     <optional><element name="h"
><empty/></element></optional>
     <optional><element name="i
"><empty/></e
lement></opt
ional>
     <optional><element name="j"><empty/></element></op
tional>
    </group>
    <group>
     <optional><element nam
e="a"><empty/></element></optional>
     <optional><element na
me="b"><empty/></element></optional>
     <optional><element n
ame="c"><empty/></element></optional>
     <optional><element 
name="d"><empty/></element></optional>
     <optional><element
 name="e"><empty/></element></optional>
     <optional><elemen
t name="f"><empty/></element></optional>
     <optional><eleme
nt name="g"><empty/></element></optional>
     <optional><elem
ent name="h"><empty/></element></optional>
     <optional><ele
ment name="i"
><empty/></elem
ent></optio
n
a
l>
     <optional><e
l
ement 
name=
"j"><
empty
/></e
lemen
t></o
ption
al>
    <
/grou
p>
 </
i
nterleave>
</element
>



2) interleaving6.xml

<foo>
<a/>
<b/>
<c/>
<d/>
<e/>

<f/>
<g/>
<
h/>
<i/>
<
j/>
</foo>

3) interleaving7.rng

<element name="foo" xmln
s="http://relaxng.org/ns/structure/0.9">
  <interleave>
    <
group>
     <optional><element name="a"><empty/></element></op
tional>
     <optional><element name="b"><empty/></element></o
ptional>
     <optional><element name="c"><empty/></element></
optional>
     <optional><element name="d"><empty/></element><
/optional>
     <optional><element name="e"><empty/></element>
</optional>
     <optional><element name="f"><empty/></element
></optional>
     <optional><element name="g"><empty/></elemen
t></optional>
     <optional><element name="h"><empty/></eleme
nt></optional>
     <optional><element name="i"><empty/></elem
ent></optiona
l>
     <op
tional><element name="j"><empty/></element></optional>
     <o
ptional><element name="k"><empty/></element></optional>
    </
group>
    <group>
     <optional><element name="a"><empty/><
/element></optional>
     <optional><element name="b"><empty/>
</element></optional>
     <optional><element name="c"><empty/
></element></optional>
     <optional><element name="d"><empty
/></element></optional>
     <optional><element name="e"><empt
y/></element></optional>
     <optional><element name="f"><emp
ty/></element></optional>
     <optional><element name="g"><em
pty/></element></optional>
     <optional><element name="h"><e
mpty/></element></optional>
     <optional><element name="i"><
empty/></elem
ent></option
al>
     <optional><element name="j"><empty/></element></optio
nal>
     <optional><element name="k"><empty/></element></opti
onal>
    </group>
    <group>
     <optional><element name=
"a"><empty/></element></optional>
     <optional><element name
="b"><empty/></element></optional>
     <optional><element nam
e="c"><empty/></element></optional>
     <optional><element na
me="d"><empty/></element></optional>
     <optional><element n
ame="e"><empty/></element></optional>
     <optional><element 
name="f"><empty/></element></optional>
     <optional><element
 name="g"><empty/></element></optional>
     <optional><elemen
t name="h"><empty/></element></optional>
     <optional><eleme
nt name="i"><
empty/></ele
ment></optional>
     <optional><element name="j"><empty/></el
ement></optional>
     <optional><element name="k"><empty/></e
lement></optional>
    </group>
    <group>
     <optional><
element name="a"><empty/></element></optional>
     <optional>
<element name="b"><empty/></element></optional>
     <optional
><element name="c"><empty/></element></optional>
     <optiona
l><element name="d"><empty/></element></optional>
     <option
al><element name="e"><empty/></element></optional>
     <optio
nal><element name="f"><empty/></element></optional>
     <opti
onal><element name="g"><empty/></element></optional>
     <opt
ional><element name="h"><empty/></element></optional>
     <op
tional><eleme
nt name="i">
<empty/></element></optional>
     <optional><element name="j"
><empty/></element></optional>
     <optional><element name="k
"><empty/></element></optional>
    </group>
    <group>
   
  <optional><element name="a"><empty/></element></optional>
  
   <optional><element name="b"><empty/></element></optional>
 
    <optional><element name="c"><empty/></element></optional>
     <optional><element name="d"><empty/></element></optional>


     <optional><element name="e"><empty/></element></optional>

     <optional><element name="f"><empty/></element></optional
>
     <optional><element name="g"><empty/></element></optiona
l>
     <optional><element name="h"><empty/></element></option
al>
     <op
tional><element
 name="i"><
e
m
pty/></element></opti
o
nal>
     
<opti
onal>
<elem
ent n
ame="
j"><e
mpty/
></el
ement
></op
tional>

  
   <optio
na
l><elem
ent name="k"><empty/></element></optional>
    </group>
 </interleave>
</element>


4) interleaving7.xml

<foo>
<a/>
<b/>
<c/>
<d/>
<e/>
<f/>
<g/>
<h/>
<i/>
<j/>
<k/>
</foo>


Cheers,

Makoto


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]


Powered by eList eXpress LLC