Warning:
This wiki has been archived and is now read-only.
TestCases
Contents
Purpose
The purpose of the RDB2RDF test cases is to verify and validate the specification of the DM and R2RML language. Moreover, these test cases can be useful to create a test harness or automated test framework for testing the interoperable implementors, i.e. R2RML engines.
Approach
Process Owner
As in previous WGs we need someone to collect, document, and package the test cases. The person in charge is Boris, and everyone is welcome to contribute/comment to the Test Cases.
Official document
There is a centralized document that includes the R2RML Test Cases, and it is available at R2RML Test Cases
The document is generated automatically from the W3C mercurial repository
Protocol
1. Boris will send to the mailing list the set of simple TC and corner TCs.
2. The working group will check the simple TCs and approve them (by email)
3. The working group will check the corner TCs and approve them (by email)
Organization
As we agreed the test cases are organized by database. Eric proposes to include in the database name the description of it. So, a database will include
1. Graphical representation of the tables involved.
2. The SQL script associated to the database (sql file)
3. Direct mappping associated to the database. It includes:
3.1 Title
3.2 Purpose
3.3 Specification Reference
3.4 Review Status
3.5 hasExpectedOutput
3.6 Expected output - associated file (nt)
4. One or more R2RML Test Cases associated to the database. It includes:
4.1 Title
4.2 Purpose
4.3 Specification Reference
4.4 Review Status
4.5 Expected Result (nq file)
4.6 hasExpectedOutput
4.6 R2RML Mapping (ttl file)
The associated files will be available at: https://dvcs.w3.org/hg/rdb2rdf-tests/
The following picture illustrates the organization
Submit Test Results
We also start discussing about Submitting Test Results
Current Status
The official document is available here RDB2RDF Test Cases
Suggestions for new TCs
* We should have an R2RML test case for an empty R2RML mapping file. It produces an empty output dataset.
* This is illegal because of unnamed column:
SELECT DEPTNO, COUNT(EMPNO) FROM EMP GROUP BY DEPTNO;
* This is legal because the column is named:
SELECT DEPTNO, COUNT(EMPNO) AS EMPCOUNT FROM EMP GROUP BY DEPTNO;
* This is illegal because of duplicate column name
DEPTNO
in result: SELECT EMP.DEPTNO, 1 AS DEPTNO FROM EMP;
* This is legal; qualified column names are ok:
SELECT EMP.DEPTNO FROM EMP
* Include the TCs suggested by Eric - I18NnoSpecialChars
- Proposal : A testcase with multiple predicateObjectMap predicates refereing to the same logical table. Purpose : to test how does the implemented system deal with alias
Answer: Most of the TCs have multiple predicateObjectMap predicates referencing to the same logical table. I'm not sure if I get your proposal, but I've created TC0008c
Coverage
Here we check the coverage of the Test Cases.