Skip to content

Memes API Reference

Complete API documentation for meme objects and operations.

Meme Class

Core class representing individual memes in the Q-Memetic AI system.

Constructor

class Meme:
    def __init__(
        self,
        content: str,
        metadata: Optional[MemeMetadata] = None,
        vector: Optional[np.ndarray] = None,
        meme_id: Optional[str] = None
    ) -> None:
        """
        Initialize a new meme.

        Args:
            content: The textual content of the meme
            metadata: Optional metadata object
            vector: Optional pre-computed semantic vector
            meme_id: Optional unique identifier
        """

Properties

Core Properties

Property Type Description
meme_id str Unique identifier for the meme
content str Textual content of the meme
vector np.ndarray Semantic vector representation
metadata MemeMetadata Associated metadata object
fitness float Current fitness score
generation int Evolution generation number
created_at datetime Creation timestamp
modified_at datetime Last modification timestamp

Computed Properties

@property
def complexity(self) -> float:
    """Calculate content complexity score (0.0 to 1.0)."""

@property
def semantic_density(self) -> float:
    """Calculate semantic information density."""

@property
def novelty_score(self) -> float:
    """Calculate novelty relative to population."""

@property
def word_count(self) -> int:
    """Get word count of content."""

@property
def character_count(self) -> int:
    """Get character count of content."""

Methods

Content Manipulation

def update_content(self, new_content: str) -> None:
    """
    Update meme content and refresh derived properties.

    Args:
        new_content: New textual content
    """

def append_content(self, additional_content: str) -> None:
    """
    Append content to existing meme.

    Args:
        additional_content: Content to append
    """

def prepend_content(self, prefix_content: str) -> None:
    """
    Prepend content to existing meme.

    Args:
        prefix_content: Content to prepend
    """

Example:

meme = Meme("Original insight")
meme.update_content("Expanded original insight with new findings")
meme.append_content(" Additional conclusions drawn from data.")
print(meme.content)
# Output: "Expanded original insight with new findings Additional conclusions drawn from data."

Vector Operations

def compute_vector(
    self,
    model: str = "sentence-transformers",
    dim: int = 512
) -> np.ndarray:
    """
    Compute semantic vector representation.

    Args:
        model: Embedding model to use
        dim: Vector dimensionality

    Returns:
        np.ndarray: Semantic vector
    """

def update_vector(self, new_vector: np.ndarray) -> None:
    """
    Update the semantic vector.

    Args:
        new_vector: New vector representation
    """

def vector_similarity(self, other_meme: 'Meme') -> float:
    """
    Calculate cosine similarity with another meme.

    Args:
        other_meme: Meme to compare with

    Returns:
        float: Similarity score (0.0 to 1.0)
    """

Example:

meme1 = Meme("Quantum computing applications")
meme2 = Meme("Quantum algorithm development")

# Compute vectors
meme1.compute_vector(model="all-MiniLM-L6-v2", dim=384)
meme2.compute_vector(model="all-MiniLM-L6-v2", dim=384)

# Calculate similarity
similarity = meme1.vector_similarity(meme2)
print(f"Similarity: {similarity:.3f}")

Fitness and Evaluation

def calculate_fitness(
    self,
    fitness_function: Optional[Callable] = None,
    context: Optional[Dict[str, Any]] = None
) -> float:
    """
    Calculate fitness score for the meme.

    Args:
        fitness_function: Custom fitness function
        context: Additional context for evaluation

    Returns:
        float: Fitness score
    """

def evaluate_quality(self) -> Dict[str, float]:
    """
    Comprehensive quality evaluation.

    Returns:
        Dict[str, float]: Quality metrics including:
            - coherence: Logical consistency
            - clarity: Readability and understanding
            - originality: Uniqueness score
            - relevance: Domain relevance
            - impact: Potential influence score
    """

Example:

def research_fitness(meme):
    """Custom fitness for research applications."""
    quality = meme.evaluate_quality()
    return (
        0.3 * quality['coherence'] +
        0.2 * quality['clarity'] +
        0.3 * quality['originality'] +
        0.2 * quality['relevance']
    )

fitness = meme.calculate_fitness(fitness_function=research_fitness)
quality_metrics = meme.evaluate_quality()
print(f"Fitness: {fitness:.3f}")
print(f"Quality breakdown: {quality_metrics}")

Serialization

def to_dict(self) -> Dict[str, Any]:
    """
    Serialize meme to dictionary.

    Returns:
        Dict[str, Any]: Serialized meme data
    """

@classmethod
def from_dict(cls, data: Dict[str, Any]) -> 'Meme':
    """
    Deserialize meme from dictionary.

    Args:
        data: Serialized meme data

    Returns:
        Meme: Reconstructed meme object
    """

def to_json(self) -> str:
    """
    Serialize meme to JSON string.

    Returns:
        str: JSON representation
    """

@classmethod
def from_json(cls, json_str: str) -> 'Meme':
    """
    Deserialize meme from JSON string.

    Args:
        json_str: JSON representation

    Returns:
        Meme: Reconstructed meme object
    """

Example:

# Serialize meme
meme_dict = meme.to_dict()
meme_json = meme.to_json()

# Deserialize meme
reconstructed_from_dict = Meme.from_dict(meme_dict)
reconstructed_from_json = Meme.from_json(meme_json)

# Verify reconstruction
assert meme.content == reconstructed_from_dict.content
assert meme.meme_id == reconstructed_from_json.meme_id

MemeMetadata Class

Container for meme metadata and attributes.

Constructor

class MemeMetadata:
    def __init__(
        self,
        author: Optional[str] = None,
        domain: Optional[str] = None,
        tags: Optional[List[str]] = None,
        complexity: Optional[float] = None,
        generation: int = 0,
        source: Optional[str] = None,
        confidence: float = 1.0,
        **kwargs
    ) -> None:
        """
        Initialize meme metadata.

        Args:
            author: Author identifier
            domain: Subject domain
            tags: List of descriptive tags
            complexity: Complexity score (0.0 to 1.0)
            generation: Evolution generation
            source: Source information
            confidence: Confidence score (0.0 to 1.0)
            **kwargs: Additional metadata fields
        """

Properties

Property Type Default Description
author Optional[str] None Author identifier
domain Optional[str] None Subject domain
tags List[str] [] Descriptive tags
complexity float 0.0 Complexity score
generation int 0 Evolution generation
source Optional[str] None Source information
confidence float 1.0 Confidence score
parent_ids List[str] [] Parent meme IDs
child_ids List[str] [] Child meme IDs
created_at float time.time() Creation timestamp
modified_at float time.time() Modification timestamp

Methods

def add_tag(self, tag: str) -> None:
    """Add a tag to the metadata."""

def remove_tag(self, tag: str) -> None:
    """Remove a tag from the metadata."""

def has_tag(self, tag: str) -> bool:
    """Check if metadata has a specific tag."""

def get_age_days(self) -> float:
    """Get age of meme in days."""

def add_parent(self, parent_id: str) -> None:
    """Add a parent meme ID."""

def add_child(self, child_id: str) -> None:
    """Add a child meme ID."""

def to_dict(self) -> Dict[str, Any]:
    """Serialize metadata to dictionary."""

@classmethod
def from_dict(cls, data: Dict[str, Any]) -> 'MemeMetadata':
    """Deserialize metadata from dictionary."""

Example:

metadata = MemeMetadata(
    author="research_team_alpha",
    domain="artificial_intelligence",
    tags=["machine_learning", "neural_networks"],
    complexity=0.7,
    source="research_paper_2024"
)

metadata.add_tag("breakthrough")
metadata.add_parent("parent_meme_id_123")

print(f"Age: {metadata.get_age_days():.1f} days")
print(f"Has ML tag: {metadata.has_tag('machine_learning')}")

MemeVector Class

Specialized vector operations for memes.

Constructor

class MemeVector:
    def __init__(
        self,
        vector: np.ndarray,
        model_name: str = "default",
        dimensionality: Optional[int] = None
    ) -> None:
        """
        Initialize semantic vector.

        Args:
            vector: Numerical vector representation
            model_name: Name of embedding model used
            dimensionality: Vector dimensionality
        """

Vector Operations

def cosine_similarity(self, other: 'MemeVector') -> float:
    """Calculate cosine similarity with another vector."""

def euclidean_distance(self, other: 'MemeVector') -> float:
    """Calculate Euclidean distance to another vector."""

def manhattan_distance(self, other: 'MemeVector') -> float:
    """Calculate Manhattan distance to another vector."""

def dot_product(self, other: 'MemeVector') -> float:
    """Calculate dot product with another vector."""

def normalize(self) -> 'MemeVector':
    """Return normalized version of vector."""

def add(self, other: 'MemeVector') -> 'MemeVector':
    """Add another vector (element-wise)."""

def subtract(self, other: 'MemeVector') -> 'MemeVector':
    """Subtract another vector (element-wise)."""

def multiply(self, scalar: float) -> 'MemeVector':
    """Multiply vector by scalar."""

Dimensional Analysis

def reduce_dimensions(
    self,
    target_dim: int,
    method: str = "pca"
) -> 'MemeVector':
    """
    Reduce vector dimensionality.

    Args:
        target_dim: Target dimensionality
        method: Reduction method ("pca", "tsne", "umap")

    Returns:
        MemeVector: Reduced-dimension vector
    """

def expand_dimensions(
    self,
    target_dim: int,
    method: str = "zero_pad"
) -> 'MemeVector':
    """
    Expand vector dimensionality.

    Args:
        target_dim: Target dimensionality
        method: Expansion method ("zero_pad", "interpolate")

    Returns:
        MemeVector: Expanded-dimension vector
    """

Example:

# Create vectors
vector1 = MemeVector(np.random.randn(512), model_name="sentence-bert")
vector2 = MemeVector(np.random.randn(512), model_name="sentence-bert")

# Calculate similarities
cosine_sim = vector1.cosine_similarity(vector2)
euclidean_dist = vector1.euclidean_distance(vector2)

print(f"Cosine similarity: {cosine_sim:.3f}")
print(f"Euclidean distance: {euclidean_dist:.3f}")

# Dimension operations
reduced = vector1.reduce_dimensions(target_dim=128, method="pca")
normalized = vector1.normalize()

Utility Functions

Content Analysis

def analyze_content_complexity(content: str) -> float:
    """
    Analyze content complexity.

    Args:
        content: Text content to analyze

    Returns:
        float: Complexity score (0.0 to 1.0)
    """

def extract_keywords(
    content: str,
    num_keywords: int = 10,
    method: str = "tfidf"
) -> List[str]:
    """
    Extract keywords from content.

    Args:
        content: Text content
        num_keywords: Number of keywords to extract
        method: Extraction method ("tfidf", "rake", "yake")

    Returns:
        List[str]: Extracted keywords
    """

def calculate_readability(content: str) -> Dict[str, float]:
    """
    Calculate readability metrics.

    Args:
        content: Text content

    Returns:
        Dict[str, float]: Readability scores
    """

Batch Operations

def create_meme_batch(
    content_list: List[str],
    metadata_list: Optional[List[MemeMetadata]] = None,
    batch_size: int = 100
) -> List[Meme]:
    """
    Create multiple memes efficiently.

    Args:
        content_list: List of content strings
        metadata_list: Optional list of metadata objects
        batch_size: Processing batch size

    Returns:
        List[Meme]: Created memes
    """

def similarity_matrix(memes: List[Meme]) -> np.ndarray:
    """
    Calculate pairwise similarity matrix.

    Args:
        memes: List of memes

    Returns:
        np.ndarray: Similarity matrix
    """

def cluster_memes(
    memes: List[Meme],
    num_clusters: int,
    method: str = "kmeans"
) -> Dict[int, List[Meme]]:
    """
    Cluster memes by similarity.

    Args:
        memes: List of memes to cluster
        num_clusters: Number of clusters
        method: Clustering method

    Returns:
        Dict[int, List[Meme]]: Clustered memes
    """

Example:

# Batch creation
content_list = [f"Research finding {i}" for i in range(100)]
memes = create_meme_batch(content_list, batch_size=25)

# Similarity analysis
sim_matrix = similarity_matrix(memes[:10])
print(f"Similarity matrix shape: {sim_matrix.shape}")

# Clustering
clusters = cluster_memes(memes, num_clusters=5, method="kmeans")
for cluster_id, cluster_memes in clusters.items():
    print(f"Cluster {cluster_id}: {len(cluster_memes)} memes")

Advanced Features

Genetic Operations

def crossover_memes(
    parent1: Meme,
    parent2: Meme,
    method: str = "semantic_blend"
) -> Tuple[Meme, Meme]:
    """
    Perform crossover between two memes.

    Args:
        parent1: First parent meme
        parent2: Second parent meme
        method: Crossover method

    Returns:
        Tuple[Meme, Meme]: Two offspring memes
    """

def mutate_meme(
    meme: Meme,
    mutation_rate: float = 0.1,
    mutation_type: str = "semantic"
) -> Meme:
    """
    Apply mutation to a meme.

    Args:
        meme: Meme to mutate
        mutation_rate: Probability of mutation
        mutation_type: Type of mutation

    Returns:
        Meme: Mutated meme
    """

Quality Metrics

class MemeQualityAssessor:
    """Assess meme quality across multiple dimensions."""

    def __init__(self):
        self.metrics = {
            "coherence": CoherenceMetric(),
            "novelty": NoveltyMetric(),
            "relevance": RelevanceMetric(),
            "clarity": ClarityMetric(),
            "impact": ImpactMetric()
        }

    def assess_quality(self, meme: Meme) -> Dict[str, float]:
        """
        Comprehensive quality assessment.

        Args:
            meme: Meme to assess

        Returns:
            Dict[str, float]: Quality scores
        """

    def compare_quality(
        self,
        meme1: Meme,
        meme2: Meme
    ) -> Dict[str, float]:
        """
        Compare quality between two memes.

        Args:
            meme1: First meme
            meme2: Second meme

        Returns:
            Dict[str, float]: Quality comparison scores
        """

Performance Optimization

def optimize_meme_storage(memes: List[Meme]) -> None:
    """Optimize memory usage for large meme collections."""

def cache_vectors(memes: List[Meme], cache_size: int = 1000) -> None:
    """Cache frequently accessed vectors."""

def batch_vector_computation(
    memes: List[Meme],
    model: str = "sentence-transformers",
    batch_size: int = 32
) -> None:
    """Compute vectors in batches for efficiency."""

Example:

# Quality assessment
assessor = MemeQualityAssessor()
quality_scores = assessor.assess_quality(meme)
print(f"Quality scores: {quality_scores}")

# Genetic operations
child1, child2 = crossover_memes(parent1, parent2, method="semantic_blend")
mutated = mutate_meme(child1, mutation_rate=0.2)

# Performance optimization
large_meme_collection = [Meme(f"Content {i}") for i in range(10000)]
optimize_meme_storage(large_meme_collection)
batch_vector_computation(large_meme_collection, batch_size=64)

Error Handling

Meme-Specific Exceptions

class MemeError(Exception):
    """Base exception for meme-related errors."""

class InvalidMemeContent(MemeError):
    """Raised when meme content is invalid."""

class MemeVectorError(MemeError):
    """Raised when vector operations fail."""

class MemeMetadataError(MemeError):
    """Raised when metadata is invalid."""

# Usage example
try:
    meme = Meme("")  # Empty content
except InvalidMemeContent as e:
    print(f"Invalid meme content: {e}")

try:
    similarity = meme1.vector_similarity(meme2)  # If vectors not computed
except MemeVectorError as e:
    print(f"Vector error: {e}")
    # Compute vectors first
    meme1.compute_vector()
    meme2.compute_vector()
    similarity = meme1.vector_similarity(meme2)

Integration Examples

With Evolution System

from qmemetic_ai.core.evolution import GeneticEvolver

# Create initial population
population = [Meme(f"Initial idea {i}") for i in range(20)]

# Set up evolver
evolver = GeneticEvolver(
    fitness_function=lambda m: m.calculate_fitness(),
    mutation_rate=0.25,
    crossover_rate=0.75
)

# Evolve population
evolved_population = evolver.evolve(population, generations=10)

# Analyze evolution results
for meme in evolved_population:
    quality = meme.evaluate_quality()
    print(f"Evolved meme: {meme.content[:50]}...")
    print(f"  Fitness: {meme.fitness:.3f}")
    print(f"  Generation: {meme.generation}")

With Entanglement System

from qmemetic_ai.core.entanglement import QuantumEntangler

# Create entanglement network
entangler = QuantumEntangler()
network = entangler.create_network(memes)

# Find entangled memes
for meme in memes:
    entangled_partners = entangler.get_entangled_memes(meme)
    print(f"Meme: {meme.content[:30]}...")
    for partner, strength in entangled_partners[:3]:  # Top 3
        print(f"  Partner: {partner.content[:30]}... (strength: {strength:.3f})")

For complete integration examples and advanced usage patterns, see the Engine API documentation.