Hi Chris, I find this incredibly interesting! Thank you for your full explanation. I was aware of the components, but not the implementation.
... to provide a means to query both document full-text and metadata using an RDF model
Is there any thing I can read about how you have some to this approach? The meta data here is simply the RDF elements? But there is a distinction between the name given to an element, that has a semantic, and the type of element, which I guess has a semantic implication? Either or both of these could influence a text search or feedback to the user (to refine their query, perhaps)?
... query all RDF literals using Lucene's query facilities while making use of the logical RDF structure (which is what you want, if I understand you correctly), even when the structure of the stored models is not known at development time.
Yes, that is what I am thinking. Well, we know that we can import a model into a class, Henry Story and others are working on this. This is a convenience to the developer, but such things shouldn't be underestimated. So the issue is that we can use an arbitrary data structure in code (that happens to be RDF), and what we need to do is find what is generic in RDF that will allow us to meaningfully manipulate it. Perhaps an approach would be to have a series of handlers that would facilitate this, e.g. an obvious one would be a list handler. But less obvious would be the implication of the presence or absence of elements, i.e. optional in the XSD. I am very uncertain where this is going. It may be impossible to draw many logical conclusions from RDF that are explicit in RDF/OWL, and trying to do that would be like trying to recast the RDF as OWL? The investigations into OWL must be relevant here anyway. Turning to the Lucene side of it, I think there must be something extra that Lucene can add to how that structure is used, e.g. it is an arbitrary structure with arbitrary data encapsulated, but the data can inform the approach in logic to the structure? Adam On 28/06/06, Christiaan Fluit <[EMAIL PROTECTED]> wrote:
adasal wrote: > As far as i have researched this I know that the gnowsis project uses both > rdf and lucene, but I have not had time to determine their relationship. > www.gnowsis.org/ I can tell you a bit about Gnowsis, as we (Aduna) are cooperating with the Gnowsis people on RDF creation, storage and querying in the Aperture project (aperture.sourceforge.net). Both the latest Gnowsis beta version and various Aduna products use the Sesame framework (openrdf.org) to store and query RDF. One of Sesame's core interfaces is the Sail (Storage And Inference Layer), which provides an abstraction on a specific type of RDF store, e.g. in-memory, file-based, RDBMS-based, ... We have developed a Sail implementation that combines a file-based RDF storage with a Lucene index. The purpose of this Sail is to provide a means to query both document full-text and metadata using an RDF model. The way we realized this is that document metadata is stored in the RDF store, the full-text and other text-like documents are indexed in Lucene, and the RDF model is extended with a virtual property connecting a Document resource to a query literal that can be used to query the full-text. The dedicated Sail knows that that property should not be looked up in the RDF store but should instead be evaluated as a Lucene query. If you want, I can send you example code that shows how we did this. We have some ideas on generalizing this approach, as ideally you would like to be able to query all RDF literals using Lucene's query facilities while making use of the logical RDF structure (which is what you want, if I understand you correctly), even when the structure of the stored models is not known at development time. However, little work has been done on this. I guess that when we would start working on this, the code for it would end up in either the Sesame or Aperture code base. Chris -- --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]