/// <summary>
        /// retrieves aggregate relations for a resource
        /// </summary>
        /// <param name="levelOfStripping">stripping level</param>
        private void RetrieveAggreagates(int levelOfStripping)
        {
            //No retrievals below stripping level
            if (levelOfStripping <= 0)
            {
                return;
            }
            Debug.Assert(ResourceUri != Guid.Empty);

            using (ZentityContext context = CoreHelper.CreateZentityContext())
            {
                List <Relationship> contains = context.Relationships.Where(
                    relationship =>
                    relationship.Subject.Id == ResourceUri &&
                    relationship.Predicate.Uri == Properties.Resources.ORE_CONTAINS_PREDICATE
                    ).ToList();
                foreach (Relationship relation in contains)
                {
                    relation.ObjectReference.Load();
                    ZentityAggregatedResource resource = new ZentityAggregatedResource(relation.Object.Id, --levelOfStripping);
                    AggreagtedResources.Add(resource);
                    Type objectType = context.Resources.Where(res => res.Id == relation.Object.Id).First().GetType();
                    AggregateTypes.Add(objectType);
                }
            }
        }