Warning:
This wiki has been archived and is now read-only.
R2RML Test Cases
Contents
Purpose
The purpose of the R2RML test cases is to verify and validate the specification of the 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.
Initial 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 will be a centralized document that includes the R2RML Test Cases, and it will be available at R2RML Test Cases
Initially, only Michael and Boris are able to edit the document. They will edit the document following the comments/suggestions of the people from the WG.
Starting documents
We will start from a set of very simple test cases (see File:SimpleTestCases.pdf document) and a set of general test cases (see File:GeneralTestCases.pdf document). We have to refine them and also to identify a set of new test cases.
Later on we can reuse another test cases from Can RDB2RDF Tools Feasibily Expose Large Science Archives for Data Integration? or HLCS (Thanks Harry for pointing out those resources).
Initial Protocol
If someone wants to comment/suggest something related with the test cases, that person has to send an email to the WG mailing list, specifying in the subject [R2RML Test Cases]. In this way will be easy to keep track of the discussion about the test cases.
When the WG reaches a consensus about a particular test case, Boris will include this test case in the official document.
R2RML Test Cases
This first round of test cases is very simple, tables do not include PK,FK. No Blank nodes.
The table owner for the whole set of test cases: boricles.
Simple Test Cases
R2RMLTC0000
Id: R2RMLTC0000
Title: Empty table
Purpose: Tests if an empty table produces an empty RDF graph.
Specification Reference: 1.30
Review Status: On hold depending on Direct Mapping as default
Input:
Graphical Representation:
Name |
---|
SQL:
CREATE TABLE Student ( Name varchar(50) );
Expected Result: RDF:
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Student"; rr:subjectMap [ rr:template "http://example.com/{Name}" ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:name ]; rr:objectMap [ rr:column "Name" ] ] .
R2RMLTC0001
Id: R2RMLTC0001
Title: One column mapping
Purpose: Tests: (1) one column mapping, no primary key; (2) subject URI generation by using one single column; (3) one column to one property
Specification Reference: 1.30
Review Status: Accepted
Input:
Graphical Representation:
Name |
---|
Venus |
SQL:
CREATE TABLE Student ( Name varchar(50) ); INSERT INTO Student (Name) VALUES ("Venus");
Expected Result:
RDF:
@prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . ex:Venus foaf:name "Venus".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Student"; rr:subjectMap [ rr:template "http://example.com/{Name}" ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:name ]; rr:objectMap [ rr:column "Name" ] ] .
R2RMLTC0002
Id: R2RMLTC0002
Title: Two columns mapping
Purpose: Tests: (1) two column mapping, no primary key; (2) subject URI generated by concatenation of two column values; (3) one column to one property
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID | Name |
---|---|
10 | Venus |
SQL:
CREATE TABLE Student ( ID integer, Name varchar(50) ); INSERT INTO Student (ID, Name) VALUES(10,"Venus");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . ex:10Venus rdf:type foaf:Person; ex:id "10"^^xsd:integer; foaf:name "Venus".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Student"; rr:subjectMap [ rr:template "http://example.com/{ID}{Name}"; rr:class foaf:Person ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:name ]; rr:objectMap [ rr:column "Name" ] ] .
R2RMLTC0003
Id: R2RMLTC0003
Title: Three column mapping
Purpose: Tests: (1)three column mapping, no primary key; (2) Subject URI generated by concatenation of three column values and a constant value; (3) One column to one property
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID | FirstName | LastName |
---|---|---|
10 | Venus | Williams |
SQL:
CREATE TABLE Student ( ID integer, FirstName varchar(50), LastName varchar(50) ); INSERT INTO Student (ID, FirstName, LastName) VALUES (10,"Venus", "Williams");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . ex:Student10VenusWilliams rdf:type foaf:Person ex:id "10"^^xsd:integer; foaf:firstName "Venus"; foaf:lastName "Williams".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Student"; rr:subjectMap [ rr:template "http://example.com/Student{ID}{FirstName}{LastName}"; rr:class foaf:Person ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:firstName ]; rr:objectMap [ rr:column "FirstName" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:lastName ]; rr:objectMap [ rr:column "LastName" ] ] .
R2RMLTC0004
Id: R2RMLTC0004
Title: Two column mapping, a concatenation operation
Purpose: Tests: (1) two column mapping, no primary key; (2) subject URI generated by concatenation of three column values and a constant value; (3) Two column to one property – concat operation
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID | FirstName | LastName |
---|---|---|
10 | Venus | Williams |
SQL:
CREATE TABLE Student ( ID integer, FirstName varchar(50), LastName varchar(50) ); INSERT INTO Student (ID, FirstName, LastName) VALUES (10,"Venus", "Williams");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . ex:Student10VenusWilliams rdf:type foaf:Person ex:id "10"^^xsd:integer; foaf:name "Venus Williams".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:SQLQuery """ SELECT ID, (FirstName || ' ' || LastName) AS Name FROM Student """; rr:subjectMap [ rr:template "http://example.com/Student{ID}{Name}"; rr:class foaf:Person ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:name ]; rr:objectMap [ rr:column "Name" ] ] .
Note: A SQLQuery for MySQL is different:
rr:SQLQuery """ SELECT ID, CONCAT (FirstName,' ',LastName) AS Name FROM Student """;
R2RMLTC0005
Id: R2RMLTC0005
Title: Projection
Purpose: Tests: (1) two column mapping, no primary key, (2) subject URI generated by a column value; (3) one row table to two different resources
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
Student | Sport |
---|---|
Venus | Tennis |
SQL:
CREATE TABLE Student_Sport( Student varchar(50), Sport varchar(50) ); INSERT INTO Student_Sport (Student,Sport) VALUES ("Venus", "Tennis");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . ex:Venus rdf:type ex:Student; foaf:name "Venus". ex:Tennis rdf:type ex:Sport; foaf:name "Tennis".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Student_Sport"; rr:subjectMap [ rr:template "http://example.com/{Student}"; rr:class ex:Student ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:name ]; rr:objectMap [ rr:column "Student" ] ] . <#TriplesMap2> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Student_Sport"; rr:subjectMap [ rr:template "http://example.com/{Sport}"; rr:class ex:Sport ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:name ]; rr:objectMap [ rr:column "Sport" ] ] .
R2RMLTC0005b
Id: R2RMLTC0005b
Title: Projection
Purpose: Tests, two column mapping, no primary key, non-unique data
URI generated by a column value
Three row table with non-unique rows.
Specification Reference: 1.30@@
Review Status: unreviewed
Input:
Graphical Representation:
fname | lname | amount |
---|---|---|
Bob | Smith | 30 |
Sue | Jones | 20 |
Bob | Smith | 30 |
SQL:
CREATE TABLE IOUs ( fname CHAR(20), lname CHAR(20), amount FLOAT); INSERT INTO IOUs (fname, lname, amount) VALUES ("Bob", "Smith", 30); INSERT INTO IOUs (fname, lname, amount) VALUES ("Sue", "Jones", 20); INSERT INTO IOUs (fname, lname, amount) VALUES ("Bob", "Smith", 30);
Expected Result:
RDF:
@base <http://example.com/> . @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix IOUs: <IOUs#> . _:Bob1 rdf:type <IOUs>; fname "Bob". lanme "Smith". amount 30.0 . _:Bob1 rdf:type <IOUs>; fname "Sue". lanme "Jones". amount 20.0 . _:Bob2 rdf:type <IOUs>; fname "Bob". lanme "Smith". amount 30.0 .
Expected Default Mapping Result:
R2RML Mapping: @@
Discriminating SQL Query:
SELECT SUM(amount) FROM IOUs WHERE fname="Bob" AND lname="Smith";
R2RMLTC0006
Id: R2RMLTC0006
Title: Join/Union
Purpose: Tests: (1) join/union tables; (2) subject URI generated by concatenation of three column values, (3) join of two different row tables to one resource
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID | FirstName | LastName |
---|---|---|
10 | Venus | Williams |
ID | Nick | Homepage |
---|---|---|
10 | Ven | http://venus.williams.com |
SQL:
CREATE TABLE Student ( ID integer, FirstName varchar(50), LastName varchar(50) ); CREATE TABLE Web ( ID integer, Nick varchar (50), Homepage varchar(50) ); INSERT INTO Student (ID, FirstName, LastName) VALUES (10,"Venus", "Williams"); INSERT INTO Web (ID, Nick, Homepage) VALUES (10,"Ven", "http://venus.williams.com");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . ex:10VenusWilliams rdf:type foaf:Person; ex:id "10"^^xsd:integer; foaf:firstName "Venus"; foaf:lastName "Williams"; foaf:nick "Ven"; foaf:homepage <http://venus.williams.com>.
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:SQLquery """ SELECT Student.ID as Id, Student.FirstName as FirstName, Student.LastName as LastName, Web.Nick as Nick, Web.Homepage as Homepage FROM Student, Web WHERE Student.ID = Web.ID """; rr:subjectMap [ rr:template "http://example.com/{Id}{FirstName}{LastName}"; rr:class foaf:Person ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:firstName ]; rr:objectMap [ rr:column "FirstName" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:lastName ]; rr:objectMap [ rr:column "LastName" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:nick ]; rr:objectMap [ rr:column "Nick" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:homepage ]; rr:objectMap [ rr:column "Homepage"; rr:datatype xsd:anyURI ] ] .
R2RMLTC0007
Id: R2RMLTC0007
Title: Selection
Purpose: Tests: (1) selection, a subset of the rows of a table maps a resource; (2) subject URI generated by concatenation of three column values
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID | FirstName | LastName | Gender |
---|---|---|---|
10 | Venus | Williams | Female |
11 | Rafael | Nadal | Male |
SQL:
CREATE TABLE Student ( ID integer, FirstName varchar(50), LastName varchar(50), Gender varchar(20) ); INSERT INTO Student (ID, FirstName, LastName, Gender) VALUES (10,"Venus", "Williams","Female"); INSERT INTO Student (ID, FirstName, LastName, Gender) VALUES (11,"Rafael", "Nadal","Male");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . ex:10VenusWilliams rdf:type ex:Women ; ex:id "10"^^xsd:integer; foaf:firstName "Venus"; foaf:lastName "Williams".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:SQLquery """ SELECT ID, FirstName, LastName, Gender, FROM Student WHERE Gender = 'Female' """; rr:subjectMap [ rr:template "http://example.com/{ID}{FirstName}{LastName}"; rr:class ex:Women ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:firstName ]; rr:objectMap [ rr:column "FirstName" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:lastName ]; rr:objectMap [ rr:column "LastName" ] ] .
More Complex Test Cases
R2RMLTC0008
Id: R2RMLTC0008
Title: M to N relation
Purpose: Tests, M to N relations
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID (PK) | FirstName | LastName |
---|---|---|
10 | Venus | Williams |
11 | Fernando | Alonso |
12 | David | Villa |
ID_Student (FK - Student(ID)) | ID_Sport (FK - Sport(ID)) |
---|---|
10 | 110 |
11 | 111 |
11 | 112 |
12 | 111 |
ID (PK) | Description |
---|---|
110 | Tennis |
111 | Football |
112 | Formula1 |
SQL:
CREATE TABLE Student ( ID integer PRIMARY KEY, FirstName varchar(50), LastName varchar(50) ); CREATE TABLE Sport ( ID integer PRIMARY KEY, Description varchar(50) ); CREATE TABLE Student_Sport ( ID_Student integer, ID_Sport integer, PRIMARY KEY (ID_Student,ID_Sport), FOREIGN KEY (ID_Student) REFERENCES Student(ID), FOREIGN KEY (ID_Sport) REFERENCES Sport(ID) ); INSERT INTO Student (ID,FirstName,LastName) VALUES (10,"Venus", "Williams"); INSERT INTO Student (ID,FirstName,LastName) VALUES (11,"Fernando", "Alonso"); INSERT INTO Student (ID,FirstName,LastName) VALUES (12,"David", "Villa"); INSERT INTO Sport (ID, Description) VALUES (110,"Tennis"); INSERT INTO Sport (ID, Description) VALUES (111,"Football"); INSERT INTO Sport (ID, Description) VALUES (112,"Formula1"); INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (10,110); INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,111); INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,112); INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (12,111);
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . ex:10VenusWilliams ex:id "10"^^xsd:integer; foaf:firstName "Venus"; foaf:lastName "Williams"; ex:plays ex:110Tennis. ex:11FernandoAlonso ex:id "11"^^xsd:integer; foaf:firstName "Fernando"; foaf:lastName "Alonso"; ex:plays ex:111Football; ex:plays ex:112Formula1. ex:12DavidVilla ex:id "12"^^xsd:integer; foaf:firstName "David"; foaf:lastName "Villa"; ex:plays ex:111Football. ex:110Tennis ex:id "110"^^xsd:integer; ex:description "Tennis". ex:111Football ex:id "111"^^xsd:integer; ex:description "Football". ex:112Formula1 ex:id "112"^^xsd:integer; ex:description "Formula1".
Expected Default Mapping Result:
R2RML Mapping:
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap; rr:SQLquery """ SELECT Student.ID as ID, Student.FirstName as FirstName, Student.LastName as LastName, Sport.Description as Description, Sport.ID as Sport_ID FROM Student,Sport,Student_sport WHERE Student.ID = student_Sport.ID_Student AND Sport.ID = Student_Sport.ID_Sport; """; rr:subjectMap [ rr:template "http://example.com/{ID}{FirstName}{LastName}" ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:firstName ]; rr:objectMap [ rr:column "FirstName" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate foaf:lastName ]; rr:objectMap [ rr:column "LastName" ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:plays ]; rr:objectMap [ rr:template "http://example.com/{Sport_ID}{Description}" ] ] . <#TriplesMap2> a rr:TriplesMap; rr:tableOwner "boricles"; rr:tableName "Sport"; rr:subjectMap [ rr:template "http://example.com/{ID}{Description}" ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:id ]; rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ] ]; rr:predicateObjectMap [ rr:predicateMap [ rr:predicate ex:description ]; rr:objectMap [ rr:column "Description" ] ] .
R2RMLTC0009
Id: R2RMLTC0009
Title: Path Enumeration
Purpose: Tests: Path Enumeration, a recursive structure for hierarchy representations, which stores for each element the path (as a string) from the root to the element
Note: Thanks to FAO
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID (PK) | Name |
---|---|
2000 | Water area |
2000.2100 | Environmental area |
2000.2420 | Jurisdiction area |
2000.2200 | Fishing statistical area |
2000.2100.2101 | Inland/Marine |
2000.2100.2102 | Ocean |
2000.2100.2103 | North/South/Equatorial |
2000.2200.2201 | FAO statistical area |
2000.2200.2202 | Areal grid system |
SQL:
CREATE TABLE Area ( ID varchar(50) PRIMARY KEY, Name varchar(50) ); INSERT INTO Area (ID, Name) VALUES ("2000","Water area"); INSERT INTO Area (ID, Name) VALUES ("2000.2100","Environmental area"); INSERT INTO Area (ID, Name) VALUES ("2000.2420","Jurisdiction area"); INSERT INTO Area (ID, Name) VALUES ("2000.2200","Fishing statistical area"); INSERT INTO Area (ID, Name) VALUES ("2000.2100.2101","Inland/Marine"); INSERT INTO Area (ID, Name) VALUES ("2000.2100.2102","Ocean"); INSERT INTO Area (ID, Name) VALUES ("2000.2100.2103","North/South/Equatorial"); INSERT INTO Area (ID, Name) VALUES ("2000.2200.2201","FAO statistical area"); INSERT INTO Area (ID, Name) VALUES ("2000.2200.2202","Areal grid system");
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix skos: <http://www.w3.org/2008/05/skos#> . ex:2000Water_area rdf:type skos:Concept; skos:prefLabel "Water area". ex:2000_2100Environmental_area rdf:type skos:Concept; skos:prefLabel "Environmental area"; skos:broader ex:2000Water_area. ex:2000_2420Jurisdiction_area rdf:type skos:Concept; skos:prefLabel "Jurisdiction area"; skos:broader ex:2000Water_area. ex:2000_2200Fishing_statistical_area rdf:type skos:Concept; skos:prefLabel "Fishing statistical area"; skos:broader ex:2000Water_area. ex:2000_2100_2101Inland_Marine rdf:type skos:Concept; skos:prefLabel "Inland/Marine"; skos:broader ex:2000_2100Environmental_area. ex:2000_2100_2102Ocean rdf:type skos:Concept; skos:prefLabel "Ocean"; skos:broader ex:2000_2100Environmental_area. ex:2000_2100_2103North_South_Equatorial rdf:type skos:Concept; skos:prefLabel "North South Equatorial"; skos:broader ex:2000_2100Environmental_area. ex:2000_2200_2201FAO_statistical_area rdf:type skos:Concept; skos:prefLabel "FAO statistical area"; skos:broader ex:2000_2200Fishing_statistical_area. ex:2000_2200_2202Areal_grid_system rdf:type skos:Concept; skos:prefLabel "Areal grid system"; skos:broader ex:2000_2200Fishing_statistical_area.
Expected Default Mapping Result:
R2RML Mapping (TO DO):
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap;
R2RMLTC0010
Id: R2RMLTC0010
Title: Adjacency List
Purpose: Tests Adjacency List, a recursive structure for hierarchy representations comprising a list of elements with a linking column to their parent element
Note: Thanks to FAO
Specification Reference: 1.30
Review Status: unreviewed
Input:
Graphical Representation:
ID (PK) | Name | ParentID |
---|---|---|
2000 | Water area | NULL |
2100 | Environmental area | 2000 |
2420 | Jurisdiction area | 2000 |
2200 | Fishing statistical area | 2000 |
2101 | Inland/Marine | 2100 |
2102 | Ocean | 2100 |
2103 | North/South/Equatorial | 2100 |
2201 | FAO statistical area | 2200 |
2202 | Areal grid system | 2200 |
SQL:
CREATE TABLE Area ( ID integer PRIMARY KEY, Name varchar(50), ParentID integer ); INSERT INTO Area VALUES (2000,"Water area",NULL); INSERT INTO Area VALUES (2100,"Environmental area",2000); INSERT INTO Area VALUES (2420,"Jurisdiction area",2000); INSERT INTO Area VALUES (2200,"Fishing statistical area",2000); INSERT INTO Area VALUES (2101,"Inland/Marine",2100); INSERT INTO Area VALUES (2102,"Ocean",2100); INSERT INTO Area VALUES (2103,"North/South/Equatorial",2100); INSERT INTO Area VALUES (2201,"FAO statistical area",2200); INSERT INTO Area VALUES (2202,"Areal grid system",2200);
Expected Result:
RDF:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . @prefix skos: <http://www.w3.org/2008/05/skos#> . ex:2000Water_area rdf:type skos:Concept; skos:prefLabel "Water area". ex:2100Environmental_area rdf:type skos:Concept; skos:prefLabel "Environmental area"; skos:broader ex:2000Water_area. ex:2420Jurisdiction_area rdf:type skos:Concept; skos:prefLabel "Jurisdiction area"; skos:broader ex:2000Water_area. ex:2200Fishing_statistical_area rdf:type skos:Concept; skos:prefLabel "Fishing statistical area"; skos:broader ex:2000Water_area. ex:2101Inland_Marine rdf:type skos:Concept; skos:prefLabel "Inland/Marine"; skos:broader ex:2100Environmental_area. ex:2102Ocean rdf:type skos:Concept; skos:prefLabel "Ocean"; skos:broader ex:2100Environmental_area. ex:2103North_South_Equatorial rdf:type skos:Concept; skos:prefLabel "North South Equatorial"; skos:broader ex:2100Environmental_area. ex:2201FAO_statistical_area rdf:type skos:Concept; skos:prefLabel "FAO statistical area"; skos:broader ex:2200Fishing_statistical_area. ex:2202Areal_grid_system rdf:type skos:Concept; skos:prefLabel "Areal grid system"; skos:broader ex:2200Fishing_statistical_area.
Expected Default Mapping Result:
R2RML Mapping (TO DO):
@prefix rr: <http://www.w3.org/ns/r2rml#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix ex: <http://example.com/> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . <#TriplesMap1> a rr:TriplesMap;
Direct Mapping Test Cases
DMTC0000
Id: DMTC0000
Title:
Purpose:
Specification Reference:
1.30
Review Status: unreviewed
Input:
Graphical Representation:
SQL:
Expected Result:
RDF:
Expected Default Mapping Result:
R2RML Mapping: