 on our last meeting (Andreas: I assume you are on this list?).
Andreas mentioned the importance of being able to discover relevant and appropriate ressources. This use case is core for the LIDER project in which many people here are involved and I think it would be great to have some more specific requirements on this. These requirements might then end up as a use case in a deliverable of LIDER and thus be part of our roadmap. In addition, we would try to support the corresponding use case at a technical level.
In order to get this started, it would be great to have some more specific examples of what Andreas had in mind.
Andreas: would you be willing to provide us some examples of particular needs in the form of pseudo-queries, e.g. "I need to find a lexicon in the German language on a particular domain etc.". That would be very helpful. I can try to narrate the whole thing into a coherent piece of text that can end up in one of the LIDER deliverables on relevant business cases.
Next message: Penny Labropoulou: "RE: [ld4lt] MetaShare OWL metamodel: first steps"
Previous message: Felix Sasaki: "Re: [ld4lt] MetaShare OWL metamodel: first steps"
In reply to: Andreas Blumauer: "Re: [ld4lt] MetaShare OWL metamodel: first steps"
Next in thread: Felix Sasaki: "Re: [ld4lt] MetaShare OWL metamodel: first steps"(Source: anditslove)May 25th with 605 notes | reblog
(Source: Flickr / leonardofabris)May 24th with 217 notes | reblog
(Source: rhinocraticoath)May 24th with 86 notes | reblog
![ tranquillus:
valentines day (by god bless the chaos)
]()
May 24th with 26 notes | reblogMay 24th with 26 notes | reblog
valentines day (by god bless the chaos)
(Source: charleybucket)May 24th with 892 notes | reblog
The Nicest Thing by Kate Nash
Kate Nash - Nicest Thing
Such a lovely song
(Source: insertpoetictitlehere)<!br/> May 24th with 24 notes | reblog | 119 playsA shining city on a hill overlooking the valley. Civita is a beutifully landscaped and maintained complex. True resort style living with an incredible club house and multiple pools, gym, a massive park and trail/promenade system that winds through this beautifully landscaped and maintained community. Upgrades to this Town home include a Cesar Stone "Queen of Hearts" one of a kind countertop in the kitchen & 1/2 bath. Travertine on the first floor, Larch wood flooring from Zimbabwe on the second floor.<commit_before>/* Copyright (C) 2002-2003 <NAME> */

#include "lib.h"
#include "buffer.h"
#include "istream.h"
#include "str.h"
#include "message-date.h"
#include "message-part-serialize.h"
#include "message-parser.h"
#include "imap-bodystructure.h"
#include "imap-envelope.h"
#include "mail-cache.h"
#include "index-storage.h"
#include "index-mail.h"

struct mail_cache_field cache_fields[MAIL_CACHE_FIELD_COUNT] = {
	{ "flags", 0, MAIL_CACHE_FIELD_BITMASK, sizeof(uint32_t), 0 },
	{ "date.sent", 0, MAIL_CACHE_FIELD_FIXED_SIZE,
	  sizeof(struct mail_sent_date), 0 },
	{ "date.received", 0, MAIL_CACHE_FIELD_FIXED_SIZE,
	  sizeof(time_t), 0 },
	{ "size.virtual", 0, MAIL_CACHE_FIELD_FIXED_SIZE,
	  sizeof(uoff_t), 0 },
	{ "size.physical", 0, MAIL_CACHE_FIELD_FIXED_SIZE,
	  sizeof(uoff_t), 0 },
	{ "imap.body", 0, MAIL_CACHE_FIELD_STRING, 0, 0 },
	{ "imap.bodystructure", 0, MAIL_CACHE_FIELD_STRING, 0, 0 },
	{ "imap.envelope", 0, MAIL_CACHE_FIELD_STRING, 0, 0 },
	{ "mime.parts", 0, MAIL_CACHE_FIELD_VARIABLE_SIZE, 0, 0 },
	{ "mail.uid", 0, MAIL_CACHE_FIELD_STRING, 0, 0 }
};

static void index_mail_parse_body(struct index_mail *mail, int need_parts);

static struct message_part *get_cached_parts(struct index_mail *mail)
{
	struct message_part *part;
	buffer_t *part_buf;
	const char *error;

	t_push();
	part_buf = buffer_create_dynamic(pool_datastack_create(),
					 128, (size_t)-1);
	if (mail_cache_lookup_field(mail->trans->cache_view, part_buf,
			mail->data.seq,
			cache_fields[MAIL_CACHE_MESSAGEPART].idx) <= 0) {
		t_pop();
		return NULL;
	}

	part = message_part_deserialize(mail->pool,
					buffer_get_data(part_buf, NULL),
					buffer_get_used_size(part_buf),
					&error);
	t_pop();

	if (part == NULL) {
		mail_cache_set_corrupted(mail->ibox->cache,
			"Corrupted cached message_part data (%s)", error);
		return NULL;
	}

	/* we know the NULs now, update them */
	if ((part->flags & MESSAGE_PART_FLAG_HAS_NULS)!= 0) {
		mail->mail.has_nuls = TRUE;
		mail->mail.has_no_nuls = FALSE;
	} else {
		mail->mail.has_nuls = FALSE;
		mail->mail.has_no_nuls = TRUE;
	}

	return part;
}

const char *index_mail_get_cached_string(struct index_mail *mail,
					 enum index_cache_field field)
{
	string_t *str;

	str = str_new(mail->pool, 32);
	if (mail_cache_lookup_field(mail->trans->cache_view, str,
				    mail->data.seq,
				    cache_fields[field].idx) <= 0) {
		p_free(mail->pool, str);
		return NULL;
	}

	return str_c(str);
}

static int index_mail_get_fixed_field(struct index_mail *mail,
				      enum index_cache_field field,
				      void *data, size_t data_size)
{
	buffer_t *buf;
	int ret;

	t_push();
	buf = buffer_create_data(pool_datastack_create(), data, data_size);
	if (mail_cache_lookup_field(mail->trans->cache_view, buf,
				    mail->data.seq,
				    cache_fields[field].idx) <= 0) {
		ret = FALSE;
	} else {
		i_assert(buffer_get_used_size(buf) == data_size);
		ret = TRUE;
	}
	t_pop();

	return ret;
}

uoff_t index_mail_get_cached_uoff_t(struct index_mail *mail,
				    enum index_cache_field field)
{
	uoff_t uoff;

	if (!index_mail_get_fixed_field(mail, cache_fields[field].idx,
					&uoff, sizeof(uoff)))
		uoff = (uoff_t)-1;

	return uoff;
}

uoff_t index_mail_get_cached_virtual_size(struct index_mail *mail)
{
	return index_mail_get_cached_uoff_t(mail, MAIL_CACHE_VIRTUAL_FULL_SIZE);
}

static uoff_t index_mail_get_cached_physical_size(struct index_mail *mail)
{
	return index_mail_get_cached_uoff_t(mail,
					    MAIL_CACHE_PHYSICAL_FULL_SIZE);
}

time_t index_mail_get_cached_received_date(struct index_mail *mail)
{
	time_t t;

	if (!index_mail_get_fixed_