2007/8/7, Evgeny Egorochkin &lt;<a href="mailto:phreedom.stdin@gmail.com">phreedom.stdin@gmail.com</a>&gt;:<div><span class="gmail_quote"></span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Tuesday 07 August 2007 09:29:51 Mikkel Kamstrup Erlandsen wrote:<br>&gt; &gt; &gt; 2. Type Attribute in Query Language<br>&gt; &gt;<br>&gt; &gt; I agree with Jamie that usually people will just enumerate categories in<br>
&gt; &gt; which<br>&gt; &gt; to search, without any complex criterias.<br>&gt; &gt;<br>&gt; &gt; My concern with &lt;query category=&quot;xesam:Audio&quot;&gt; is that it may not play<br>&gt; &gt; nicely<br>&gt; &gt; with services, which may use a different class structure/trees. It would
<br>&gt; &gt; be<br>&gt; &gt; nice to also have a more generic way to specify categories, by treating<br>&gt; &gt; them<br>&gt; &gt; as regular fields.<br>&gt; &gt;<br>&gt; &gt; One of possible ways here is to treat query attrs as a shortcut, while
<br>&gt; &gt; letting<br>&gt; &gt; implementations also support(at their discretion) the more generic<br>&gt; &gt; approach.<br>&gt;<br>&gt; Ok, here&#39;s my take - I think it should match your concerns too. Let cat/src<br>
&gt; attrs be the official and blessed way of selecting cat/srcs to query. Both<br>&gt; cat and src attr is a list of comma separated cats/srcs, fx:<br><br>...<br><br>&gt; The source and category extensions could be selectors for maximum
<br>&gt; flexibility, so that they are used like:<br>&gt;<br>&gt; &lt;query&gt;<br>&gt;&nbsp;&nbsp; &lt;and&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;category name=&quot;xesam:Audio&quot;/&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;source name=&quot;xesam:File&quot;/&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;source name=&quot;xesam:ArchiveItem&quot;/&gt;
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;contains&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;field name=&quot;xesam:title&quot;/&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;string&gt;purple rain&lt;/string&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/contains&gt;<br>&gt;&nbsp;&nbsp; &lt;/and&gt;<br>&gt; &lt;/query&gt;
<br>&gt;<br>&gt; But let me stress that category and source selectors would be *optional*<br>&gt; extensions. This means that they should not cause parse errors, just be<br>&gt; ignored if you do not support them (and people should never use them unless
<br>&gt; they query them via the vendor.extensions property).<br>&gt;<br>&gt; It appears to me that it might be a good idea to prefix all extensions with<br>&gt; &quot;x-&quot; . That way people grapping code snippets of the web should be able to
<br>&gt; clearly see if there are query extensions involved. Ie this would mean that<br>&gt; the cat and source elements above should be called &lt;x-category&gt; and<br>&gt; &lt;x-source&gt;.<br><br>I&#39;d prefer to allow to specify categories like regular field criterias. The
<br>reason is simplicity and ultimate flexibility. Remember some services might<br>not use xesam class trees.</blockquote><div><br>I see the point here, but it also has its drawbacks. I imagine that some backends will want to treat cats/sources different than fields when building the query. They will have to look up all &lt;field&gt; elements and check what type they belong to. That might be expensive (compared to a straight forward parser just building the olde query). 
<br><br>We could be extensive via a &quot;type&quot; selector instead:<br><br>&lt;type name=&quot;category&quot; value=&quot;xesam:Audio&quot;/&gt;<br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&gt; &gt; 4. Problems With Hit Data<br>&gt; &gt;<br>&gt; &gt; We have the following potential solutions:<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aas] works except for ambiguity in strings<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aav] have to use a workaround, like treating one of unused
<br>&gt; &gt; datatypes as a<br>&gt; &gt; null value<br>&gt; &gt;<br>&gt; &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; aa(bv)] b is a null flag. v is the value if applicable<br>&gt; &gt;<br>&gt; &gt;<br>&gt; &gt; I&#39;d prefer unambiguous ones for the sake of completeness.
<br>&gt; &gt;<br>&gt; &gt; Cases where this may be important:<br>&gt; &gt; 1) password: none or unknown<br>&gt; &gt; 2) software flags: none or unknown<br>&gt; &gt; Also empty value is often used to specify default, which is not unknown.
<br>&gt;<br>&gt; I think we should stick with &quot;aav&quot; and say that the value is null if it<br>&gt; contains a zero byte. Ie NULL == V(b=0).<br><br>aa(bv) looks cleaner since we are just compensating for missing functionality,
<br>while aav is a hack,&nbsp;&nbsp;using stuff in ways not intended.</blockquote><div><br>If you ask be aa(bv) is a big a hack as aav+(V(b=0)==NULL). <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
My concern with aav is how easy and reliably can bindings determine file types<br>especially since we need to distinguish int from int. Also, with aa(bv), when<br>we set null flag, we can also make v=&quot;&quot; so that clients who didn&#39;t bother to
<br>check will still receive the closest match to null as opposed to 0 or 1<br>(suppose this gets displayed by gui).</blockquote><div><br>As far as I can tell GLib and Python bindings should not have problems. I don&#39;t know about Qt. People using raw libdbus should definitely be home free.&nbsp; Then there are Java, Perl, and C# (are there any Haskell bindings?) of which I know nothing.
<br></div><br>My problem with aa(bv) is that it is more complex to work with. I am quite worried about introducing the overhead of struct just for this purpose. Both complexity wise and performance wise.<br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>&gt; &gt; &gt; 9. Split out vendor.fieldnames<br>&gt; &gt;<br>&gt; &gt; Could be hard to implement. I&#39;m not sure it&#39;s always easy to enumerate<br>&gt; &gt; all supported fields and classes due to plug-in architecture of most
<br>&gt; &gt; analyzers.<br>&gt;<br>&gt; I would suspect that it is not that hard to get this info. In most cases it<br>&gt; should amount to reading the field defs in a Lucene index or scanning the<br>&gt; table names in a DB.
<br><br>Not sure. If you&#39;ve just installed a plug-in, it&#39;s properties will not be<br>visible. But I&#39;m nitpicking.<br><br>&gt; But some impls might be special, I will investigate.<br><br>Maybe we should redefine this as a minimal supported set. 
i.e. backend<br>supports there 100% but there may be others?</blockquote><div><br>Well, any engine could always fall back to this and have reasonable results anyway. I would like to hear the opinions of some of the engine devs here. As always I will try to pester them on IRC.
<br><br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">&gt; &gt; &gt;XML/INI<br>&gt; &gt;<br>&gt; &gt; Agreed to install both via convertors.
<br>&gt;<br>&gt; I think this is a really bad idea if the only reason for this is that we<br>&gt; couldn&#39;t agree. If it is because it makes life easier for everybody else<br>&gt; too then I&#39;m more positive, but I do not think this is the case.
<br><br>Strigi needs to produce RDF anyway, so dropping it is out of question for us.<br>The question is how and in which way to support it.<br><br>&gt; I was actually pro-rdf/xml until I tried writing a sax parser for<br>
&gt; rdf/xml... Does anybody know of an expat based parser for rdf/xml?<br><br>I&#39;m looking into it ATM. We also can get away with a simplified one, e.g. we<br>don&#39;t need nested stuff.</blockquote><div><br>I don&#39;t know how expat handles custom entity defs and such either. Also if we want to allow cross refs between files concerns me... 
<br></div><br></div>Cheers,<br>Mikkel<br>