Skip to main content

A shared library of Pydantic models and standard schemas for the cjm-graph-plugin-system ecosystem, enabling type-safe domain definitions across plugins and UIs.

Project description

cjm-graph-domains

Install

pip install cjm_graph_domains

Project Structure

nbs/
├── domains/ (3)
│   ├── knowledge.ipynb  # Domain schemas for knowledge management (Person, Work, Concept, Topic, Quote)
│   ├── relations.ipynb  # Standard relationship types for knowledge and structure graphs
│   └── structure.ipynb  # Domain schemas for content structure (Document, Segment)
└── core.ipynb  # Base Pydantic models and conversion logic for domain-specific graph schemas

Total: 4 notebooks across 1 directory

Module Dependencies

graph LR
    core[core<br/>Core]
    domains_knowledge[domains.knowledge<br/>Knowledge Domain]
    domains_relations[domains.relations<br/>Domain Relations]
    domains_structure[domains.structure<br/>Content Structure]

    domains_knowledge --> core
    domains_relations --> domains_knowledge
    domains_relations --> domains_structure
    domains_structure --> core

4 cross-module dependencies detected

CLI Reference

No CLI commands found in this project.

Module Overview

Detailed documentation for each module in the project:

Core (core.ipynb)

Base Pydantic models and conversion logic for domain-specific graph schemas

Import

from cjm_graph_domains.core import (
    DomainNode
)

Classes

class DomainNode(BaseModel):
    "Base Pydantic model for domain-specific graph nodes."
    
    def get_label(self) -> str:  # Node label for the graph (defaults to class name)
            """Return the node label."""
            return self.__class__.__name__
    
        def to_graph_node(
            self,
            sources: List[SourceRef] = []  # External data references for provenance
        ) -> GraphNode:  # Generic GraphNode for storage in graph plugins
        "Return the node label."
    
    def to_graph_node(
            self,
            sources: List[SourceRef] = []  # External data references for provenance
        ) -> GraphNode:  # Generic GraphNode for storage in graph plugins
        "Convert this domain model to a generic GraphNode."

Knowledge Domain (knowledge.ipynb)

Domain schemas for knowledge management (Person, Work, Concept, Topic, Quote)

Import

from cjm_graph_domains.domains.knowledge import (
    Person,
    Work,
    Concept,
    Topic,
    Quote
)

Classes

class Person(DomainNode):
    "A human being, historical figure, or speaker."
class Work(DomainNode):
    "A creative work (book, speech, article, etc.)."
class Concept(DomainNode):
    "An abstract idea, theory, or framework."
class Topic(DomainNode):
    "A subject or theme discussed in content."
class Quote(DomainNode):
    "A verbatim segment of notable text."

Domain Relations (relations.ipynb)

Standard relationship types for knowledge and structure graphs

Import

from cjm_graph_domains.domains.relations import (
    KnowledgeRelations,
    StructureRelations
)

Classes

class KnowledgeRelations:
    "Registry of standard edge types for knowledge graphs."
    
    def all(cls) -> list:  # List of all relation type strings
        "Return all defined relation types."
class StructureRelations:
    "Registry of standard edge types for content structure graphs."
    
    def all(cls) -> list:  # List of all relation type strings
        "Return all defined relation types."

Content Structure (structure.ipynb)

Domain schemas for content structure (Document, Segment)

Import

from cjm_graph_domains.domains.structure import (
    Document,
    Segment
)

Classes

class Document(DomainNode):
    "A logical container for structured content."
class Segment(DomainNode):
    "An atomic unit of text within a document."

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cjm_graph_domains-0.0.7.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cjm_graph_domains-0.0.7-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file cjm_graph_domains-0.0.7.tar.gz.

File metadata

  • Download URL: cjm_graph_domains-0.0.7.tar.gz
  • Upload date:
  • Size: 10.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for cjm_graph_domains-0.0.7.tar.gz
Algorithm Hash digest
SHA256 2135db7f3ba0e848d7b3fa20cdd909c26912d3b090eb541fdba35e97553f2282
MD5 7474b952b5a2d7ba2e6c3c6e898baaca
BLAKE2b-256 d6070e520c70c2b6c64d84a2e2b2f52bcde2f65e7981fd46e9f61b3de9bdb702

See more details on using hashes here.

File details

Details for the file cjm_graph_domains-0.0.7-py3-none-any.whl.

File metadata

File hashes

Hashes for cjm_graph_domains-0.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 6553ff7734af4d287cd2df440f9272a46592e1a143faa9e34ee81556722fc4d3
MD5 99b034f8a8d37af837c0958c89188fb7
BLAKE2b-256 9e36d6fe85070a91b5fd8547176982ce03a0d5621f507487a271d5fe830b2bf0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page