{"id":50105220,"url":"https://github.com/zwelz3/unofficial-survivor-knowledge-graph","last_synced_at":"2026-05-23T10:05:02.942Z","repository":{"id":359597688,"uuid":"1245670086","full_name":"zwelz3/unofficial-survivor-knowledge-graph","owner":"zwelz3","description":"A comprehensive RDF knowledge graph covering all 50 seasons of Survivor (US), with 23,000+ triples across 749 named graphs. ","archived":false,"fork":false,"pushed_at":"2026-05-22T15:13:53.000Z","size":6667,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-22T19:55:15.434Z","etag":null,"topics":["data-analysis","rdf","survivor"],"latest_commit_sha":null,"homepage":"https://zwelz3.github.io/unofficial-survivor-knowledge-graph/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zwelz3.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"docs/roadmap/phase-1-data-foundation.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-21T12:48:58.000Z","updated_at":"2026-05-22T15:14:13.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/zwelz3/unofficial-survivor-knowledge-graph","commit_stats":null,"previous_names":["zwelz3/unofficial-survivor-knowledge-graph"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/zwelz3/unofficial-survivor-knowledge-graph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwelz3%2Funofficial-survivor-knowledge-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwelz3%2Funofficial-survivor-knowledge-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwelz3%2Funofficial-survivor-knowledge-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwelz3%2Funofficial-survivor-knowledge-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwelz3","download_url":"https://codeload.github.com/zwelz3/unofficial-survivor-knowledge-graph/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwelz3%2Funofficial-survivor-knowledge-graph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33390972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T04:15:53.637Z","status":"ssl_error","status_checked_at":"2026-05-23T04:15:53.242Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["data-analysis","rdf","survivor"],"created_at":"2026-05-23T10:05:02.302Z","updated_at":"2026-05-23T10:05:02.935Z","avatar_url":"https://github.com/zwelz3.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Survivor Knowledge Graph\n\n![](static/img/banner.png)\n\nA comprehensive RDF knowledge graph covering all 50 seasons of Survivor (US), with 23,000+ triples across 749 named graphs. Includes per-episode challenge results, tribal council votes, idol tracking (233 events), viewership data, and returning player identity resolution. Built on OWL/SKOS/PROV-O with SHACL validation, SPARQL query library, and an interactive d3 graph viewer.\n\n## Dataset coverage (v0.6.0)\n\n| Metric | Coverage |\n|---|---|\n| Seasons | 50/50 (100%) |\n| Episode titles | 692/699 (99.0%) |\n| Air dates | 698/699 (99.9%) |\n| Viewership | 686/699 (98.1%) |\n| Notable events | 674/699 (96.4%) |\n| Tribal councils | 665/699 (95.1%) |\n| Detailed episodes | 662/699 (94.7%) |\n| Challenges (any) | 656/699 (93.8%) |\n| Immunity | 638/699 (91.3%) |\n| Reward | 532/699 (76.1%) |\n| Idol events | 233 events, 14 types, S11-S50 |\n| Boot orders | 49/50 (98%) |\n| Contestants | 728 unique, 98 returning |\n| RDF triples | 23,467 |\n| Tests | 49/49 passing |\n\n## Quick start\n\n```bash\npip install rdflib pyld pyshacl pytest\n\npython scripts/build_static.py    # build consolidated outputs in static/\npython -m pytest tests/ -v        # run 49 tests\n```\n\n## Static distribution\n\n`python scripts/build_static.py` produces a ready-to-use bundle in `static/`:\n\n| File | Description | Size |\n|---|---|---|\n| `survivor.nq` | Full dataset as N-Quads (23,467 triples, 749 named graphs) | ~5 MB |\n| `survivor.ttl` | OWL ontology (v0.5.0, 17 classes, 40+ properties) | ~25 KB |\n| `survivor-shapes.ttl` | SHACL validation shapes (26 node shapes) | ~19 KB |\n| `graph.json` | LPG export for visualization (seasons, tribes, idols, players) | ~812 KB |\n| `index.html` | Interactive dashboard (Chart.js + d3 force graph) | ~267 KB |\n\nThese files are also available as build artifacts from the [GitHub Actions CI](../../actions).\n\n## Repository structure\n\n```\ncontext/          JSON-LD contexts (season, episode, provenance)\nontology/         OWL ontology (survivor.ttl) + DCAT dataset (dataset.ttl)\nshapes/           SHACL shapes with tiered validation (26 shapes)\ndata/             50 season dirs, each with season.json + e01..eNN.json\n  persons.json    Cross-season identity registry (98 returning players)\n  graph.json      LPG export for visualization\nqueries/          SPARQL analytical query library (22 queries)\nscripts/          Data generation, RDF expansion, enrichment, graph extraction, static build\nresearch/         Provenance records (PROV-O JSON-LD, 50 per-season + 699 per-episode)\ntests/            pytest suite (49 tests: structure, data, RDF, SPARQL, provenance, idols)\ndocs/             Dashboard, instructions, roadmap\nstatic/           Built distribution files (N-Quads, ontology, shapes, graph, dashboard)\n.github/          CI workflow (test, build artifacts, GitHub Pages deploy)\n```\n\n## Ontology\n\nThe ontology (v0.5.0) provides 17 OWL classes and 40+ properties aligned with:\n\n- **schema.org**: Season/Episode/Contestant map to TVSeason/TVEpisode/Person (18 alignments)\n- **SKOS**: 4 concept schemes (Era, EliminationMethod, ChallengeType, IdolEventType)\n- **PROV-O**: Season/Episode/Contestant as prov:Entity subclasses\n- **FOAF**: contestant names via foaf:name\n- **DCAT/VoID**: dataset-level metadata in ontology/dataset.ttl\n\nSHACL validation includes 26 node shapes with tiered constraints (Tier 1: title/date; Tier 2: elimination; Tier 3: challenges/votes/events) plus idol-specific and era-specific shapes.\n\n## Idol tracking\n\n233 idol events across 14 types, covering the full evolution from S11 Guatemala (first idol, 2005) through S50:\n\n- 108 idol finds, 95 idol plays, 9 idols not played, 8 beware idols\n- Fake idols, idol nullifiers, Knowledge Is Power, idol theft\n- 6 dedicated SPARQL queries (Q17-Q22)\n- IdolEventTypeScheme SKOS vocabulary with 11 concepts\n\n## SPARQL queries\n\n22 analytical queries in `queries/analytical.sparql` across 7 categories: data quality (Q1-Q3), winners/FTC (Q4-Q7), episodes (Q8-Q12), cross-graph joins (Q13-Q14), networks (Q15-Q16), idol analysis (Q17-Q22).\n\n## Dashboard\n\nInteractive dashboard deployed to GitHub Pages with 6 tabs: Overview, Seasons, Players, Idols, Graph Explorer, Data Quality.\n\nThe graph explorer supports 8 toggleable node types (seasons, players, tribes, idols, locations, mechanics, winners, episodes) with click-to-inspect, episode drill-down, and d3 force simulation.\n\n```bash\npython scripts/build_static.py\ncd static \u0026\u0026 python3 -m http.server 8000\n# open http://localhost:8000\n```\n\n## Data provenance\n\nAll enrichment sources tracked via PROV-O in `research/provenance/`. 12 canonical sources with per-field attribution across 50 season records and 699 episode records. Enrichment chain tracks 8 phases from initial generation (8,266 triples) to current state (23,467 triples).\n\n## Contributing\n\nSee [docs/instructions.md](docs/instructions.md) for the research pipeline. See [CHANGELOG.md](CHANGELOG.md) for version history.\n\n## License\n\nData compiled from public sources. Ontology and tooling: MIT.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwelz3%2Funofficial-survivor-knowledge-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwelz3%2Funofficial-survivor-knowledge-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwelz3%2Funofficial-survivor-knowledge-graph/lists"}