Skip to content

feat(w3c): promote dynamic test harness, dashboard and modern CI to develop - #31

Merged
remiceres merged 186 commits into
developfrom
feature/corese-next
Sep 25, 2026
Merged

remiceres merged 186 commits into
developfrom
feature/corese-next

Conversation

@remiceres

Copy link
Copy Markdown
Contributor

Summary

This PR promotes the complete W3C conformance suite modern overhaul from feature/corese-next into develop:

  • Dynamic Test Harness: Migration to JUnit 5 dynamic tests (@TestFactory), live manifest parsing, and official W3C conformance validation for SPARQL 1.0/1.1, Turtle, TriG, N-Triples, N-Quads, RDF/XML, JSON-LD 1.1, and RDF-Canon.
  • Interactive Conformance Dashboard: GitHub Pages web app with real-time test exploration, instant search (/), deep linking, 3-state theme toggle, accessible dialogs, and legal notices.
  • Documentation & Exclusions: Consolidated exclusions policy and rationale under docs/W3C_TEST_EXCLUSIONS.md and EARL application profile specification under docs/EARL_REPORT.md.
  • Modern CI Pipeline & Reports: Automated CI workflow generating w3c-report.json and earl-report.ttl, enforcing zero regressions against baseline, and deploying the dashboard to GitHub Pages.

MaillPierre and others added 30 commits July 24, 2025 17:00
(cherry picked from commit 87e4242)
…orese_W3C

2 Add configuration to Corese-W3C
- Remove Main class and old test generator infrastructure
- Delete static test implementations (RDF11, SPARQL, SHACL, RDFC10)
- Clean up old test utilities and interfaces
- Remove test report CSVs and obsolete README files
- Update build.gradle.kts and .gitignore for new structure
Add new modular architecture for W3C test execution:

- Model layer:
  * TestType enum for test categorization
  * W3cTestCase data model for test metadata

- Loader layer:
  * W3cTestLoader for manifest parsing and test discovery
  * SPARQL-based test extraction from RDF manifests

- Executor layer:
  * TestExecutor interface for test execution strategy
  * TestExecutorFactory for executor instantiation
  * RdfNegativeTestExecutor for negative syntax tests
  * RdfPositiveSyntaxTestExecutor for positive syntax tests
  * RdfPositiveEvaluationTestExecutor for eval tests

- Utils layer:
  * TestFileManager for file caching and resource management
  * RdfFormatDetector for format detection
  * RDFTestUtils for RDF comparison utilities

This architecture supports JUnit 5 @testfactory dynamic test generation.
Implement @TestFactory-based dynamic test classes:

- Rdf11NQuadsDynamicTest: N-Quads syntax tests
- Rdf11NTriplesDynamicTest: N-Triples syntax tests
- Rdf11TrigDynamicTest: TriG syntax and eval tests
- Rdf11TurtleDynamicTest: Turtle syntax and eval tests
- Rdf11XmlDynamicTest: RDF/XML syntax and eval tests

Each test class dynamically generates test cases from W3C manifests
using the new dynamic test framework. Tests are discovered at runtime
via W3cTestLoader and executed with appropriate TestExecutor instances.
abdessamad-abdoun and others added 29 commits September 3, 2026 14:25
…Lint warnings

- Add comprehensive unit tests in CsvTsvResultParserTest
- Use dataset-level model isomorphism in SparqlUpdateEvaluationTestExecutor
- Modularize manifest loading and test type mapping in W3cTestLoader
- Address SonarLint issues (cognitive complexity, regex optimization, curly braces)
- Remove accidental generated token artifact
…1-test-cases-to-w3c

Feature/561 w3c add sparql 11 test cases to w3c
Use the original W3C query text for evaluation and syntax checks. Replace FROM-only rewriting with repository prepare overloads, preserving explicit BASE declarations without an ANTLR dependency.

Requires the corese-core implementation of issue #562. No fixtures, expected results or test exclusions are modified.
fix(sparql): pass query document base IRIs through the public API
…rison

fix(sparql): compare computed numeric values without hiding fixture errors
…fests

- Traverse mf:entries RDF lists to map each test case to its specific sub-manifest
- Resolve relative action/query/result URIs without falling back to hex blank nodes
- Introduce NamedGraphData record for update evaluation dataset parsing
- Replace swallowed exceptions with fail-fast IllegalStateException in W3cTestLoader
- Define PROP_ACTION and PROP_RESULT constants to satisfy Sonar S1192
…w details

- Normalize canonical W3C URLs to raw GitHub/W3C test suite fixtures
- Handle sub-manifests and RDFa fixtures, avoiding erroneous .ttl extensions
- Allow clicking table rows directly to open test details modal
- Update baseline report with resolved sub-manifest fixture URIs
- Support dataUri extraction across SPARQL evaluation and update manifests
- Include dataUri in TestReportEntry, TestReportCollector, and JsonReportWriter
- Display test type, description, and data file links in the web dashboard modal
- Harden W3cTestCase against invalid, blank, or self-resolving manifest URIs
- Add unit tests for URI resolution edge cases in W3cTestCaseTest
- Clean up test side effects and ensure isolated, idempotent test execution
- Update baseline report with resolved dataUri fixtures
fix(harness): parse RDF/Turtle result sets for SPARQL ASK queries (#28)
…rmance-polish

feat(w3c): modernize dashboard, toolchain and consolidate exclusions policy
@remiceres
remiceres merged commit 37f64d4 into develop Sep 25, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants