Claude 4 Sonnetのコーディング能力を試す 8

Claude 4 が話題を呼んでいる.今回はClaude 4 で教科書になるWebページを作成してみた.
渡す情報さえ的確なら,こういった方法で素晴らしいオーダーメイドの教材を作ることが可能になる.

次の内容を学べるようにわかりやすく整理した動的なwebページを作成.
エラーが出ないように自己点検して.
一切の遠慮は不要です!!最高品質を追い求めて.

---
ノーベル・チョムスキーの生成文法は、20世紀言語学に革命をもたらし、その理論は『文法の構造』における初期生成文法から、最新のミニマリスト・プログラムに至るまで、絶え間ない変遷を遂げてきました。
初期生成文法(1957年)では、句構造規則と変換規則を導入し、無限の文を生成する言語の創造性を説明しました。人間の生得的な言語能力である普遍文法(UG)の萌芽が見られます。
---
標準理論(1965年)では、深層構造と表層構造を区別し、深層構造が意味解釈の基盤となるとしました。統語・意味・音韻部門を統合したモデルを提示しましたが、変換の意味保存性に関する課題を残しました。
---
拡大標準理論(1970年代)では、表層構造の意味解釈における役割を増大させ、Xバー理論による句構造の一般化と、変換への制約(時制文条件など)を導入しました。痕跡理論により、移動と意味解釈の整合性を図りました。
---
統率・束縛理論(GB理論、1981年)は、普遍的な「原理」と個別言語の「パラメータ」からなるモジュール理論として発展しました。シータ理論、格理論、束縛理論など複数の下位理論を統合し、言語獲得の解明を目指しました。
---
ミニマリスト・プログラム(1995年)は、GB理論の複雑性を排し、理論の経済性と最適性を追求しました。D構造やS構造などを排除し、「併合」と「一致」という少数の基本操作、素性照合、フェイズ理論を中心に、言語能力が最も効率的な方法で設計されているという「完璧な設計」の仮説を探求しています。
---
チョムスキーの生成文法は、常に「刺激の貧困」という言語獲得の謎と「説明的妥当性」の追求を原動力として、普遍文法の概念を深化させながら進化してきました。その理論的変遷は、形式的厳密性と概念的探求が織りなす科学的ダイナミズムを示しており、現代言語学および認知科学に多大な影響を与え続けています。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>チョムスキー生成文法の歴史と理論</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Yu Gothic Medium', 'Meiryo', sans-serif;
            line-height: 1.7;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            color: #333;
        }

        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }

        header {
            text-align: center;
            padding: 40px 0;
            background: rgba(255, 255, 255, 0.95);
            border-radius: 20px;
            margin-bottom: 30px;
            backdrop-filter: blur(10px);
            box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
        }

        h1 {
            font-size: 2.5em;
            color: #2c3e50;
            margin-bottom: 15px;
            position: relative;
        }

        .subtitle {
            font-size: 1.2em;
            color: #7f8c8d;
            font-weight: 300;
        }

        .timeline {
            position: relative;
            margin: 40px 0;
        }

        .timeline::before {
            content: '';
            position: absolute;
            left: 50%;
            top: 0;
            bottom: 0;
            width: 4px;
            background: linear-gradient(to bottom, #3498db, #e74c3c);
            transform: translateX(-50%);
            border-radius: 2px;
        }

        .timeline-item {
            position: relative;
            margin: 60px 0;
            opacity: 0;
            transform: translateY(50px);
            transition: all 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
        }

        .timeline-item.animate {
            opacity: 1;
            transform: translateY(0);
        }

        .timeline-item:nth-child(odd) .card {
            margin-left: 0;
            margin-right: 52%;
        }

        .timeline-item:nth-child(even) .card {
            margin-left: 52%;
            margin-right: 0;
        }

        .card {
            background: rgba(255, 255, 255, 0.95);
            border-radius: 15px;
            padding: 30px;
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.2);
            transition: all 0.3s ease;
            cursor: pointer;
            position: relative;
            overflow: hidden;
        }

        .card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 4px;
            background: linear-gradient(90deg, #3498db, #9b59b6);
            transform: scaleX(0);
            transition: transform 0.3s ease;
        }

        .card:hover::before {
            transform: scaleX(1);
        }

        .card:hover {
            transform: translateY(-10px);
            box-shadow: 0 30px 60px rgba(0, 0, 0, 0.15);
        }

        .year {
            position: absolute;
            left: 50%;
            transform: translateX(-50%);
            background: linear-gradient(135deg, #667eea, #764ba2);
            color: white;
            padding: 10px 20px;
            border-radius: 25px;
            font-weight: bold;
            font-size: 1.1em;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
            z-index: 10;
        }

        .card-title {
            font-size: 1.5em;
            font-weight: bold;
            color: #2c3e50;
            margin-bottom: 15px;
            display: flex;
            align-items: center;
        }

        .icon {
            width: 30px;
            height: 30px;
            margin-right: 10px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: white;
            font-weight: bold;
        }

        .theory-1 .icon { background: #e74c3c; }
        .theory-2 .icon { background: #3498db; }
        .theory-3 .icon { background: #f39c12; }
        .theory-4 .icon { background: #27ae60; }
        .theory-5 .icon { background: #9b59b6; }

        .card-content {
            color: #555;
            line-height: 1.8;
        }

        .key-concepts {
            margin-top: 20px;
            padding: 15px;
            background: rgba(52, 152, 219, 0.1);
            border-radius: 10px;
            border-left: 4px solid #3498db;
        }

        .key-concepts h4 {
            color: #2980b9;
            margin-bottom: 10px;
            font-size: 1.1em;
        }

        .concept-tag {
            display: inline-block;
            background: rgba(52, 152, 219, 0.2);
            color: #2980b9;
            padding: 5px 12px;
            border-radius: 20px;
            margin: 3px;
            font-size: 0.9em;
            transition: all 0.3s ease;
        }

        .concept-tag:hover {
            background: #3498db;
            color: white;
            transform: scale(1.05);
        }

        .interactive-buttons {
            text-align: center;
            margin: 40px 0;
        }

        .btn {
            background: linear-gradient(135deg, #667eea, #764ba2);
            color: white;
            border: none;
            padding: 15px 30px;
            border-radius: 25px;
            margin: 10px;
            cursor: pointer;
            font-size: 1em;
            transition: all 0.3s ease;
            box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
        }

        .btn:hover {
            transform: translateY(-3px);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
        }

        .summary {
            background: rgba(255, 255, 255, 0.95);
            border-radius: 20px;
            padding: 40px;
            margin-top: 40px;
            backdrop-filter: blur(10px);
            box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
            text-align: center;
        }

        .summary h2 {
            color: #2c3e50;
            margin-bottom: 20px;
            font-size: 2em;
        }

        .summary p {
            font-size: 1.1em;
            color: #555;
            line-height: 1.8;
        }

        @media (max-width: 768px) {
            .timeline::before {
                left: 30px;
            }

            .timeline-item:nth-child(odd) .card,
            .timeline-item:nth-child(even) .card {
                margin-left: 60px;
                margin-right: 0;
            }

            .year {
                left: 30px;
            }

            .card {
                padding: 20px;
            }

            h1 {
                font-size: 2em;
            }
        }

        .highlight {
            background: linear-gradient(120deg, rgba(255, 255, 0, 0.3) 0%, rgba(255, 255, 0, 0.3) 100%);
            padding: 2px 4px;
            border-radius: 3px;
        }

        .progress-bar {
            position: fixed;
            top: 0;
            left: 0;
            width: 0%;
            height: 4px;
            background: linear-gradient(90deg, #3498db, #e74c3c);
            z-index: 1000;
            transition: width 0.3s ease;
        }

        .floating-nav {
            position: fixed;
            right: 20px;
            top: 50%;
            transform: translateY(-50%);
            z-index: 100;
        }

        .nav-dot {
            width: 12px;
            height: 12px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.5);
            margin: 10px 0;
            cursor: pointer;
            transition: all 0.3s ease;
        }

        .nav-dot.active {
            background: #3498db;
            transform: scale(1.5);
        }
    </style>
</head>
<body>
    <div class="progress-bar" id="progressBar"></div>

    <div class="floating-nav" id="floatingNav">
        <div class="nav-dot" data-target="0"></div>
        <div class="nav-dot" data-target="1"></div>
        <div class="nav-dot" data-target="2"></div>
        <div class="nav-dot" data-target="3"></div>
        <div class="nav-dot" data-target="4"></div>
    </div>

    <div class="container">
        <header>
            <h1>チョムスキー生成文法</h1>
            <div class="subtitle">言語学に革命をもたらした理論の歴史的変遷</div>
        </header>

        <div class="interactive-buttons">
            <button class="btn" onclick="animateAll()">全て表示</button>
            <button class="btn" onclick="resetAnimation()">リセット</button>
            <button class="btn" onclick="toggleHighlight()">重要語句ハイライト</button>
        </div>

        <div class="timeline" id="timeline">
            <div class="timeline-item theory-1">
                <div class="year">1957年</div>
                <div class="card" onclick="expandCard(this)">
                    <div class="card-title">
                        <div class="icon">1</div>
                        初期生成文法
                    </div>
                    <div class="card-content">
                        <p>『文法の構造』における初期生成文法では、<span class="highlight">句構造規則</span>と<span class="highlight">変換規則</span>を導入し、無限の文を生成する言語の創造性を説明しました。</p>
                        <div class="key-concepts">
                            <h4>主要概念</h4>
                            <span class="concept-tag">句構造規則</span>
                            <span class="concept-tag">変換規則</span>
                            <span class="concept-tag">普遍文法(UG)</span>
                            <span class="concept-tag">言語の創造性</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="timeline-item theory-2">
                <div class="year">1965年</div>
                <div class="card" onclick="expandCard(this)">
                    <div class="card-title">
                        <div class="icon">2</div>
                        標準理論
                    </div>
                    <div class="card-content">
                        <p><span class="highlight">深層構造</span>と<span class="highlight">表層構造</span>を区別し、深層構造が意味解釈の基盤となるとしました。統語・意味・音韻部門を統合したモデルを提示しました。</p>
                        <div class="key-concepts">
                            <h4>主要概念</h4>
                            <span class="concept-tag">深層構造</span>
                            <span class="concept-tag">表層構造</span>
                            <span class="concept-tag">統語部門</span>
                            <span class="concept-tag">意味部門</span>
                            <span class="concept-tag">音韻部門</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="timeline-item theory-3">
                <div class="year">1970年代</div>
                <div class="card" onclick="expandCard(this)">
                    <div class="card-title">
                        <div class="icon">3</div>
                        拡大標準理論
                    </div>
                    <div class="card-content">
                        <p>表層構造の意味解釈における役割を増大させ、<span class="highlight">Xバー理論</span>による句構造の一般化と、変換への制約を導入しました。<span class="highlight">痕跡理論</span>により移動と意味解釈の整合性を図りました。</p>
                        <div class="key-concepts">
                            <h4>主要概念</h4>
                            <span class="concept-tag">Xバー理論</span>
                            <span class="concept-tag">痕跡理論</span>
                            <span class="concept-tag">時制文条件</span>
                            <span class="concept-tag">変換制約</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="timeline-item theory-4">
                <div class="year">1981年</div>
                <div class="card" onclick="expandCard(this)">
                    <div class="card-title">
                        <div class="icon">4</div>
                        統率・束縛理論(GB理論)
                    </div>
                    <div class="card-content">
                        <p>普遍的な<span class="highlight">「原理」</span>と個別言語の<span class="highlight">「パラメータ」</span>からなるモジュール理論として発展。複数の下位理論を統合し、言語獲得の解明を目指しました。</p>
                        <div class="key-concepts">
                            <h4>主要概念</h4>
                            <span class="concept-tag">原理とパラメータ</span>
                            <span class="concept-tag">シータ理論</span>
                            <span class="concept-tag">格理論</span>
                            <span class="concept-tag">束縛理論</span>
                            <span class="concept-tag">統率理論</span>
                        </div>
                    </div>
                </div>
            </div>

            <div class="timeline-item theory-5">
                <div class="year">1995年</div>
                <div class="card" onclick="expandCard(this)">
                    <div class="card-title">
                        <div class="icon">5</div>
                        ミニマリスト・プログラム
                    </div>
                    <div class="card-content">
                        <p>GB理論の複雑性を排し、理論の経済性と最適性を追求。<span class="highlight">「併合」</span>と<span class="highlight">「一致」</span>という少数の基本操作で、<span class="highlight">「完璧な設計」</span>の仮説を探求しています。</p>
                        <div class="key-concepts">
                            <h4>主要概念</h4>
                            <span class="concept-tag">併合(Merge)</span>
                            <span class="concept-tag">一致(Agree)</span>
                            <span class="concept-tag">素性照合</span>
                            <span class="concept-tag">フェイズ理論</span>
                            <span class="concept-tag">完璧な設計</span>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="summary">
            <h2>理論の本質</h2>
            <p>チョムスキーの生成文法は、常に<span class="highlight">「刺激の貧困」</span>という言語獲得の謎と<span class="highlight">「説明的妥当性」</span>の追求を原動力として進化してきました。その理論的変遷は、形式的厳密性と概念的探求が織りなす科学的ダイナミズムを示しており、現代言語学および認知科学に多大な影響を与え続けています。</p>
        </div>
    </div>

    <script>
        let highlightEnabled = false;
        let currentSection = 0;

        // スクロール進捗バー
        function updateProgressBar() {
            const scrollTop = window.pageYOffset;
            const docHeight = document.documentElement.scrollHeight - window.innerHeight;
            const scrollPercent = scrollTop / docHeight * 100;
            document.getElementById('progressBar').style.width = scrollPercent + '%';
        }

        // タイムライン項目のアニメーション
        function animateTimelineItems() {
            const items = document.querySelectorAll('.timeline-item');
            items.forEach((item, index) => {
                const rect = item.getBoundingClientRect();
                if (rect.top < window.innerHeight * 0.8) {
                    setTimeout(() => {
                        item.classList.add('animate');
                        updateActiveNav(index);
                    }, index * 200);
                }
            });
        }

        // フローティングナビゲーション更新
        function updateActiveNav(activeIndex) {
            document.querySelectorAll('.nav-dot').forEach((dot, index) => {
                dot.classList.toggle('active', index === activeIndex);
            });
            currentSection = activeIndex;
        }

        // 全てアニメーション
        function animateAll() {
            const items = document.querySelectorAll('.timeline-item');
            items.forEach((item, index) => {
                setTimeout(() => {
                    item.classList.add('animate');
                }, index * 300);
            });
        }

        // アニメーションリセット
        function resetAnimation() {
            document.querySelectorAll('.timeline-item').forEach(item => {
                item.classList.remove('animate');
            });
            setTimeout(animateTimelineItems, 100);
        }

        // ハイライト切り替え
        function toggleHighlight() {
            highlightEnabled = !highlightEnabled;
            const highlights = document.querySelectorAll('.highlight');
            highlights.forEach(el => {
                el.style.background = highlightEnabled ? 
                    'linear-gradient(120deg, rgba(255, 255, 0, 0.6) 0%, rgba(255, 255, 0, 0.6) 100%)' : 
                    'linear-gradient(120deg, rgba(255, 255, 0, 0.3) 0%, rgba(255, 255, 0, 0.3) 100%)';
            });
        }

        // カード拡張
        function expandCard(card) {
            card.style.transform = 'scale(1.02)';
            card.style.zIndex = '10';
            setTimeout(() => {
                card.style.transform = '';
                card.style.zIndex = '';
            }, 3000);
        }

        // ナビゲーション点クリック
        document.querySelectorAll('.nav-dot').forEach((dot, index) => {
            dot.addEventListener('click', () => {
                const items = document.querySelectorAll('.timeline-item');
                if (items[index]) {
                    items[index].scrollIntoView({
                        behavior: 'smooth',
                        block: 'center'
                    });
                }
            });
        });

        // コンセプトタグホバーエフェクト
        document.querySelectorAll('.concept-tag').forEach(tag => {
            tag.addEventListener('mouseenter', () => {
                tag.style.transform = 'scale(1.1) rotate(2deg)';
            });
            tag.addEventListener('mouseleave', () => {
                tag.style.transform = '';
            });
        });

        // イベントリスナー
        window.addEventListener('scroll', () => {
            updateProgressBar();
            animateTimelineItems();
        });

        window.addEventListener('load', () => {
            setTimeout(animateTimelineItems, 500);
        });

        // キーボードナビゲーション
        document.addEventListener('keydown', (e) => {
            if (e.key === 'ArrowDown' && currentSection < 4) {
                currentSection++;
                document.querySelectorAll('.timeline-item')[currentSection].scrollIntoView({
                    behavior: 'smooth',
                    block: 'center'
                });
            } else if (e.key === 'ArrowUp' && currentSection > 0) {
                currentSection--;
                document.querySelectorAll('.timeline-item')[currentSection].scrollIntoView({
                    behavior: 'smooth',
                    block: 'center'
                });
            }
        });
    </script>
</body>
</html>

参考文献

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です