def special_quad_patterns(cls, alias_maker, discussion_id): idea_link = alias_maker.alias_from_class(cls) target_alias = alias_maker.alias_from_relns(cls.target) source_alias = alias_maker.alias_from_relns(cls.source) # Assume tombstone status of target is similar to source, for now. conditions = [(idea_link.target_id == target_alias.id), (target_alias.tombstone_date == None)] if discussion_id: conditions.append((target_alias.discussion_id == discussion_id)) return [ QuadMapPatternS( Idea.iri_class().apply(idea_link.source_id), IDEA.includes, Idea.iri_class().apply(idea_link.target_id), conditions=conditions, name=QUADNAMES.idea_inclusion_reln), QuadMapPatternS( cls.iri_class().apply(idea_link.id), IDEA.source_idea, # Note that RDF is inverted Idea.iri_class().apply(idea_link.target_id), conditions=conditions, name=QUADNAMES.col_pattern_IdeaLink_target_id #exclude_base_condition=True ), QuadMapPatternS( cls.iri_class().apply(idea_link.id), IDEA.target_idea, Idea.iri_class().apply(idea_link.source_id), name=QUADNAMES.col_pattern_IdeaLink_source_id ), QuadMapPatternS( None, RDF.type, IriClass(VirtRDF.QNAME_ID).apply(IdeaLink.rdf_type), name=QUADNAMES.class_IdeaLink_class), ]
def special_quad_patterns(cls, alias_maker, discussion_id): return [ QuadMapPatternS(None, RDF.type, IriClass(VirtRDF.QNAME_ID_SUFFIX).apply( Action.type), name=QUADNAMES.class_ActionOnIdea_class) ]
def special_quad_patterns(cls, alias_maker, discussion_id): discussion_alias = alias_maker.get_reln_alias(cls.discussion) return [ QuadMapPatternS( None, RDF.type, IriClass(VirtRDF.QNAME_ID).apply(Idea.rdf_type), name=QUADNAMES.class_Idea_class), QuadMapPatternS( None, FOAF.homepage, PatternIriClass( QUADNAMES.idea_external_link_iri, # TODO: Use discussion.get_base_url. # This should be computed outside the DB. get_global_base_url() + '/%s/idea/local:Idea/%d', None, ('slug', Unicode, False), ('id', Integer, False)).apply( discussion_alias.slug, cls.id), name=QUADNAMES.idea_external_link_map) ]