2007/5/19, Evgeny Egorochkin <<a href="mailto:phreedom.stdin@gmail.com">phreedom.stdin@gmail.com</a>>:<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 Saturday 19 May 2007 14:37:57 you wrote:<br>> 2007/5/18, Evgeny Egorochkin <<a href="mailto:phreedom.stdin@gmail.com">phreedom.stdin@gmail.com</a>>:<br>> > On Friday 18 May 2007 12:27:30 Mikkel Kamstrup Erlandsen wrote:
<br>> > > > > * should we allow for multiple inheritance (ie multiple parents<br>> > > > > for fields)?<br>> > > ><br>> > > > I believe there were two issues intermixed: multiple parents for
<br>> ><br>> > fields<br>> ><br>> > > > and<br>> > > > multiple types or as you say categories for files.<br>> > ><br>> > > True. That is two issues, but I got the impression that the
<br>> ><br>> > Strigi/Nepomuk<br>> ><br>> > > camp where in favor of both?<br>> > ><br>> > > As I consider multiple inheritance (both cats and/or fields) to be a<br>> > > somewhat big feature request it needs to be founded on solid reasoning
<br>> ><br>> > if<br>> ><br>> > > we should go with it.<br>> ><br>> > I don't consider multiple file types/categories a big feature. Suppose a<br>> > file<br>> > has type/category Audio. This means it belongs to the following
<br>> > categories:<br>> > File, Media, Audio. So it already has multiple types. The question is<br>> > whether<br>> > we allow these types to be outside of strict hierarchy.<br>><br>> It all boils down to whether or not we allow cycles in the ontology tree.
<br>> It is a lot easier to parse/update a tree structure if there are no cycles.<br>> That is why I consider it a big feature.<br><br>Cycles? Not sure what you are talking about. We should not allow any type to<br>
be a parent of itself(indirectly), true, but this is possible even in single<br>ineritance case if onto is malformed. Or maybe you should elaborate more?</blockquote><div><br><br>In my terminology this is a cycle:<br><br>
A : parent = None<br>B1 : parent = A<br>B2 : parent = A<br>C : parent = B1, B2<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;">
> Multiple field inheritance, is too in my opinion is not a big feature<br>><br>> > request<br>> > if inheritance is implemented as such. It might be useful if we link<br>> > multiple<br>> > external ontologies. If we stick with a relatively simple core ontology,
<br>> > it<br>> > may not be required. Time will tell.<br><br>> "We" in this context is *only* the nepomuk project mind you (correct me if<br>> I'm wrong please). There are no plans what so ever for integrating with
<br>> general ontologies in xesam. You can extend the xesam ontology with other<br>> xesam-compliant ontologies and that's it.<br><br>Sorry? I was under impression that Tracker and Beagle wanted to reuse existing
<br>ontologies as much as possible? So I proposed to make a core xesam-specific<br>ontology with mappings to DC, EXIF etc, since it's impossible to cleanly link</blockquote><div><br>I think we agree here :-) I might have been unclear. What I meant is that xesam should not necessarily be interoperable with any old ontology off the web. Priority ones like EXIF and such is another case that I do think we should expose/consume/embed/extend (/me don't consider DC an ontology). We should be interoperable with desktop-related widespread standards IMHO, but these should be nailed down before hand.
<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;">> Xesam should of course not restrict Nepomuk from doing this.<br><br>You're under wrong impression that I'm lobbying nepomuk-specific features to
<br>make life for nepomuk easier. In fact, the simpler is xesam onto(no matter<br>how badly screwed it is), the easier it will be for nepomuk to map it. The<br>reason is that the only mapping needed is Nepomuk->Xesam and not vice versa.
<br>So Nepomuk doesn't have to decipher and work around any Xesam onto<br>simplifications/deficiencies(as compared to Nepomuk).</blockquote><div><br>Oh, I was not aware of what the Nepomuk needs actually where, but if they only need a map Nep->Xes then our life is easier :-)
<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;">Actually, the easiest thing would be to claim that DC is the best and<br>all-encompassing onto and we don't need anything else since Nepomuk already
<br>has a DC mapping.</blockquote><div><br>I don't think anybody wants this :-) <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;">
> > Unfortunately we didn't really get to discuss any<br>> ><br>> > > practical use cases in the IRC meeting.<br>> > ><br>> > > I have not been able to come up with a good use case (of multi inh.)
<br>> > > myself, but maybe some one here can?<br>> ><br>> > Source code: It is a text document(contains text) and software(has<br>> > dependencies on other software).<br>><br>> You mean that it might ref some .h files fx? If that is what you meant I
<br>> can't see why a simple subclass SourceCode->TextFile (or something) isn't<br>> enough..?<br><br>Software has dependencies, maintainer, project it belongs to.<br><br>All multiple-inheritance issues can be resolved by moving offending fields
<br>higher in the hierarchy. This doesn't hurt because they all are optional.<br>Also, you can eliminate single inheritance and file types as such, without<br>much fuss.<br><br>The problem with this approach is that software no longer knows which type is
<br>particular file and consequentially what fields to expect etc.<br><br>The advantage of multi- vs single- inheritance is that you describe aspects of<br>a file with types, e.g it's a text, software and network resource. Software
<br>then knows what fields to expect and what it is processing.</blockquote><div><br><br>I think you are confusing the matters here. One thing is if a category can have multiple parents in the spec. Another thing is if a specific file can belong to several categories...
<br></div><br><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">If the onto is quite generic, multiple-inheritance may not be needed. I don't
<br>insist that we must use it. My point is that it's easy to implement and it<br>may be useful. Whether/when it will be useful, time will tell.</blockquote><div><br>Ok. I find it hard to get a clear view of the pros and cons on this with only the two of us arguing. My biggest problem is that I'm not clear on the implementation burden of a multi-inheritance system. Both ontology-parsing and the actual searching is affected by multi-inh and I don't know how well all backends Lucene, Xapian, Trackers custom SQLLite based, handle this... Maybe a few words by the experts can shed some light on the matter; Jos, Joe, Jamie?
<br><br><br></div>Cheers,<br>Mikkel<br></div><br>