From 23c02be70844793b19142bb8ebc06f581a754382 Mon Sep 17 00:00:00 2001 From: Benjamin Rombaut Date: Wed, 11 Sep 2019 15:57:47 +0200 Subject: [PATCH] CSVRecordFactory: Add spreadsheet support Add XLSX and ODS file formats for reading spreadsheets as CSV files. --- CHANGELOG.md | 1 + README.md | 8 + .../ugent/rml/records/CSVRecordFactory.html | 0 .../records/class-use/CSVRecordFactory.html | 0 generate-spreadsheet-test-cases.sh | 64 +++++ pom.xml | 35 ++- src/main/java/be/ugent/rml/Executor.java | 2 +- .../ugent/rml/records/CSVRecordFactory.java | 112 ++++++-- .../be/ugent/rml/records/ExcelRecord.java | 102 +++++++ .../java/be/ugent/rml/records/ODSRecord.java | 108 ++++++++ .../be/ugent/rml/records/RecordsFactory.java | 6 +- .../ReferenceFormulationRecordFactory.java | 2 +- src/main/java/be/ugent/rml/term/Literal.java | 4 +- .../java/be/ugent/rml/Mapper_CSV_Test.java | 1 - .../java/be/ugent/rml/Mapper_EXCEL_Test.java | 250 ++++++++++++++++++ .../java/be/ugent/rml/Mapper_ODS_Test.java | 250 ++++++++++++++++++ .../test-cases/RMLTC0000-EXCEL/mapping.ttl | 27 ++ .../test-cases/RMLTC0000-EXCEL/output.nq | 1 + .../test-cases/RMLTC0000-EXCEL/student.xlsx | Bin 0 -> 4672 bytes .../test-cases/RMLTC0000-ODS/mapping.ttl | 27 ++ .../test-cases/RMLTC0000-ODS/output.nq | 1 + .../test-cases/RMLTC0000-ODS/student.ods | Bin 0 -> 6901 bytes .../test-cases/RMLTC0001a-EXCEL/mapping.ttl | 29 ++ .../test-cases/RMLTC0001a-EXCEL/output.nq | 2 + .../test-cases/RMLTC0001a-EXCEL/student.xlsx | Bin 0 -> 4700 bytes .../test-cases/RMLTC0001a-ODS/mapping.ttl | 29 ++ .../test-cases/RMLTC0001a-ODS/output.nq | 2 + .../test-cases/RMLTC0001a-ODS/student.ods | Bin 0 -> 7023 bytes .../test-cases/RMLTC0001b-EXCEL/mapping.ttl | 28 ++ .../test-cases/RMLTC0001b-EXCEL/output.nq | 2 + .../test-cases/RMLTC0001b-EXCEL/student.xlsx | Bin 0 -> 4700 bytes .../test-cases/RMLTC0001b-ODS/mapping.ttl | 28 ++ .../test-cases/RMLTC0001b-ODS/output.nq | 2 + .../test-cases/RMLTC0001b-ODS/student.ods | Bin 0 -> 7023 bytes .../test-cases/RMLTC0002a-EXCEL/mapping.ttl | 30 +++ .../test-cases/RMLTC0002a-EXCEL/output.nq | 4 + .../test-cases/RMLTC0002a-EXCEL/student.xlsx | Bin 0 -> 4737 bytes .../test-cases/RMLTC0002a-ODS/mapping.ttl | 30 +++ .../test-cases/RMLTC0002a-ODS/output.nq | 4 + .../test-cases/RMLTC0002a-ODS/student.ods | Bin 0 -> 7157 bytes .../test-cases/RMLTC0002b-EXCEL/mapping.ttl | 25 ++ .../test-cases/RMLTC0002b-EXCEL/output.nq | 2 + .../test-cases/RMLTC0002b-EXCEL/student.xlsx | Bin 0 -> 4737 bytes .../test-cases/RMLTC0002b-ODS/mapping.ttl | 25 ++ .../test-cases/RMLTC0002b-ODS/output.nq | 2 + .../test-cases/RMLTC0002b-ODS/student.ods | Bin 0 -> 7157 bytes .../test-cases/RMLTC0002c-EXCEL/mapping.ttl | 24 ++ .../test-cases/RMLTC0002c-EXCEL/output.nq | 0 .../test-cases/RMLTC0002c-EXCEL/student.xlsx | Bin 0 -> 4737 bytes .../test-cases/RMLTC0002c-ODS/mapping.ttl | 24 ++ .../test-cases/RMLTC0002c-ODS/output.nq | 0 .../test-cases/RMLTC0002c-ODS/student.ods | Bin 0 -> 7157 bytes .../test-cases/RMLTC0002e-EXCEL/mapping.ttl | 24 ++ .../test-cases/RMLTC0002e-EXCEL/student.xlsx | Bin 0 -> 4737 bytes .../test-cases/RMLTC0002e-ODS/mapping.ttl | 24 ++ .../test-cases/RMLTC0002e-ODS/student.ods | Bin 0 -> 7157 bytes .../test-cases/RMLTC0003c-EXCEL/mapping.ttl | 27 ++ .../test-cases/RMLTC0003c-EXCEL/output.nq | 1 + .../test-cases/RMLTC0003c-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0003c-ODS/mapping.ttl | 27 ++ .../test-cases/RMLTC0003c-ODS/output.nq | 1 + .../test-cases/RMLTC0003c-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0004a-EXCEL/mapping.ttl | 46 ++++ .../test-cases/RMLTC0004a-EXCEL/output.nq | 5 + .../RMLTC0004a-EXCEL/student_sport.xlsx | Bin 0 -> 4749 bytes .../test-cases/RMLTC0004a-ODS/mapping.ttl | 46 ++++ .../test-cases/RMLTC0004a-ODS/output.nq | 5 + .../RMLTC0004a-ODS/student_sport.ods | Bin 0 -> 7257 bytes .../test-cases/RMLTC0004b-EXCEL/mapping.ttl | 28 ++ .../test-cases/RMLTC0004b-EXCEL/output.nq | 1 + .../test-cases/RMLTC0004b-EXCEL/student.xlsx | Bin 0 -> 4700 bytes .../test-cases/RMLTC0004b-ODS/mapping.ttl | 28 ++ .../test-cases/RMLTC0004b-ODS/output.nq | 1 + .../test-cases/RMLTC0004b-ODS/student.ods | Bin 0 -> 7023 bytes .../test-cases/RMLTC0005a-EXCEL/ious.xlsx | Bin 0 -> 4829 bytes .../test-cases/RMLTC0005a-EXCEL/mapping.ttl | 25 ++ .../test-cases/RMLTC0005a-EXCEL/output.nq | 5 + .../test-cases/RMLTC0005a-ODS/ious.ods | Bin 0 -> 7837 bytes .../test-cases/RMLTC0005a-ODS/mapping.ttl | 25 ++ .../test-cases/RMLTC0005a-ODS/output.nq | 5 + .../test-cases/RMLTC0006a-EXCEL/mapping.ttl | 25 ++ .../test-cases/RMLTC0006a-EXCEL/output.nq | 1 + .../test-cases/RMLTC0006a-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0006a-ODS/mapping.ttl | 25 ++ .../test-cases/RMLTC0006a-ODS/output.nq | 1 + .../test-cases/RMLTC0006a-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007a-EXCEL/mapping.ttl | 25 ++ .../test-cases/RMLTC0007a-EXCEL/output.nq | 2 + .../test-cases/RMLTC0007a-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007a-ODS/mapping.ttl | 25 ++ .../test-cases/RMLTC0007a-ODS/output.nq | 2 + .../test-cases/RMLTC0007a-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007b-EXCEL/mapping.ttl | 30 +++ .../test-cases/RMLTC0007b-EXCEL/output.nq | 3 + .../test-cases/RMLTC0007b-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007b-ODS/mapping.ttl | 30 +++ .../test-cases/RMLTC0007b-ODS/output.nq | 3 + .../test-cases/RMLTC0007b-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007c-EXCEL/mapping.ttl | 30 +++ .../test-cases/RMLTC0007c-EXCEL/output.nq | 5 + .../test-cases/RMLTC0007c-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007c-ODS/mapping.ttl | 30 +++ .../test-cases/RMLTC0007c-ODS/output.nq | 5 + .../test-cases/RMLTC0007c-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007d-EXCEL/mapping.ttl | 40 +++ .../test-cases/RMLTC0007d-EXCEL/output.nq | 5 + .../test-cases/RMLTC0007d-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007d-ODS/mapping.ttl | 40 +++ .../test-cases/RMLTC0007d-ODS/output.nq | 5 + .../test-cases/RMLTC0007d-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007e-EXCEL/mapping.ttl | 32 +++ .../test-cases/RMLTC0007e-EXCEL/output.nq | 4 + .../test-cases/RMLTC0007e-EXCEL/student.xlsx | Bin 0 -> 4737 bytes .../test-cases/RMLTC0007e-ODS/mapping.ttl | 32 +++ .../test-cases/RMLTC0007e-ODS/output.nq | 4 + .../test-cases/RMLTC0007e-ODS/student.ods | Bin 0 -> 7157 bytes .../test-cases/RMLTC0007f-EXCEL/mapping.ttl | 35 +++ .../test-cases/RMLTC0007f-EXCEL/output.nq | 4 + .../test-cases/RMLTC0007f-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007f-ODS/mapping.ttl | 35 +++ .../test-cases/RMLTC0007f-ODS/output.nq | 4 + .../test-cases/RMLTC0007f-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007g-EXCEL/mapping.ttl | 26 ++ .../test-cases/RMLTC0007g-EXCEL/output.nq | 2 + .../test-cases/RMLTC0007g-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007g-ODS/mapping.ttl | 26 ++ .../test-cases/RMLTC0007g-ODS/output.nq | 2 + .../test-cases/RMLTC0007g-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0007h-EXCEL/mapping.ttl | 26 ++ .../test-cases/RMLTC0007h-EXCEL/output.nq | 0 .../test-cases/RMLTC0007h-EXCEL/student.xlsx | Bin 0 -> 4782 bytes .../test-cases/RMLTC0007h-ODS/mapping.ttl | 26 ++ .../test-cases/RMLTC0007h-ODS/output.nq | 0 .../test-cases/RMLTC0007h-ODS/student.ods | Bin 0 -> 7419 bytes .../test-cases/RMLTC0008a-EXCEL/mapping.ttl | 41 +++ .../test-cases/RMLTC0008a-EXCEL/output.nq | 5 + .../test-cases/RMLTC0008a-EXCEL/student.xlsx | Bin 0 -> 4786 bytes .../test-cases/RMLTC0008a-ODS/mapping.ttl | 41 +++ .../test-cases/RMLTC0008a-ODS/output.nq | 5 + .../test-cases/RMLTC0008a-ODS/student.ods | Bin 0 -> 7431 bytes .../test-cases/RMLTC0008b-EXCEL/mapping.ttl | 58 ++++ .../test-cases/RMLTC0008b-EXCEL/output.nq | 7 + .../test-cases/RMLTC0008b-EXCEL/student.xlsx | Bin 0 -> 4786 bytes .../test-cases/RMLTC0008b-ODS/mapping.ttl | 58 ++++ .../test-cases/RMLTC0008b-ODS/output.nq | 7 + .../test-cases/RMLTC0008b-ODS/student.ods | Bin 0 -> 7431 bytes .../test-cases/RMLTC0008c-EXCEL/mapping.ttl | 24 ++ .../test-cases/RMLTC0008c-EXCEL/output.nq | 3 + .../test-cases/RMLTC0008c-EXCEL/student.xlsx | Bin 0 -> 4786 bytes .../test-cases/RMLTC0008c-ODS/mapping.ttl | 24 ++ .../test-cases/RMLTC0008c-ODS/output.nq | 3 + .../test-cases/RMLTC0008c-ODS/student.ods | Bin 0 -> 7431 bytes .../test-cases/RMLTC0009a-EXCEL/mapping.ttl | 50 ++++ .../test-cases/RMLTC0009a-EXCEL/output.nq | 4 + .../test-cases/RMLTC0009a-EXCEL/sport.xlsx | Bin 0 -> 4738 bytes .../test-cases/RMLTC0009a-EXCEL/student.xlsx | Bin 0 -> 4807 bytes .../test-cases/RMLTC0009a-ODS/mapping.ttl | 50 ++++ .../test-cases/RMLTC0009a-ODS/output.nq | 4 + .../test-cases/RMLTC0009a-ODS/sport.ods | Bin 0 -> 7118 bytes .../test-cases/RMLTC0009a-ODS/student.ods | Bin 0 -> 7609 bytes .../test-cases/RMLTC0009b-EXCEL/mapping.ttl | 60 +++++ .../test-cases/RMLTC0009b-EXCEL/output.nq | 8 + .../test-cases/RMLTC0009b-EXCEL/sport.xlsx | Bin 0 -> 4738 bytes .../test-cases/RMLTC0009b-EXCEL/student.xlsx | Bin 0 -> 4807 bytes .../test-cases/RMLTC0009b-ODS/mapping.ttl | 60 +++++ .../test-cases/RMLTC0009b-ODS/output.nq | 8 + .../test-cases/RMLTC0009b-ODS/sport.ods | Bin 0 -> 7118 bytes .../test-cases/RMLTC0009b-ODS/student.ods | Bin 0 -> 7609 bytes .../RMLTC0010a-EXCEL/country_info.xlsx | Bin 0 -> 4888 bytes .../test-cases/RMLTC0010a-EXCEL/mapping.ttl | 23 ++ .../test-cases/RMLTC0010a-EXCEL/output.nq | 4 + .../RMLTC0010a-ODS/country_info.ods | Bin 0 -> 8230 bytes .../test-cases/RMLTC0010a-ODS/mapping.ttl | 23 ++ .../test-cases/RMLTC0010a-ODS/output.nq | 4 + .../RMLTC0010b-EXCEL/country_info.xlsx | Bin 0 -> 4888 bytes .../test-cases/RMLTC0010b-EXCEL/mapping.ttl | 23 ++ .../test-cases/RMLTC0010b-EXCEL/output.nq | 4 + .../RMLTC0010b-ODS/country_info.ods | Bin 0 -> 8230 bytes .../test-cases/RMLTC0010b-ODS/mapping.ttl | 23 ++ .../test-cases/RMLTC0010b-ODS/output.nq | 4 + .../RMLTC0010c-EXCEL/country_info.xlsx | Bin 0 -> 4888 bytes .../test-cases/RMLTC0010c-EXCEL/mapping.ttl | 23 ++ .../test-cases/RMLTC0010c-EXCEL/output.nq | 4 + .../RMLTC0010c-ODS/country_info.ods | Bin 0 -> 8230 bytes .../test-cases/RMLTC0010c-ODS/mapping.ttl | 23 ++ .../test-cases/RMLTC0010c-ODS/output.nq | 4 + .../test-cases/RMLTC0011b-EXCEL/mapping.ttl | 79 ++++++ .../test-cases/RMLTC0011b-EXCEL/output.nq | 17 ++ .../test-cases/RMLTC0011b-EXCEL/sport.xlsx | Bin 0 -> 4792 bytes .../test-cases/RMLTC0011b-EXCEL/student.xlsx | Bin 0 -> 4848 bytes .../RMLTC0011b-EXCEL/student_sport.xlsx | Bin 0 -> 4788 bytes .../test-cases/RMLTC0011b-ODS/mapping.ttl | 79 ++++++ .../test-cases/RMLTC0011b-ODS/output.nq | 17 ++ .../test-cases/RMLTC0011b-ODS/sport.ods | Bin 0 -> 7537 bytes .../test-cases/RMLTC0011b-ODS/student.ods | Bin 0 -> 7851 bytes .../RMLTC0011b-ODS/student_sport.ods | Bin 0 -> 7544 bytes .../test-cases/RMLTC0012a-EXCEL/mapping.ttl | 33 +++ .../test-cases/RMLTC0012a-EXCEL/output.nq | 5 + .../test-cases/RMLTC0012a-EXCEL/persons.xlsx | Bin 0 -> 4825 bytes .../test-cases/RMLTC0012a-ODS/mapping.ttl | 33 +++ .../test-cases/RMLTC0012a-ODS/output.nq | 5 + .../test-cases/RMLTC0012a-ODS/persons.ods | Bin 0 -> 7706 bytes .../test-cases/RMLTC0012b-EXCEL/lives.xlsx | Bin 0 -> 4830 bytes .../test-cases/RMLTC0012b-EXCEL/mapping.ttl | 52 ++++ .../test-cases/RMLTC0012b-EXCEL/output.nq | 5 + .../test-cases/RMLTC0012b-EXCEL/persons.xlsx | Bin 0 -> 4825 bytes .../test-cases/RMLTC0012b-ODS/lives.ods | Bin 0 -> 7800 bytes .../test-cases/RMLTC0012b-ODS/mapping.ttl | 52 ++++ .../test-cases/RMLTC0012b-ODS/output.nq | 5 + .../test-cases/RMLTC0012b-ODS/persons.ods | Bin 0 -> 7706 bytes .../test-cases/RMLTC0012c-EXCEL/mapping.ttl | 31 +++ .../test-cases/RMLTC0012c-EXCEL/persons.xlsx | Bin 0 -> 4825 bytes .../test-cases/RMLTC0012c-ODS/mapping.ttl | 31 +++ .../test-cases/RMLTC0012c-ODS/persons.ods | Bin 0 -> 7706 bytes .../test-cases/RMLTC0012d-EXCEL/mapping.ttl | 35 +++ .../test-cases/RMLTC0012d-EXCEL/persons.xlsx | Bin 0 -> 4825 bytes .../test-cases/RMLTC0012d-ODS/mapping.ttl | 35 +++ .../test-cases/RMLTC0012d-ODS/persons.ods | Bin 0 -> 7706 bytes .../RMLTC0015a-EXCEL/country_en.xlsx | Bin 0 -> 4789 bytes .../RMLTC0015a-EXCEL/country_es.xlsx | Bin 0 -> 4789 bytes .../test-cases/RMLTC0015a-EXCEL/mapping.ttl | 47 ++++ .../test-cases/RMLTC0015a-EXCEL/output.nq | 6 + .../test-cases/RMLTC0015a-ODS/country_en.ods | Bin 0 -> 7638 bytes .../test-cases/RMLTC0015a-ODS/country_es.ods | Bin 0 -> 7666 bytes .../test-cases/RMLTC0015a-ODS/mapping.ttl | 47 ++++ .../test-cases/RMLTC0015a-ODS/output.nq | 6 + .../RMLTC0015b-EXCEL/country_en.xlsx | Bin 0 -> 4789 bytes .../RMLTC0015b-EXCEL/country_es.xlsx | Bin 0 -> 4789 bytes .../test-cases/RMLTC0015b-EXCEL/mapping.ttl | 45 ++++ .../test-cases/RMLTC0015b-ODS/country_en.ods | Bin 0 -> 7638 bytes .../test-cases/RMLTC0015b-ODS/country_es.ods | Bin 0 -> 7666 bytes .../test-cases/RMLTC0015b-ODS/mapping.ttl | 45 ++++ .../test-cases/RMLTC0019a-EXCEL/mapping.ttl | 26 ++ .../test-cases/RMLTC0019a-EXCEL/output.nq | 2 + .../test-cases/RMLTC0019a-EXCEL/persons.xlsx | Bin 0 -> 4831 bytes .../test-cases/RMLTC0019a-ODS/mapping.ttl | 26 ++ .../test-cases/RMLTC0019a-ODS/output.nq | 2 + .../test-cases/RMLTC0019a-ODS/persons.ods | Bin 0 -> 7951 bytes .../test-cases/RMLTC0019b-EXCEL/mapping.ttl | 26 ++ .../test-cases/RMLTC0019b-EXCEL/output.nq | 2 + .../test-cases/RMLTC0019b-EXCEL/persons.xlsx | Bin 0 -> 4867 bytes .../test-cases/RMLTC0019b-ODS/mapping.ttl | 26 ++ .../test-cases/RMLTC0019b-ODS/output.nq | 2 + .../test-cases/RMLTC0019b-ODS/persons.ods | Bin 0 -> 8189 bytes .../test-cases/RMLTC0020a-EXCEL/mapping.ttl | 27 ++ .../test-cases/RMLTC0020a-EXCEL/output.nq | 5 + .../test-cases/RMLTC0020a-EXCEL/student.xlsx | Bin 0 -> 4798 bytes .../test-cases/RMLTC0020a-ODS/mapping.ttl | 27 ++ .../test-cases/RMLTC0020a-ODS/output.nq | 5 + .../test-cases/RMLTC0020a-ODS/student.ods | Bin 0 -> 7939 bytes .../test-cases/RMLTC0020b-EXCEL/mapping.ttl | 24 ++ .../test-cases/RMLTC0020b-EXCEL/output.nq | 5 + .../test-cases/RMLTC0020b-EXCEL/student.xlsx | Bin 0 -> 4798 bytes .../test-cases/RMLTC0020b-ODS/mapping.ttl | 24 ++ .../test-cases/RMLTC0020b-ODS/output.nq | 5 + .../test-cases/RMLTC0020b-ODS/student.ods | Bin 0 -> 7939 bytes .../test-cases/RMLTC1003-CSV/Airport.csv | 3 + .../test-cases/RMLTC1003-EXCEL/Airport.xlsx | Bin 0 -> 4910 bytes .../test-cases/RMLTC1003-EXCEL/mapping.ttl | 27 ++ .../test-cases/RMLTC1003-EXCEL/output.nq | 2 + .../test-cases/RMLTC1003-ODS/Airport.ods | Bin 0 -> 8305 bytes .../test-cases/RMLTC1003-ODS/mapping.ttl | 27 ++ .../test-cases/RMLTC1003-ODS/output.nq | 2 + .../test-cases/RMLTC1005a-EXCEL/data.xlsx | Bin 0 -> 4755 bytes .../test-cases/RMLTC1005a-EXCEL/data2.xlsx | Bin 0 -> 4753 bytes .../test-cases/RMLTC1005a-EXCEL/mapping.ttl | 50 ++++ .../test-cases/RMLTC1005a-EXCEL/output.nq | 8 + .../test-cases/RMLTC1005a-ODS/data.ods | Bin 0 -> 7219 bytes .../test-cases/RMLTC1005a-ODS/data2.ods | Bin 0 -> 7168 bytes .../test-cases/RMLTC1005a-ODS/mapping.ttl | 50 ++++ .../test-cases/RMLTC1005a-ODS/output.nq | 8 + .../test-cases/RMLTC1005b-EXCEL/data.xlsx | Bin 0 -> 4755 bytes .../test-cases/RMLTC1005b-EXCEL/data2.xlsx | Bin 0 -> 4753 bytes .../test-cases/RMLTC1005b-EXCEL/mapping.ttl | 53 ++++ .../test-cases/RMLTC1005b-EXCEL/output.nq | 6 + .../test-cases/RMLTC1005b-ODS/data.ods | Bin 0 -> 7219 bytes .../test-cases/RMLTC1005b-ODS/data2.ods | Bin 0 -> 7168 bytes .../test-cases/RMLTC1005b-ODS/mapping.ttl | 53 ++++ .../test-cases/RMLTC1005b-ODS/output.nq | 6 + .../test-cases/RMLTC1007-EXCEL/data.xlsx | Bin 0 -> 4800 bytes .../test-cases/RMLTC1007-EXCEL/data2.xlsx | Bin 0 -> 4800 bytes .../test-cases/RMLTC1007-EXCEL/mapping.ttl | 52 ++++ .../test-cases/RMLTC1007-EXCEL/output.nq | 6 + .../test-cases/RMLTC1007-ODS/data.ods | Bin 0 -> 7357 bytes .../test-cases/RMLTC1007-ODS/data2.ods | Bin 0 -> 7358 bytes .../test-cases/RMLTC1007-ODS/mapping.ttl | 52 ++++ .../test-cases/RMLTC1007-ODS/output.nq | 6 + .../test-cases/RMLTC1008-EXCEL/data.xlsx | Bin 0 -> 4829 bytes .../test-cases/RMLTC1008-EXCEL/data2.xlsx | Bin 0 -> 4872 bytes .../test-cases/RMLTC1008-EXCEL/mapping.ttl | 52 ++++ .../test-cases/RMLTC1008-EXCEL/output.nq | 11 + .../test-cases/RMLTC1008-ODS/data.ods | Bin 0 -> 7475 bytes .../test-cases/RMLTC1008-ODS/data2.ods | Bin 0 -> 7739 bytes .../test-cases/RMLTC1008-ODS/mapping.ttl | 52 ++++ .../test-cases/RMLTC1008-ODS/output.nq | 11 + .../test-cases/RMLTC1009-EXCEL/mapping.ttl | 31 +++ .../test-cases/RMLTC1009-EXCEL/output.ttl | 4 + .../test-cases/RMLTC1009-EXCEL/student.json | 5 + .../test-cases/RMLTC1009-ODS/mapping.ttl | 31 +++ .../test-cases/RMLTC1009-ODS/output.ttl | 4 + .../test-cases/RMLTC1009-ODS/student.json | 5 + .../test-cases/RMLTC1010-EXCEL/data.xlsx | Bin 0 -> 4735 bytes .../test-cases/RMLTC1010-EXCEL/mapping.ttl | 25 ++ .../test-cases/RMLTC1010-EXCEL/output.nq | 1 + .../test-cases/RMLTC1010-ODS/data.ods | Bin 0 -> 7132 bytes .../test-cases/RMLTC1010-ODS/mapping.ttl | 25 ++ .../test-cases/RMLTC1010-ODS/output.nq | 1 + .../test-cases/RMLTC1012-EXCEL/mapping.ttl | 24 ++ .../test-cases/RMLTC1012-EXCEL/output.nq | 3 + .../test-cases/RMLTC1012-EXCEL/student.xlsx | Bin 0 -> 4802 bytes .../test-cases/RMLTC1012-ODS/mapping.ttl | 24 ++ .../test-cases/RMLTC1012-ODS/output.nq | 3 + .../test-cases/RMLTC1012-ODS/student.ods | Bin 0 -> 7477 bytes .../test-cases/RMLTC1013-EXCEL/mapping.ttl | 29 ++ .../test-cases/RMLTC1013-EXCEL/output.nq | 3 + .../test-cases/RMLTC1013-EXCEL/student.xlsx | Bin 0 -> 4835 bytes .../test-cases/RMLTC1013-ODS/mapping.ttl | 29 ++ .../test-cases/RMLTC1013-ODS/output.nq | 3 + .../test-cases/RMLTC1013-ODS/student.ods | Bin 0 -> 7544 bytes .../test-cases/RMLTC1014-EXCEL/mapping.ttl | 29 ++ .../test-cases/RMLTC1014-EXCEL/output.nq | 3 + .../test-cases/RMLTC1014-EXCEL/student.xlsx | Bin 0 -> 4835 bytes .../test-cases/RMLTC1014-ODS/mapping.ttl | 29 ++ .../test-cases/RMLTC1014-ODS/output.nq | 3 + .../test-cases/RMLTC1014-ODS/student.ods | Bin 0 -> 7544 bytes .../test-cases/RMLTC1015-EXCEL/mapping.ttl | 24 ++ .../test-cases/RMLTC1015-EXCEL/output.nq | 3 + .../test-cases/RMLTC1015-EXCEL/student.xlsx | Bin 0 -> 4802 bytes .../test-cases/RMLTC1015-ODS/mapping.ttl | 24 ++ .../test-cases/RMLTC1015-ODS/output.nq | 3 + .../test-cases/RMLTC1015-ODS/student.ods | Bin 0 -> 7477 bytes 331 files changed, 4704 insertions(+), 34 deletions(-) create mode 100644 docs/apidocs/be/ugent/rml/records/CSVRecordFactory.html create mode 100644 docs/apidocs/be/ugent/rml/records/class-use/CSVRecordFactory.html create mode 100644 generate-spreadsheet-test-cases.sh create mode 100644 src/main/java/be/ugent/rml/records/ExcelRecord.java create mode 100644 src/main/java/be/ugent/rml/records/ODSRecord.java create mode 100644 src/test/java/be/ugent/rml/Mapper_EXCEL_Test.java create mode 100644 src/test/java/be/ugent/rml/Mapper_ODS_Test.java create mode 100644 src/test/resources/test-cases/RMLTC0000-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0000-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0000-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0000-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0000-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0000-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0001a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0001a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0001a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0001a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0001a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0001a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0001b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0001b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0001b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0001b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0001b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0001b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0002a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0002a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0002a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0002a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0002b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0002b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0002b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0002b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0002c-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002c-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0002c-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0002c-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002c-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0002c-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0002e-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002e-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0002e-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0002e-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0003c-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0003c-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0003c-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0003c-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0003c-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0003c-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0004a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0004a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0004a-EXCEL/student_sport.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0004a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0004a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0004a-ODS/student_sport.ods create mode 100644 src/test/resources/test-cases/RMLTC0004b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0004b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0004b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0004b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0004b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0004b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0005a-EXCEL/ious.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0005a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0005a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0005a-ODS/ious.ods create mode 100644 src/test/resources/test-cases/RMLTC0005a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0005a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0006a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0006a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0006a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0006a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0006a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0006a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007c-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007c-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007c-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007c-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007c-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007c-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007d-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007d-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007d-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007d-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007d-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007d-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007e-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007e-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007e-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007e-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007e-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007e-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007f-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007f-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007f-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007f-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007f-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007f-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007g-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007g-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007g-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007g-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007g-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007g-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0007h-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007h-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007h-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0007h-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0007h-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0007h-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0008a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0008a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0008a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0008a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0008a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0008a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0008b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0008b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0008b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0008b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0008b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0008b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0008c-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0008c-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0008c-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0008c-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0008c-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0008c-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0009a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0009a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0009a-EXCEL/sport.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0009a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0009a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0009a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0009a-ODS/sport.ods create mode 100644 src/test/resources/test-cases/RMLTC0009a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0009b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0009b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0009b-EXCEL/sport.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0009b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0009b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0009b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0009b-ODS/sport.ods create mode 100644 src/test/resources/test-cases/RMLTC0009b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0010a-EXCEL/country_info.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0010a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0010a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0010a-ODS/country_info.ods create mode 100644 src/test/resources/test-cases/RMLTC0010a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0010a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0010b-EXCEL/country_info.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0010b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0010b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0010b-ODS/country_info.ods create mode 100644 src/test/resources/test-cases/RMLTC0010b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0010b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0010c-EXCEL/country_info.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0010c-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0010c-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0010c-ODS/country_info.ods create mode 100644 src/test/resources/test-cases/RMLTC0010c-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0010c-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0011b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0011b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0011b-EXCEL/sport.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0011b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0011b-EXCEL/student_sport.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0011b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0011b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0011b-ODS/sport.ods create mode 100644 src/test/resources/test-cases/RMLTC0011b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0011b-ODS/student_sport.ods create mode 100644 src/test/resources/test-cases/RMLTC0012a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0012a-EXCEL/persons.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0012a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0012a-ODS/persons.ods create mode 100644 src/test/resources/test-cases/RMLTC0012b-EXCEL/lives.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0012b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0012b-EXCEL/persons.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0012b-ODS/lives.ods create mode 100644 src/test/resources/test-cases/RMLTC0012b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0012b-ODS/persons.ods create mode 100644 src/test/resources/test-cases/RMLTC0012c-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012c-EXCEL/persons.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0012c-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012c-ODS/persons.ods create mode 100644 src/test/resources/test-cases/RMLTC0012d-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012d-EXCEL/persons.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0012d-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0012d-ODS/persons.ods create mode 100644 src/test/resources/test-cases/RMLTC0015a-EXCEL/country_en.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0015a-EXCEL/country_es.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0015a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0015a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0015a-ODS/country_en.ods create mode 100644 src/test/resources/test-cases/RMLTC0015a-ODS/country_es.ods create mode 100644 src/test/resources/test-cases/RMLTC0015a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0015a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0015b-EXCEL/country_en.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0015b-EXCEL/country_es.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0015b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0015b-ODS/country_en.ods create mode 100644 src/test/resources/test-cases/RMLTC0015b-ODS/country_es.ods create mode 100644 src/test/resources/test-cases/RMLTC0015b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0019a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0019a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0019a-EXCEL/persons.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0019a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0019a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0019a-ODS/persons.ods create mode 100644 src/test/resources/test-cases/RMLTC0019b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0019b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0019b-EXCEL/persons.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0019b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0019b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0019b-ODS/persons.ods create mode 100644 src/test/resources/test-cases/RMLTC0020a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0020a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0020a-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0020a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0020a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0020a-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC0020b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0020b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0020b-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC0020b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC0020b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC0020b-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC1003-CSV/Airport.csv create mode 100644 src/test/resources/test-cases/RMLTC1003-EXCEL/Airport.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1003-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1003-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1003-ODS/Airport.ods create mode 100644 src/test/resources/test-cases/RMLTC1003-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1003-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1005a-EXCEL/data.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1005a-EXCEL/data2.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1005a-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1005a-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1005a-ODS/data.ods create mode 100644 src/test/resources/test-cases/RMLTC1005a-ODS/data2.ods create mode 100644 src/test/resources/test-cases/RMLTC1005a-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1005a-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1005b-EXCEL/data.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1005b-EXCEL/data2.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1005b-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1005b-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1005b-ODS/data.ods create mode 100644 src/test/resources/test-cases/RMLTC1005b-ODS/data2.ods create mode 100644 src/test/resources/test-cases/RMLTC1005b-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1005b-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1007-EXCEL/data.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1007-EXCEL/data2.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1007-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1007-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1007-ODS/data.ods create mode 100644 src/test/resources/test-cases/RMLTC1007-ODS/data2.ods create mode 100644 src/test/resources/test-cases/RMLTC1007-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1007-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1008-EXCEL/data.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1008-EXCEL/data2.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1008-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1008-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1008-ODS/data.ods create mode 100644 src/test/resources/test-cases/RMLTC1008-ODS/data2.ods create mode 100644 src/test/resources/test-cases/RMLTC1008-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1008-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1009-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1009-EXCEL/output.ttl create mode 100644 src/test/resources/test-cases/RMLTC1009-EXCEL/student.json create mode 100644 src/test/resources/test-cases/RMLTC1009-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1009-ODS/output.ttl create mode 100644 src/test/resources/test-cases/RMLTC1009-ODS/student.json create mode 100644 src/test/resources/test-cases/RMLTC1010-EXCEL/data.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1010-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1010-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1010-ODS/data.ods create mode 100644 src/test/resources/test-cases/RMLTC1010-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1010-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1012-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1012-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1012-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1012-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1012-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1012-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC1013-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1013-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1013-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1013-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1013-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1013-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC1014-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1014-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1014-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1014-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1014-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1014-ODS/student.ods create mode 100644 src/test/resources/test-cases/RMLTC1015-EXCEL/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1015-EXCEL/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1015-EXCEL/student.xlsx create mode 100644 src/test/resources/test-cases/RMLTC1015-ODS/mapping.ttl create mode 100644 src/test/resources/test-cases/RMLTC1015-ODS/output.nq create mode 100644 src/test/resources/test-cases/RMLTC1015-ODS/student.ods diff --git a/CHANGELOG.md b/CHANGELOG.md index d00730b7..3f2fe374 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ### Added - FunctionLoader: throw error on missing function parameters (see [issue 125](https://gitlab.ilabt.imec.be/rml/proc/rmlmapper-java/-/issues/125)) - HTMLRecordFactory: add CSS3 selector support (see [issue 52](https://gitlab.ilabt.imec.be/rml/proc/rmlmapper-java/-/issues/52)) +- CSVRecordFactory: add spreadsheet support (see [issue 42](https://gitlab.ilabt.imec.be/rml/proc/rmlmapper-java/-/issues/42)) ## [4.11.0] - 2021-07-05 diff --git a/README.md b/README.md index f31c3d6c..a7ae0733 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ The RMLMapper loads all data in memory, so be aware when working with big datase ### Supported - local data sources: + - Excel (.xlsx) + - LibreOffice (.ods) - CSV files (including CSVW) - JSON files (JSONPath) - XML files (XPath) @@ -252,6 +254,9 @@ and up to which level metadata should be stored (dataset, triple, or term level Run the tests via `test.sh`. +#### Derived tests +Some tests (Excel, ODS) are derived from other tests (CSV) using a script (`./generate_spreadsheet_test_cases.sh`) + ### RDBs Make sure you have [Docker](https://www.docker.com) running. @@ -317,6 +322,9 @@ We also offer consulting for all-things-RML. ## Remarks +### Typed spreadsheet files +All spreadsheet files are as of yet regarded as plain CSV files. No type information like Currency, Date... is used. + ### XML file parsing performance The RMLMapper's XML parsing implementation (`javax.xml.parsers`) has been chosen to support full XPath. diff --git a/docs/apidocs/be/ugent/rml/records/CSVRecordFactory.html b/docs/apidocs/be/ugent/rml/records/CSVRecordFactory.html new file mode 100644 index 00000000..e69de29b diff --git a/docs/apidocs/be/ugent/rml/records/class-use/CSVRecordFactory.html b/docs/apidocs/be/ugent/rml/records/class-use/CSVRecordFactory.html new file mode 100644 index 00000000..e69de29b diff --git a/generate-spreadsheet-test-cases.sh b/generate-spreadsheet-test-cases.sh new file mode 100644 index 00000000..9b5f0744 --- /dev/null +++ b/generate-spreadsheet-test-cases.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +# REQUIRES libreoffice!! + +TEST_LOCATION="src/test" +TEST_FILE_LOCATION="java/be/ugent/rml" +TEST_RESOURCES_LOCATION="resources/test-cases" +NAME_CSV_TEST="Mapper_CSV_Test.java" + +# Check for libreoffice +if [[ ! `libreoffice --help` ]] +then + echo "Install libreoffice to convert CSV." + return 1 +fi + +cd ${TEST_LOCATION} +TEST_DIR=$(pwd) + +for i in "EXCEL xlsx" "ODS ods" +do + set -- ${i} + echo "Generating ${1} tests from CSV tests" + + ## Test files + cd "${TEST_DIR}/${TEST_FILE_LOCATION}" + NAME_NEW_TEST="Mapper_${1}_Test.java" + cp ${NAME_CSV_TEST} ${NAME_NEW_TEST} + sed -i "s/CSV/${1}/g" ${NAME_NEW_TEST} + + ## Test resources + cd "${TEST_DIR}/${TEST_RESOURCES_LOCATION}" + for csv_dir in *CSV* + do + # Copy CSV test directory + NEW_DIR_NAME=$(echo ${csv_dir} | sed "s/CSV/${1}/") + if [[ -d ${NEW_DIR_NAME} ]] + then + rm -Rf ${NEW_DIR_NAME} + fi + cp -r ${csv_dir} ${NEW_DIR_NAME} + cd ${NEW_DIR_NAME} + + # Change files within directory + + echo "Test case: ${NEW_DIR_NAME}" + # csv source file + for csv_source in *.csv + do + if [[ ! -f ${csv_source} ]]; then break; fi + # UTF-8 encoding issue + # https://bugs.documentfoundation.org/show_bug.cgi?id=36313 + libreoffice --headless --convert-to ${2} --infilter=CSV:44,34,UTF8 ${csv_source} + rm ${csv_source} + done + # mapping file + sed -i "s/.csv/.${2}/g" "mapping.ttl" + + cd .. + done +done + +echo "Success!" + diff --git a/pom.xml b/pom.xml index 74eba35a..1aa937cf 100644 --- a/pom.xml +++ b/pom.xml @@ -132,11 +132,6 @@ commons-lang 2.6 - - org.apache.commons - commons-csv - 1.8 - commons-cli commons-cli @@ -219,6 +214,11 @@ pom 3.8.0 + + com.hp.hpl.jena + arq + 2.8.8 + org.apache.jena @@ -250,6 +250,31 @@ jsoup 1.10.2 + + + org.apache.commons + commons-csv + 1.8 + + + org.apache.poi + poi-ooxml + 4.1.0 + + + + + org.apache.odftoolkit + simple-odf + 0.8.2-incubating + + diff --git a/src/main/java/be/ugent/rml/Executor.java b/src/main/java/be/ugent/rml/Executor.java index 7bb02088..603fe0d1 100644 --- a/src/main/java/be/ugent/rml/Executor.java +++ b/src/main/java/be/ugent/rml/Executor.java @@ -423,7 +423,7 @@ private List getAllIRIs(Term triplesMap) throws Exception { return iris; } - private List getRecords(Term triplesMap) throws IOException, SQLException, ClassNotFoundException { + private List getRecords(Term triplesMap) throws Exception { if (!this.recordsHolders.containsKey(triplesMap)) { this.recordsHolders.put(triplesMap, this.recordsFactory.createRecords(triplesMap, this.rmlStore)); } diff --git a/src/main/java/be/ugent/rml/records/CSVRecordFactory.java b/src/main/java/be/ugent/rml/records/CSVRecordFactory.java index aa1aeeb1..0ef30845 100644 --- a/src/main/java/be/ugent/rml/records/CSVRecordFactory.java +++ b/src/main/java/be/ugent/rml/records/CSVRecordFactory.java @@ -9,8 +9,15 @@ import be.ugent.rml.term.Term; import org.apache.commons.csv.CSVFormat; import org.apache.commons.csv.CSVParser; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.apache.commons.io.FilenameUtils; +import org.odftoolkit.simple.Document; +import org.odftoolkit.simple.SpreadsheetDocument; import java.io.IOException; import java.io.InputStream; @@ -36,39 +43,84 @@ public class CSVRecordFactory implements ReferenceFormulationRecordFactory { * @throws IOException */ @Override - public List getRecords(Access access, Term logicalSource, QuadStore rmlStore) throws IOException, SQLException, ClassNotFoundException { + public List getRecords(Access access, Term logicalSource, QuadStore rmlStore) throws Exception { List sources = Utils.getObjectsFromQuads(rmlStore.getQuads(logicalSource, new NamedNode(NAMESPACES.RML + "source"), null)); Term source = sources.get(0); - CSVParser parser; if (source instanceof Literal) { // We are not dealing with something like CSVW. - parser = getParserForNormalCSV(access); + // Check for different spreadsheet formats + String filePath = source.getValue(); + String extension = FilenameUtils.getExtension(filePath); + switch (extension) { + case "xlsx": + return getRecordsForExcel(access); + case "ods": + return getRecordsForODT(access); + default: + return getRecordsForCSV(access, null); + } + } else { List sourceType = Utils.getObjectsFromQuads(rmlStore.getQuads(source, new NamedNode(NAMESPACES.RDF + "type"), null)); // Check if we are dealing with CSVW. if (sourceType.get(0).getValue().equals(NAMESPACES.CSVW + "Table")) { CSVW csvw = new CSVW(access.getInputStream(), rmlStore, logicalSource); - parser = csvw.getCSVParser(); + return getRecordsForCSV(access, csvw); } else { // RDBs fall under this. - parser = getParserForNormalCSV(access); + return getRecordsForCSV(access, null); } } + } - if (parser != null) { - List myEntries = parser.getRecords(); + /** + * Get Records for Excel file format. + * @param access + * @return + * @throws IOException + */ + private List getRecordsForExcel(Access access) throws IOException, SQLException, ClassNotFoundException { + List output = new ArrayList<>(); + Workbook workbook = new XSSFWorkbook(access.getInputStream()); + for (Sheet datatypeSheet : workbook) { + Row header = datatypeSheet.getRow(0); + boolean first = true; + for (Row currentRow : datatypeSheet) { + // remove the header + if (first) { + first = false; + } else { + output.add(new ExcelRecord(header, currentRow)); + } + } + } + return output; + } - return myEntries.stream() - .map(record -> new CSVRecord(record, access.getDataTypes())) - .collect(Collectors.toList()); - } else { - // We still return an empty list of records when a parser is not found. - // This is to support certain use cases with RDBs where queries might not be valid, - // but you don't want the RMLMapper to crash. - return new ArrayList<>(); + /** + * Get Records for ODT file format. + * @param access + * @return + * @throws IOException + */ + private List getRecordsForODT(Access access) throws Exception { + List output = new ArrayList<>(); + InputStream is = access.getInputStream(); + Document document = SpreadsheetDocument.loadDocument(is); + for (org.odftoolkit.simple.table.Table table : document.getTableList()) { + org.odftoolkit.simple.table.Row header = table.getRowByIndex(0); + boolean first = true; + for (org.odftoolkit.simple.table.Row currentRow : table.getRowList()) { + if (first) { + first = false; + } else { + output.add(new ODSRecord(header, currentRow)); + } + } } + return output; } /** @@ -78,19 +130,35 @@ public List getRecords(Access access, Term logicalSource, QuadStore rmlS * @return a CSVParser. * @throws IOException */ - private CSVParser getParserForNormalCSV(Access access) throws IOException, SQLException, ClassNotFoundException { - CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader().withSkipHeaderRecord(false).withNullString("@@@@NULL@@@@"); - InputStream inputStream = access.getInputStream(); + private List getRecordsForCSV(Access access, CSVW csvw) throws IOException, SQLException, ClassNotFoundException { + CSVParser parser; + // Check if we are dealing with CSVW. + if (csvw != null) { + parser = csvw.getCSVParser(); + } else { + // RDBs fall under this. + CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader().withSkipHeaderRecord(false).withNullString("@@@@NULL@@@@"); + InputStream inputStream = access.getInputStream(); - if (inputStream != null) { try { - return CSVParser.parse(inputStream, StandardCharsets.UTF_8, csvFormat); + parser = CSVParser.parse(inputStream, StandardCharsets.UTF_8, csvFormat); } catch (IllegalArgumentException e) { logger.debug("Could not parse CSV inputstream", e); - return null; + parser = null; } + } + + if (parser != null) { + List myEntries = parser.getRecords(); + + return myEntries.stream() + .map(record -> new CSVRecord(record, access.getDataTypes())) + .collect(Collectors.toList()); } else { - return null; + // We still return an empty list of records when a parser is not found. + // This is to support certain use cases with RDBs where queries might not be valid, + // but you don't want the RMLMapper to crash. + return new ArrayList<>(); } } } diff --git a/src/main/java/be/ugent/rml/records/ExcelRecord.java b/src/main/java/be/ugent/rml/records/ExcelRecord.java new file mode 100644 index 00000000..95404129 --- /dev/null +++ b/src/main/java/be/ugent/rml/records/ExcelRecord.java @@ -0,0 +1,102 @@ +package be.ugent.rml.records; + +import org.apache.jena.datatypes.xsd.XSDDatatype; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * This class is a specific implementation of a Record for Excel. + * Every record corresponds with a row of the Excel file. + */ +public class ExcelRecord extends Record { + + private Row row; + private Map header = new HashMap<>(); + + ExcelRecord(Row header, Row row) { + for (Cell cell : header) { + this.header.put(cell.getStringCellValue(), cell); + } + this.row = row; + } + + /** + * This method returns the datatype of a reference in the record. + * @param value the reference for which the datatype needs to be returned. + * @return the IRI of the datatype. + */ + public String getDataType(String value) { + Cell cell = null; + if (header != null && header.get(value) != null) { + int index = header.get(value).getColumnIndex(); + cell = row.getCell(index); + } + return getIRI(cell); + } + + + /** + * This method returns the objects for a column in the Excel record (= Excel row). + * @param value the column for which objects need to be returned. + * @return a list of objects for the column. + */ + @Override + public List get(String value) { + List result = new ArrayList<>(); + Object obj; + try { + int index = header.get(value).getColumnIndex(); + Cell cell = row.getCell(index); + switch (cell.getCellType()) { + case NUMERIC: + double d = cell.getNumericCellValue(); + // Cast to int if needed + if (d % 1 == 0) { + obj = (int) d; + } else { + obj = d; + } + break; + case BOOLEAN: + obj = cell.getBooleanCellValue(); + break; + default: + obj = cell.getStringCellValue(); + break; + } + + result.add(obj); + } catch (Exception e) { + e.printStackTrace(); + return result; + } + return result; + } + + /** + * Convert a CellType to a XSD datatype URI + * @param cell + * @return + */ + public static String getIRI(Cell cell) { + if (cell == null) { + return ""; + } + + CellType cellType = cell.getCellType(); + switch (cellType) { + case NUMERIC: + return cell.getNumericCellValue() % 1 == 0 ? XSDDatatype.XSDinteger.getURI() : XSDDatatype.XSDdouble.getURI(); + case BOOLEAN: + return XSDDatatype.XSDboolean.getURI(); + default: + return XSDDatatype.XSDstring.getURI(); + } + } +} diff --git a/src/main/java/be/ugent/rml/records/ODSRecord.java b/src/main/java/be/ugent/rml/records/ODSRecord.java new file mode 100644 index 00000000..91370b60 --- /dev/null +++ b/src/main/java/be/ugent/rml/records/ODSRecord.java @@ -0,0 +1,108 @@ +package be.ugent.rml.records; + +import org.apache.jena.datatypes.xsd.XSDDatatype; +import org.odftoolkit.simple.table.Cell; +import org.odftoolkit.simple.table.Row; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * This class is a specific implementation of a record for ODS. + * Every record corresponds with a row of the ODS data source. + */ +public class ODSRecord extends Record { + private Row row; + private Map header = new HashMap<>(); + + public ODSRecord(Row header, Row row) { + // get name from first row and types from second row + Row nextRow = header.getNextRow(); + for (int i = 0; i < header.getCellCount(); i++) { + Cell cell = header.getCellByIndex(i); + this.header.put(cell.getStringValue(), nextRow.getCellByIndex(i)); + } + this.row = row; + } + + /** + * This method returns the datatype of a reference in the record. + * @param value the reference for which the datatype needs to be returned. + * @return the IRI of the datatype. + */ + public String getDataType(String value) { + String cellType = null; + + if (header != null && header.get(value) != null) { + cellType = header.get(value).getValueType(); + } + return getIRI(cellType); + } + + /** + * This method returns the objects for a column in the ODS record (= ODS row). + * @param value the column for which objects need to be returned. + * @return a list of objects for the column. + */ + @Override + public List get(String value) { + List result = new ArrayList<>(); + Object obj; + try { + int index = header.get(value).getColumnIndex(); + Cell cell = row.getCellByIndex(index); + switch (cell.getValueType()) { + case "boolean": + obj = cell.getBooleanValue(); + break; + case "float": + double d = cell.getDoubleValue(); + // Cast to int if needed + if (d % 1 == 0) { + obj = (int) d; + } else { + obj = d; + } + break; + case "string": + default: + obj = cell.getStringValue(); + break; + } + // TODO don't stringify all types, but retain them + // needs object comparison in join function + // FunctionModel + // java.lang.IllegalArgumentException: argument type mismatch + obj = String.valueOf(obj); + result.add(obj); + } catch (Exception e) { + return result; + } + + return result; + } + + /** + * Convert a cell type to a XSD datatype URI + * @param cellType + * @return + */ + public static String getIRI(String cellType) { +// https://odftoolkit.org/api/simple/org/odftoolkit/simple/table/Cell.html#getValueType-- + if (cellType == null) { + return ""; + } + switch (cellType) { +// case "boolean": +// return XSDDatatype.XSDboolean.getURI(); +// case "float": +// return XSDDatatype.XSDdouble.getURI(); +// case "string": +// return XSDDatatype.XSDstring.getURI(); + default: + return XSDDatatype.XSDstring.getURI(); + } + } +} diff --git a/src/main/java/be/ugent/rml/records/RecordsFactory.java b/src/main/java/be/ugent/rml/records/RecordsFactory.java index 2a194afd..14a6593f 100644 --- a/src/main/java/be/ugent/rml/records/RecordsFactory.java +++ b/src/main/java/be/ugent/rml/records/RecordsFactory.java @@ -44,7 +44,7 @@ public RecordsFactory(String basePath) { * @return a list of records. * @throws IOException */ - public List createRecords(Term triplesMap, QuadStore rmlStore) throws IOException, SQLException, ClassNotFoundException { + public List createRecords(Term triplesMap, QuadStore rmlStore) throws Exception { // Get Logical Sources. List logicalSources = Utils.getObjectsFromQuads(rmlStore.getQuads(triplesMap, new NamedNode(NAMESPACES.RML + "logicalSource"), null)); @@ -123,7 +123,7 @@ private void putRecordsIntoCache(Access access, String referenceFormulation, Str * @return a list of records. * @throws IOException */ - private List getRecords(Access access, Term logicalSource, String referenceFormulation, QuadStore rmlStore) throws IOException, SQLException, ClassNotFoundException { + private List getRecords(Access access, Term logicalSource, String referenceFormulation, QuadStore rmlStore) throws Exception { String logicalSourceHash = hashLogicalSource(logicalSource, rmlStore); // Try to get the records from the cache. @@ -141,7 +141,7 @@ private List getRecords(Access access, Term logicalSource, String refere putRecordsIntoCache(access, referenceFormulation, logicalSourceHash, records); return records; - } catch (IOException e) { + } catch (Exception e) { throw e; } } diff --git a/src/main/java/be/ugent/rml/records/ReferenceFormulationRecordFactory.java b/src/main/java/be/ugent/rml/records/ReferenceFormulationRecordFactory.java index 4467e5fb..72ba3c58 100644 --- a/src/main/java/be/ugent/rml/records/ReferenceFormulationRecordFactory.java +++ b/src/main/java/be/ugent/rml/records/ReferenceFormulationRecordFactory.java @@ -21,5 +21,5 @@ public interface ReferenceFormulationRecordFactory { * @return a list of records. * @throws IOException */ - List getRecords(Access access, Term logicalSource, QuadStore rmlStore) throws IOException, SQLException, ClassNotFoundException; + List getRecords(Access access, Term logicalSource, QuadStore rmlStore) throws Exception; } diff --git a/src/main/java/be/ugent/rml/term/Literal.java b/src/main/java/be/ugent/rml/term/Literal.java index b6e869bd..5d1db034 100644 --- a/src/main/java/be/ugent/rml/term/Literal.java +++ b/src/main/java/be/ugent/rml/term/Literal.java @@ -35,7 +35,9 @@ public String toString() { if (this.language != null && !this.language.equals("")) { temp += "@" + this.language; - } else if (this.datatype != null) { + } else if (this.datatype != null && ! this.datatype.getValue().equals("http://www.w3.org/2001/XMLSchema#string")) { + // https://www.w3.org/TR/turtle/#h4_turtle-literals + // > If there is no datatype IRI and no language tag, the datatype is xsd:string. temp += "^^" + this.datatype; } diff --git a/src/test/java/be/ugent/rml/Mapper_CSV_Test.java b/src/test/java/be/ugent/rml/Mapper_CSV_Test.java index a49778b2..c803375e 100644 --- a/src/test/java/be/ugent/rml/Mapper_CSV_Test.java +++ b/src/test/java/be/ugent/rml/Mapper_CSV_Test.java @@ -198,7 +198,6 @@ public void evaluate_0020b_CSV() { doMapping("./test-cases/RMLTC0020b-CSV/mapping.ttl", "./test-cases/RMLTC0020b-CSV/output.nq"); } - @Test public void evaluate_1003_CSV() { doMapping("./test-cases/RMLTC1003-CSV/mapping.ttl", "./test-cases/RMLTC1003-CSV/output.nq"); diff --git a/src/test/java/be/ugent/rml/Mapper_EXCEL_Test.java b/src/test/java/be/ugent/rml/Mapper_EXCEL_Test.java new file mode 100644 index 00000000..a44a3477 --- /dev/null +++ b/src/test/java/be/ugent/rml/Mapper_EXCEL_Test.java @@ -0,0 +1,250 @@ +package be.ugent.rml; + +import org.junit.Test; + +public class Mapper_EXCEL_Test extends TestCore { + @Test + public void evaluate_0000_EXCEL() { + doMapping("./test-cases/RMLTC0000-EXCEL/mapping.ttl", "./test-cases/RMLTC0000-EXCEL/output.nq"); + } + + @Test + public void evaluate_0001a_EXCEL() { + doMapping("./test-cases/RMLTC0001a-EXCEL/mapping.ttl", "./test-cases/RMLTC0001a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0001b_EXCEL() { + doMapping("./test-cases/RMLTC0001b-EXCEL/mapping.ttl", "./test-cases/RMLTC0001b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0002a_EXCEL() { + doMapping("./test-cases/RMLTC0002a-EXCEL/mapping.ttl", "./test-cases/RMLTC0002a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0002b_EXCEL() { + doMapping("./test-cases/RMLTC0002b-EXCEL/mapping.ttl", "./test-cases/RMLTC0002b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0002c_EXCEL() { + doMapping("./test-cases/RMLTC0002c-EXCEL/mapping.ttl", "./test-cases/RMLTC0002c-EXCEL/output.nq"); + } + + @Test + public void evaluate_0002e_EXCEL() { + doMappingExpectError("./test-cases/RMLTC0002e-EXCEL/mapping.ttl"); + } + + @Test + public void evaluate_0003c_EXCEL() { + doMapping("./test-cases/RMLTC0003c-EXCEL/mapping.ttl", "./test-cases/RMLTC0003c-EXCEL/output.nq"); + } + + @Test + public void evaluate_0004a_EXCEL() { + doMapping("./test-cases/RMLTC0004a-EXCEL/mapping.ttl", "./test-cases/RMLTC0004a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0004b_EXCEL() { + doMappingExpectError("./test-cases/RMLTC0004b-EXCEL/mapping.ttl"); + } + + @Test + public void evaluate_0005a_EXCEL() { + doMapping("./test-cases/RMLTC0005a-EXCEL/mapping.ttl", "./test-cases/RMLTC0005a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0006a_EXCEL() { + doMapping("./test-cases/RMLTC0006a-EXCEL/mapping.ttl", "./test-cases/RMLTC0006a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007a_EXCEL() { + doMapping("./test-cases/RMLTC0007a-EXCEL/mapping.ttl", "./test-cases/RMLTC0007a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007b_EXCEL() { + doMapping("./test-cases/RMLTC0007b-EXCEL/mapping.ttl", "./test-cases/RMLTC0007b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007c_EXCEL() { + doMapping("./test-cases/RMLTC0007c-EXCEL/mapping.ttl", "./test-cases/RMLTC0007c-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007d_EXCEL() { + doMapping("./test-cases/RMLTC0007d-EXCEL/mapping.ttl", "./test-cases/RMLTC0007d-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007e_EXCEL() { + doMapping("./test-cases/RMLTC0007e-EXCEL/mapping.ttl", "./test-cases/RMLTC0007e-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007f_EXCEL() { + doMapping("./test-cases/RMLTC0007f-EXCEL/mapping.ttl", "./test-cases/RMLTC0007f-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007g_EXCEL() { + doMapping("./test-cases/RMLTC0007g-EXCEL/mapping.ttl", "./test-cases/RMLTC0007g-EXCEL/output.nq"); + } + + @Test + public void evaluate_0007h_EXCEL() { + doMapping("./test-cases/RMLTC0007h-EXCEL/mapping.ttl", "./test-cases/RMLTC0007h-EXCEL/output.nq"); + } + + @Test + public void evaluate_0008a_EXCEL() { + doMapping("./test-cases/RMLTC0008a-EXCEL/mapping.ttl", "./test-cases/RMLTC0008a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0008b_EXCEL() { + doMapping("./test-cases/RMLTC0008b-EXCEL/mapping.ttl", "./test-cases/RMLTC0008b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0008c_EXCEL() { + doMapping("./test-cases/RMLTC0008c-EXCEL/mapping.ttl", "./test-cases/RMLTC0008c-EXCEL/output.nq"); + } + + @Test + public void evaluate_0009a_EXCEL() { + doMapping("./test-cases/RMLTC0009a-EXCEL/mapping.ttl", "./test-cases/RMLTC0009a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0009b_EXCEL() { + doMapping("./test-cases/RMLTC0009b-EXCEL/mapping.ttl", "./test-cases/RMLTC0009b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0010a_EXCEL() { + doMapping("./test-cases/RMLTC0010a-EXCEL/mapping.ttl", "./test-cases/RMLTC0010a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0010b_EXCEL() { + doMapping("./test-cases/RMLTC0010b-EXCEL/mapping.ttl", "./test-cases/RMLTC0010b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0010c_EXCEL() { + doMapping("./test-cases/RMLTC0010c-EXCEL/mapping.ttl", "./test-cases/RMLTC0010c-EXCEL/output.nq"); + } + + @Test + public void evaluate_0011b_EXCEL() { + doMapping("./test-cases/RMLTC0011b-EXCEL/mapping.ttl", "./test-cases/RMLTC0011b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0012a_EXCEL() { + doMapping("./test-cases/RMLTC0012a-EXCEL/mapping.ttl", "./test-cases/RMLTC0012a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0012b_EXCEL() { + doMapping("./test-cases/RMLTC0012b-EXCEL/mapping.ttl", "./test-cases/RMLTC0012b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0012c_EXCEL() { + doMappingExpectError("./test-cases/RMLTC0012c-EXCEL/mapping.ttl"); + } + + @Test + public void evaluate_0012d_EXCEL() { + doMappingExpectError("./test-cases/RMLTC0012d-EXCEL/mapping.ttl"); + } + + @Test + public void evaluate_0015a_EXCEL() { + doMapping("./test-cases/RMLTC0015a-EXCEL/mapping.ttl", "./test-cases/RMLTC0015a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0015b_EXCEL() { + doMappingExpectError("./test-cases/RMLTC0015b-EXCEL/mapping.ttl"); + } + + @Test + public void evaluate_0019a_EXCEL() { + doMapping("./test-cases/RMLTC0019a-EXCEL/mapping.ttl", "./test-cases/RMLTC0019a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0019b_EXCEL() { + doMapping("./test-cases/RMLTC0019b-EXCEL/mapping.ttl", "./test-cases/RMLTC0019b-EXCEL/output.nq"); + } + + @Test + public void evaluate_0020a_EXCEL() { + doMapping("./test-cases/RMLTC0020a-EXCEL/mapping.ttl", "./test-cases/RMLTC0020a-EXCEL/output.nq"); + } + + @Test + public void evaluate_0020b_EXCEL() { + doMapping("./test-cases/RMLTC0020b-EXCEL/mapping.ttl", "./test-cases/RMLTC0020b-EXCEL/output.nq"); + } + + @Test + public void evaluate_1003_EXCEL() { + doMapping("./test-cases/RMLTC1003-EXCEL/mapping.ttl", "./test-cases/RMLTC1003-EXCEL/output.nq"); + } + + @Test + public void evaluate_1005a_EXCEL() { + doMapping("test-cases/RMLTC1005a-EXCEL/mapping.ttl", "test-cases/RMLTC1005a-EXCEL/output.nq"); + } + + @Test + public void evaluate_1005b_EXCEL() { + doMapping("test-cases/RMLTC1005b-EXCEL/mapping.ttl", "test-cases/RMLTC1005b-EXCEL/output.nq"); + } + + @Test + public void evaluate_1007_EXCEL() { + doMapping("test-cases/RMLTC1007-EXCEL/mapping.ttl", "test-cases/RMLTC1007-EXCEL/output.nq"); + } + + @Test + public void evaluate_1008_EXCEL() { + doMapping("test-cases/RMLTC1008-EXCEL/mapping.ttl", "test-cases/RMLTC1008-EXCEL/output.nq"); + } + + @Test + public void evaluate_1010_EXCEL() { + doMapping("test-cases/RMLTC1010-EXCEL/mapping.ttl", "test-cases/RMLTC1010-EXCEL/output.nq"); + } + + @Test + public void evaluate_1012_EXCEL() { + doMapping("test-cases/RMLTC1012-EXCEL/mapping.ttl", "test-cases/RMLTC1012-EXCEL/output.nq"); + } + + @Test + public void evaluate_1013_EXCEL() { + doMapping("test-cases/RMLTC1013-EXCEL/mapping.ttl", "test-cases/RMLTC1013-EXCEL/output.nq"); + } + + @Test + public void evaluate_1014_EXCEL() { + doMapping("test-cases/RMLTC1014-EXCEL/mapping.ttl", "test-cases/RMLTC1014-EXCEL/output.nq"); + } + + @Test + public void evaluate_1015_EXCEL() { + doMapping("test-cases/RMLTC1015-EXCEL/mapping.ttl", "test-cases/RMLTC1015-EXCEL/output.nq"); + } +} \ No newline at end of file diff --git a/src/test/java/be/ugent/rml/Mapper_ODS_Test.java b/src/test/java/be/ugent/rml/Mapper_ODS_Test.java new file mode 100644 index 00000000..58f35330 --- /dev/null +++ b/src/test/java/be/ugent/rml/Mapper_ODS_Test.java @@ -0,0 +1,250 @@ +package be.ugent.rml; + +import org.junit.Test; + +public class Mapper_ODS_Test extends TestCore { + @Test + public void evaluate_0000_ODS() { + doMapping("./test-cases/RMLTC0000-ODS/mapping.ttl", "./test-cases/RMLTC0000-ODS/output.nq"); + } + + @Test + public void evaluate_0001a_ODS() { + doMapping("./test-cases/RMLTC0001a-ODS/mapping.ttl", "./test-cases/RMLTC0001a-ODS/output.nq"); + } + + @Test + public void evaluate_0001b_ODS() { + doMapping("./test-cases/RMLTC0001b-ODS/mapping.ttl", "./test-cases/RMLTC0001b-ODS/output.nq"); + } + + @Test + public void evaluate_0002a_ODS() { + doMapping("./test-cases/RMLTC0002a-ODS/mapping.ttl", "./test-cases/RMLTC0002a-ODS/output.nq"); + } + + @Test + public void evaluate_0002b_ODS() { + doMapping("./test-cases/RMLTC0002b-ODS/mapping.ttl", "./test-cases/RMLTC0002b-ODS/output.nq"); + } + + @Test + public void evaluate_0002c_ODS() { + doMapping("./test-cases/RMLTC0002c-ODS/mapping.ttl", "./test-cases/RMLTC0002c-ODS/output.nq"); + } + + @Test + public void evaluate_0002e_ODS() { + doMappingExpectError("./test-cases/RMLTC0002e-ODS/mapping.ttl"); + } + + @Test + public void evaluate_0003c_ODS() { + doMapping("./test-cases/RMLTC0003c-ODS/mapping.ttl", "./test-cases/RMLTC0003c-ODS/output.nq"); + } + + @Test + public void evaluate_0004a_ODS() { + doMapping("./test-cases/RMLTC0004a-ODS/mapping.ttl", "./test-cases/RMLTC0004a-ODS/output.nq"); + } + + @Test + public void evaluate_0004b_ODS() { + doMappingExpectError("./test-cases/RMLTC0004b-ODS/mapping.ttl"); + } + + @Test + public void evaluate_0005a_ODS() { + doMapping("./test-cases/RMLTC0005a-ODS/mapping.ttl", "./test-cases/RMLTC0005a-ODS/output.nq"); + } + + @Test + public void evaluate_0006a_ODS() { + doMapping("./test-cases/RMLTC0006a-ODS/mapping.ttl", "./test-cases/RMLTC0006a-ODS/output.nq"); + } + + @Test + public void evaluate_0007a_ODS() { + doMapping("./test-cases/RMLTC0007a-ODS/mapping.ttl", "./test-cases/RMLTC0007a-ODS/output.nq"); + } + + @Test + public void evaluate_0007b_ODS() { + doMapping("./test-cases/RMLTC0007b-ODS/mapping.ttl", "./test-cases/RMLTC0007b-ODS/output.nq"); + } + + @Test + public void evaluate_0007c_ODS() { + doMapping("./test-cases/RMLTC0007c-ODS/mapping.ttl", "./test-cases/RMLTC0007c-ODS/output.nq"); + } + + @Test + public void evaluate_0007d_ODS() { + doMapping("./test-cases/RMLTC0007d-ODS/mapping.ttl", "./test-cases/RMLTC0007d-ODS/output.nq"); + } + + @Test + public void evaluate_0007e_ODS() { + doMapping("./test-cases/RMLTC0007e-ODS/mapping.ttl", "./test-cases/RMLTC0007e-ODS/output.nq"); + } + + @Test + public void evaluate_0007f_ODS() { + doMapping("./test-cases/RMLTC0007f-ODS/mapping.ttl", "./test-cases/RMLTC0007f-ODS/output.nq"); + } + + @Test + public void evaluate_0007g_ODS() { + doMapping("./test-cases/RMLTC0007g-ODS/mapping.ttl", "./test-cases/RMLTC0007g-ODS/output.nq"); + } + + @Test + public void evaluate_0007h_ODS() { + doMapping("./test-cases/RMLTC0007h-ODS/mapping.ttl", "./test-cases/RMLTC0007h-ODS/output.nq"); + } + + @Test + public void evaluate_0008a_ODS() { + doMapping("./test-cases/RMLTC0008a-ODS/mapping.ttl", "./test-cases/RMLTC0008a-ODS/output.nq"); + } + + @Test + public void evaluate_0008b_ODS() { + doMapping("./test-cases/RMLTC0008b-ODS/mapping.ttl", "./test-cases/RMLTC0008b-ODS/output.nq"); + } + + @Test + public void evaluate_0008c_ODS() { + doMapping("./test-cases/RMLTC0008c-ODS/mapping.ttl", "./test-cases/RMLTC0008c-ODS/output.nq"); + } + + @Test + public void evaluate_0009a_ODS() { + doMapping("./test-cases/RMLTC0009a-ODS/mapping.ttl", "./test-cases/RMLTC0009a-ODS/output.nq"); + } + + @Test + public void evaluate_0009b_ODS() { + doMapping("./test-cases/RMLTC0009b-ODS/mapping.ttl", "./test-cases/RMLTC0009b-ODS/output.nq"); + } + + @Test + public void evaluate_0010a_ODS() { + doMapping("./test-cases/RMLTC0010a-ODS/mapping.ttl", "./test-cases/RMLTC0010a-ODS/output.nq"); + } + + @Test + public void evaluate_0010b_ODS() { + doMapping("./test-cases/RMLTC0010b-ODS/mapping.ttl", "./test-cases/RMLTC0010b-ODS/output.nq"); + } + + @Test + public void evaluate_0010c_ODS() { + doMapping("./test-cases/RMLTC0010c-ODS/mapping.ttl", "./test-cases/RMLTC0010c-ODS/output.nq"); + } + + @Test + public void evaluate_0011b_ODS() { + doMapping("./test-cases/RMLTC0011b-ODS/mapping.ttl", "./test-cases/RMLTC0011b-ODS/output.nq"); + } + + @Test + public void evaluate_0012a_ODS() { + doMapping("./test-cases/RMLTC0012a-ODS/mapping.ttl", "./test-cases/RMLTC0012a-ODS/output.nq"); + } + + @Test + public void evaluate_0012b_ODS() { + doMapping("./test-cases/RMLTC0012b-ODS/mapping.ttl", "./test-cases/RMLTC0012b-ODS/output.nq"); + } + + @Test + public void evaluate_0012c_ODS() { + doMappingExpectError("./test-cases/RMLTC0012c-ODS/mapping.ttl"); + } + + @Test + public void evaluate_0012d_ODS() { + doMappingExpectError("./test-cases/RMLTC0012d-ODS/mapping.ttl"); + } + + @Test + public void evaluate_0015a_ODS() { + doMapping("./test-cases/RMLTC0015a-ODS/mapping.ttl", "./test-cases/RMLTC0015a-ODS/output.nq"); + } + + @Test + public void evaluate_0015b_ODS() { + doMappingExpectError("./test-cases/RMLTC0015b-ODS/mapping.ttl"); + } + + @Test + public void evaluate_0019a_ODS() { + doMapping("./test-cases/RMLTC0019a-ODS/mapping.ttl", "./test-cases/RMLTC0019a-ODS/output.nq"); + } + + @Test + public void evaluate_0019b_ODS() { + doMapping("./test-cases/RMLTC0019b-ODS/mapping.ttl", "./test-cases/RMLTC0019b-ODS/output.nq"); + } + + @Test + public void evaluate_0020a_ODS() { + doMapping("./test-cases/RMLTC0020a-ODS/mapping.ttl", "./test-cases/RMLTC0020a-ODS/output.nq"); + } + + @Test + public void evaluate_0020b_ODS() { + doMapping("./test-cases/RMLTC0020b-ODS/mapping.ttl", "./test-cases/RMLTC0020b-ODS/output.nq"); + } + + @Test + public void evaluate_1003_ODS() { + doMapping("./test-cases/RMLTC1003-ODS/mapping.ttl", "./test-cases/RMLTC1003-ODS/output.nq"); + } + + @Test + public void evaluate_1005a_ODS() { + doMapping("test-cases/RMLTC1005a-ODS/mapping.ttl", "test-cases/RMLTC1005a-ODS/output.nq"); + } + + @Test + public void evaluate_1005b_ODS() { + doMapping("test-cases/RMLTC1005b-ODS/mapping.ttl", "test-cases/RMLTC1005b-ODS/output.nq"); + } + + @Test + public void evaluate_1007_ODS() { + doMapping("test-cases/RMLTC1007-ODS/mapping.ttl", "test-cases/RMLTC1007-ODS/output.nq"); + } + + @Test + public void evaluate_1008_ODS() { + doMapping("test-cases/RMLTC1008-ODS/mapping.ttl", "test-cases/RMLTC1008-ODS/output.nq"); + } + + @Test + public void evaluate_1010_ODS() { + doMapping("test-cases/RMLTC1010-ODS/mapping.ttl", "test-cases/RMLTC1010-ODS/output.nq"); + } + + @Test + public void evaluate_1012_ODS() { + doMapping("test-cases/RMLTC1012-ODS/mapping.ttl", "test-cases/RMLTC1012-ODS/output.nq"); + } + + @Test + public void evaluate_1013_ODS() { + doMapping("test-cases/RMLTC1013-ODS/mapping.ttl", "test-cases/RMLTC1013-ODS/output.nq"); + } + + @Test + public void evaluate_1014_ODS() { + doMapping("test-cases/RMLTC1014-ODS/mapping.ttl", "test-cases/RMLTC1014-ODS/output.nq"); + } + + @Test + public void evaluate_1015_ODS() { + doMapping("test-cases/RMLTC1015-ODS/mapping.ttl", "test-cases/RMLTC1015-ODS/output.nq"); + } +} \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC0000-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0000-EXCEL/mapping.ttl new file mode 100644 index 00000000..2a4def13 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0000-EXCEL/mapping.ttl @@ -0,0 +1,27 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ] ; + + rr:subjectMap [ + rr:template "http://example.com/{Name}" + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rml:reference "Name" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0000-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0000-EXCEL/output.nq new file mode 100644 index 00000000..ca0b9916 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0000-EXCEL/output.nq @@ -0,0 +1 @@ +# empty database diff --git a/src/test/resources/test-cases/RMLTC0000-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0000-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7a6758e2e41829771b8278db8620d7403a0cd285 GIT binary patch literal 4672 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0000-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0000-ODS/mapping.ttl new file mode 100644 index 00000000..146791c2 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0000-ODS/mapping.ttl @@ -0,0 +1,27 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ] ; + + rr:subjectMap [ + rr:template "http://example.com/{Name}" + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rml:reference "Name" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0000-ODS/output.nq b/src/test/resources/test-cases/RMLTC0000-ODS/output.nq new file mode 100644 index 00000000..ca0b9916 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0000-ODS/output.nq @@ -0,0 +1 @@ +# empty database diff --git a/src/test/resources/test-cases/RMLTC0000-ODS/student.ods b/src/test/resources/test-cases/RMLTC0000-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..991470f9e4806d32562bfc9694703b7956cc2e5a GIT binary patch literal 6901 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 E0*-j_4*&oF literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0001a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0001a-EXCEL/mapping.ttl new file mode 100644 index 00000000..03dd4d0c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0001a-EXCEL/mapping.ttl @@ -0,0 +1,29 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Name}" + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. + + diff --git a/src/test/resources/test-cases/RMLTC0001a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0001a-EXCEL/output.nq new file mode 100644 index 00000000..73f40ddf --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0001a-EXCEL/output.nq @@ -0,0 +1,2 @@ + "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0001a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0001a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7c58af5fbec295831fcd25dc9afa1513456b2354 GIT binary patch literal 4700 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

W^RO_iIkaVEf#!)HSR*aM)YB%WT12aqq z{CGOiKXd=s|KP2{(IHe)IAw0Adzo?E__ChR%)~`rEh4Sb`-!pLSF~kb#>~s7Umsg6 zUPz*O*&B$?a}b_E0)9}V!gw1ys0xbA<3hOql;B8_VQeG^aq+Nm@i5c%cC~Rg`5D1U zeW1A#xOIb-thjhEB2wSr@I#ZG?Kh^3 zhq{TSt=IUtOcoUqTyKC=5G!~Udti8Vovg~J0%3j`4v@` zz@Xa4WR;EjyLgiaPyE{P@&Rk{;cGH4rvOQQW1-8BLb|CbR+#Fxb{W`NXQvg(#m!SY zZ*7c;*q>ipG>i^eA2zW8CqIlWD?HF^AuWAFgr?m&@Y%cN^N4Iq0b$N6R`+H>koADc zlT|#@N#AdwL(sFYj6j_andLNPo#+yh$Bd1yG;UKu@ks_4^A1*|by6zO_VwA4v?4>u z=?1JJl&kI4=$Ceg8lu{50ckD5O*PHy=dL)Oy9WqeY@+b$}g8s(=q6AoGPY zdFr{P`RuMh@%=fhDlFe|u0&|W_EJlURZ{t(lE?)%YHKQBu~0)~nbpHWZ4EjG8145# zz|~P0brA61xN@mHvh`_D|ERW%p0xt5qD;mi$HzQue6t{@JAbxx&?IhpP6! z5e@vg!e46tpX*!=H&ku>jY7QtxbZ)g^3PSSDgzaozu`>u{|2g-Di)F@G&CUcl0t42 I&d . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Name}" + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. + + diff --git a/src/test/resources/test-cases/RMLTC0001a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0001a-ODS/output.nq new file mode 100644 index 00000000..73f40ddf --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0001a-ODS/output.nq @@ -0,0 +1,2 @@ + "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0001a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0001a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..a2da8cb4de3fab5a1ad37d46f37c43cbddedf869 GIT binary patch literal 7023 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 bU7jk_dbfyhtpEVvBJKso?dxrt . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "{Name}"; + rr:termType rr:BlankNode + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0001b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0001b-EXCEL/output.nq new file mode 100644 index 00000000..082a16c0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0001b-EXCEL/output.nq @@ -0,0 +1,2 @@ +_:Venus "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0001b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0001b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..e3363db84c6ca3c6d57f632b7a66ce62c5a8cac1 GIT binary patch literal 4700 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "{Name}"; + rr:termType rr:BlankNode + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0001b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0001b-ODS/output.nq new file mode 100644 index 00000000..082a16c0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0001b-ODS/output.nq @@ -0,0 +1,2 @@ +_:Venus "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0001b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0001b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..a2da8cb4de3fab5a1ad37d46f37c43cbddedf869 GIT binary patch literal 7023 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 bU7jk_dbfyhtpEVvBJKso?dxrt . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}/{Name}"; + rr:class foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0002a-EXCEL/output.nq new file mode 100644 index 00000000..cf274fb0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0002a-EXCEL/output.nq @@ -0,0 +1,4 @@ + "Venus" . + "10"^^ . + . + diff --git a/src/test/resources/test-cases/RMLTC0002a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0002a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1efec8f38152dc6d73ffa5e21ca6dac61df2182b GIT binary patch literal 4737 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}/{Name}"; + rr:class foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0002a-ODS/output.nq new file mode 100644 index 00000000..174309a6 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0002a-ODS/output.nq @@ -0,0 +1,4 @@ + "Venus" . + "10" . + . + diff --git a/src/test/resources/test-cases/RMLTC0002a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0002a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..e04809531f45f7dc1af210ad36f1ce1106a6b58c GIT binary patch literal 7157 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "students{ID}"; + rr:termType rr:BlankNode + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0002b-EXCEL/output.nq new file mode 100644 index 00000000..be918d0b --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0002b-EXCEL/output.nq @@ -0,0 +1,2 @@ +_:students10 "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0002b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0002b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1efec8f38152dc6d73ffa5e21ca6dac61df2182b GIT binary patch literal 4737 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "students{ID}"; + rr:termType rr:BlankNode + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0002b-ODS/output.nq new file mode 100644 index 00000000..be918d0b --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0002b-ODS/output.nq @@ -0,0 +1,2 @@ +_:students10 "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0002b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0002b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..e04809531f45f7dc1af210ad36f1ce1106a6b58c GIT binary patch literal 7157 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}/{Name}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "IDs" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002c-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0002c-EXCEL/output.nq new file mode 100644 index 00000000..e69de29b diff --git a/src/test/resources/test-cases/RMLTC0002c-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0002c-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1efec8f38152dc6d73ffa5e21ca6dac61df2182b GIT binary patch literal 4737 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}/{Name}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "IDs" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002c-ODS/output.nq b/src/test/resources/test-cases/RMLTC0002c-ODS/output.nq new file mode 100644 index 00000000..e69de29b diff --git a/src/test/resources/test-cases/RMLTC0002c-ODS/student.ods b/src/test/resources/test-cases/RMLTC0002c-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..e04809531f45f7dc1af210ad36f1ce1106a6b58c GIT binary patch literal 7157 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student2.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}/{Name}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "IDs" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002e-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0002e-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1efec8f38152dc6d73ffa5e21ca6dac61df2182b GIT binary patch literal 4737 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student2.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}/{Name}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "IDs" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0002e-ODS/student.ods b/src/test/resources/test-cases/RMLTC0002e-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..e04809531f45f7dc1af210ad36f1ce1106a6b58c GIT binary patch literal 7157 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{FirstName} {LastName}"; + rr:termType rr:Literal; + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0003c-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0003c-EXCEL/output.nq new file mode 100644 index 00000000..180f90c2 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0003c-EXCEL/output.nq @@ -0,0 +1 @@ + "Venus Williams" . diff --git a/src/test/resources/test-cases/RMLTC0003c-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0003c-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fadd6942168035ff6a0603b196bceb2160782ed2 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0003c-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0003c-ODS/mapping.ttl new file mode 100644 index 00000000..5ccbf3ed --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0003c-ODS/mapping.ttl @@ -0,0 +1,27 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{FirstName} {LastName}"; + rr:termType rr:Literal; + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0003c-ODS/output.nq b/src/test/resources/test-cases/RMLTC0003c-ODS/output.nq new file mode 100644 index 00000000..180f90c2 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0003c-ODS/output.nq @@ -0,0 +1 @@ + "Venus Williams" . diff --git a/src/test/resources/test-cases/RMLTC0003c-ODS/student.ods b/src/test/resources/test-cases/RMLTC0003c-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..34225c3e615d4f8f4a5e2c788fc2f0ac7cedcd70 GIT binary patch literal 7419 zcmdT}cQ{<@w;rOCf+T_vM2R|xUPJU=MvGnsqs)vkqZ84iMTruGL{B0*i7*5aqC}5Q z5WO2M1b3YC%aPIM@;ncY;`3A|Ws+&<$$C1G996xbnc@V5kku8s!XzB6(cl2(YD% zt34Qu)cT8)h=}MfPAttoMv5I-!=T6$fQPda+E5iXEp(xF*We0A7p=N6H3@OWSg;Jl6srS9mHxj1qehqIzOaBZi!mDO(?bZGca{Re`U% z387n(i}X3~thi}iCs6BLkS+pFWYT3vhP4|e%EPTTj%`t&4Hx>zK2w#CL+ed)0u#w) zEFQ2gcCq#_y|Sh>$vW&48?YWax8$m8>wZSm?@7^XBj1`@WGqBKdV8kWW8BBx1o+is zKkmSUG_+e8VVL2#tlcnACJqNGTMQYNHtw6`fRfA!i^K~h&$*W$jc4YF;XjKn1X}Ca z)IgsN3tvTaH8}H83#l&~%?HJ0!7v|-Ji>jn$y3x6}@A) zTCYU$0_ST9U?{!1kbp|}*+u2E8YHB5W}Y_hbkJqDjEAtrk8FEmct4iWl7%xECNUzakC1<*?>uG@MJ^cc=>I+!Qkv7nalKwhHfqu$nWL9ZE<v8&oLR8Nv zAC4{fl9}P@KPR!+i~@ViOh!VUK8tB?{!Ep~iCLm9G$Uh`>^-MR(ZY*kNTy3-?Gqr*>agC|tbF6YQOaG-Rc)%ap?^jl zkqCgW;=e11+2LXZrtgo>G<=Dpqm_&jbf1{Cew-bi#q#X_SZ$IDp)q=Bki$=6?CPFz zj7!;>;#Abiu&Hiv!K?(I#p7oE{tvcX{2I(70q-V^`Qi!WKV3;OJWG713lApy?b!lP zfoi^v52m8{t?e-90sesxTUZZL3c8Odx;fbP?#wxzOU~kH|PhbXeC1oEq<7;BW zvr~7AtG;QcdOQSPL5`tjX;)A%5>`@%on(XipA6S5dTRA}mY*`diii1m-|3yLbM%6K z!;DFiIxnwX=~PG87L#i%7!gaoVl4r+6QJqRj>_8h9pP+urK%y7M*#)A!rObVVswhP z-t_KnZy4OsF60@_Fd7ehF3bjj#r52i?s7iD*HR@U0*oI^A@BfzNlF0V(8o2p!q zo=#xblT0;s#~C&vbm6Gh+%o@dF-|=DknjD9clB>7NBo7Z44*qN?7GN8nIm^E+q}oT z?mA0r9Jnf+maQp`;eN|pw0q~+hI&=axUEllt`1+Ux#y(Fx`F^3ldY%M%pqnY>h7dz z=iS#Al^ckntYq}5J1UB{xbqzF8mhuclrITbIim_}=!pxG!x3rPmmn1P17@&~YV;bK?#1^ae7w_K{i?!_0u~YtF1|26 z3ol7~-`JGrqO0G#Vi8AH$?n)|&)Y~a%5>jB0yJomS}GfsVtxilIhxa`3z8BSpb}>T z-${~T()TpUg^LP}T?X;@277|~)o$Nz+eV2EZlD$^V=wXcWOn!~g)CkmZc%qbyf2?D z{S>S3a6Vy-W0ftl`CE|o>Skedy$nb2`pua#6J7T3e8w@*s~N82QEAHLaj{9|C{F!2 zW02Z~nZC$;Es=Avjd3iAfj373QWcbM25+$r-(-d`W*0^f14F2S@P(V1RMfW_aiwY% zb328%4Gt2DO7Rl{+vr)xHSlFkgcRHCuTuvV;IJu9;<@%@PI)}~7=z!x8n{J_a(I`S z7_!qBCan09=!^~Tc)rTSdn>VxS?G)!UO@^mYu^L*Ne4e8gpu%rRy*tQgxy3Livo1k zd67_jVp{-V$CWztrr*0@t-968Rs~p}j`O;oit9SnYXjO`5UDn=y2Udi>knK>*ibLZ zwkV-<-U=^tiPpWaEV$0#753xy7buSi(7Pm{4Zzp25nDLhDzGUc4fY z3N#{x)7bg>K@eh9)Z-qD1`AK3A5Je*LP~vl!7{FZJ$dl8n>j8})&n@dUm{q1s@)8f{n>Mcrn{M0c zO(I7!5>^-;_TpB~>$o4Hth3x0u438{4F$6u`jINNP+Zt~f#>P`i6c#%_*Ka{YMex& zbo2fiR2i#)A{FnNqxM^e4R>{%+_n{i6jA#9#y)kDaP!4MiO;x~=@pRx8Ue_|IQtc zb)C_MNnaiSav9orI(stKXq~y|>(W7CnmwkEP%2TBR*pVO>;(0gIl|dq*Tku_rjRPt z*ifdNl)aD`{!~d3cHl;!-TkN542(fnO;DZ6Ep>*od8^F3%3lkwdUNN*oR_|CC>{Dv ztRw@L`335|G(m);d2Ox*?)EA=?TX6V`-CCk<+_NcR#W#7lZ7)SSuf}EwY%Mhm8WU# zs~eAYv>~bVInMiCawX}9_ zKCT;ntX478Jp&P@yh(7}u{xS(!xSQ-Z;L9kW(&ba!HdD@jnbEfxn1=T+zy#)?ZnUM zPr+ToHNXN`hgO|r0^@mT)@AvDx0QVPjmQ44)sKW-9O=W^rt`|ip1v+wyePtB?m;-c z-at%e`0NZuPq+70F`4~hwo-G)nq+9LW@&ADXTE#Lb20t`hfCWvdV)0S%}}G%OK=M- z&W;T8VS^F*ZDVeB?rzM|(voWVgki-+Z|3FTF}xDAg^4He?DOr-M!4>SqgNX_Uc9zR z1Fe{@r~&(>_5G|9g7OyTec38>#m;Z4p?5*{)u z&Mp0vMH=Gg3#RRPn0(Hqi;@A-X+*bDsE-6D5<7C;QVOq`E00dqIO7pUK7&ce@S>&m zKbve#pj?Eq7(K{C#Bd6unQwp-TSEBedPrkC^ZB|0yp@;}=-G&sG=u4L-wNA~WBScx z^rN|`XX?B(3P6ih&_rCrPPWndf3+ z-Q)Men~wyX^Xj@S%MShA(Mg-rVH`>bXPTwS(Ta5I8)*FCWo5y<)>ZRVMGnYY3kH8R zK9o?rLqdvjYeFx~Z7hkQ2$#NIZAj)w;rb;5nT+&`@jB{5f_aI;t(snmX9`7E+BL0@ zF`R_u46SmFj^{S5DQ*e8V+I#*-ImcsMVWlyUOOX45G3x)BG5;f&p@N3^4d2gHnyIp z<7LeqyV7fvINdxU)Rv{JO+?B9I24R_oTTf)TDt@XGO}Cd3FEi;Ey&7BcoCh;w$j(r*oU?J70VzFATA==6{ey4WV^ZQpgr@Jf!o)Gw z#-8BZ+30G!kfGKB;|13^jS>kJQaqM*JZApK&HKA5v8f%x!Jp0du7w8gTDSWJyj5%v zFw8#|J)+|6{_1X=DSaK4IsR3E2ux2e&PA+OHe9KHQW zAvXgEOengtl3ycEQ+3!dJ|H7U1zJ^mF}$CO$fuO5Uw)4~mwQBSmPRF>|8X?sFhE~~ znXAtYx`EQ$m04I3R=vfXmSLu&@y;P*%8zrcg8#hqx`DF48jYIcQM57%(;AF}PFgNC zF<1WDjlwXd%Zt$vg4_}fTn+oEBiP(@i|@uL%KebM>-fw`bc6&?eEot80H|E}x9Irm z1{RF8JgMKJ;`m^JycdFZk4V1Q1_%0US>wctA;bG}65hy1`#yz6MLAJ!VrUtjl(%+m zq}RFcu70udhJxU-OWEBl%9+V{`BmgP11z3*y@@kgD!p#BZ`=^ovGf>tvSS&Tj!*T% zt-Mk;KhDQ%LdU;$ElVmY@}(tRGkYIHvfZSz)v;3HIqUX@)XUp_K07wN{iKrmEDHs> zA)*WUwr9l_Md{jInY~ndU1F6*IiJ<7&8P~co{cQJ$+6c^@mTLVi^!7(%YZ;;6${%? z(r?0jZ#7~IH=yTgS^Is)a9)Iyo1I&c!1Q>22-MzPe!}}DxA(}3HNHjrnNeF&il`6c zZW#^bYoS8zEb#cC1Kat_=FJ~s6d@NChaA{Y?&EhQW)37sq5i&(9bM;pJhn%bSsDub zr4LE=DhNgo`1{YFxLaP{Q%V#E0Dxm%{&&Iry!o0|1;HSFp(lWRG&Tf?7hH zT!F~%LmoKP?!K0W;#m@!lbZUhvXYz*_Ke0J$3$2hApQ{>7<)3+QUl4;)6-wSew~Yp zi;s^_TwGj1K|x(z9Rvay8yj0$Svfg5xw^V~dwT~21VltcJbd^tH8nLeGxNoZ7iDE- z)z#IFjg9T??L9p`BO@cz)6-ZD*xK4UIyySJ*6}g(v~4f|fcrsNP6p&Lyz=R8L>lh} z|H&m(=Qkl%8p;lz9MQUP*g5mH z_YKnTh)ND0GHE%w7>qnb%l;B;RB83vH^`}{TnhGpywKW;sznPEB>%?$B zQvZZ}BN$TIe(fm;D7FY+ns{`8nHc31Z9^`AQGSbzqTN%^WBm+7`@_XPHko^sh<)7T zTRY(LqV7DXZ8dt>zpVkQmWp!E6cRUMi4^0#o;CHLWY21>z*vv>{TmZK4C0$1s>`dW zESdaj`hcrhwRPrQV&AoauTF>b@`+tGv^UwV9iQi{e#oEsTx`@VqhL*2)$AO1{|Ebr zq7M@r-lUiIUAQ(=X;h+bGQ2&h!fhGLl6%#QWP}niu`Rf$DBU+l6CvJbYqMEFYrGqp zVYT?lEdkSVSenyVZk(~0w*8gtu>a%I72UXa(fIo%?U_DHx%e3PndzQV=3V2AQX>$W z!1YcUsb+qfuR~LkBS>8%1%k=R2<7~=2X8YPAK5TN&?l5Jo93yT@3T}c9Bel$Wj{pf zc~A$J=DFz)c|D&|TAF@aGWh{r@iNKn;b^6Lc%+^Ku#fMN{(N_q;sbg~udV;TgTuKE z((y}o$+dV?0|QL|K^t8&CwNUiA4Pm?)=?CSXx_yoxs?2f&E{vc(M?1ODNdsKVJD= z-}R(Wbhd;-Y{9Nb9)yi;M|=kqD~CaA62ah)gSUYA_=p>=RSp?%1w#z+ftx854b74&@LvPYmW3CUfd6%e>){f|1ayVXE&JaZw_BUmi_FOdll++5X}~Bl>ZQ*w#QB zx%4E)bC*FfVodDWlTs4PN*#1)B}44JTT#SntwG4Zt8X+^n{Fmzv_@vmwwR*QQc&mHk}9#c;h zmAlC~-TIhiw;wZCzIjbgvFJqF%6IL1@UhYsh!vv0_y6zQcM0o0b$O5sx3Y!;@E<>7 z%Ziur>JE)3WrbvLccr0283&Wb<=}J%Nq>&0tM>#b_K82NaMFsqu;05<8ZR-uh8B*j zJSZ#cAhzPC7vI#FP&#u1%|Gb=8n2`v@g6alXO_91b_qmItZ>-d(S zVYI+2qG3aONAH?ZvUw|KS~)4Vps{TfE$)r$!#>1a1;NT^OJ_7=Si$7+c2>N%WGj* z*t{%m`zEyJDLU^{G~+AN?tH$S6L8z&4q1X~Lu-}#ggs~u-E_bp6plTkHyqUg?eiB=deNgpL+E>>Q9B%DT)_c z1OKV)`jzDr1pu5Rp;PO|_CkNn@IPzA&&za*{JZcweNT#A%U_vJwc^h#Cu(tOGQVN@ zZ`$!^vXjhwYJR^V`%z2&%yXg(r&jqJo>Oi4-?A+KhUHXi{><|8e`3Psq+i|qqxSrn z=jVmL^BbO@wdl`GKhNmlZP@_vZj=$MXD>W3gKGeG`92{+K . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student_sport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Student}"; + rr:class ex:Student + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rml:reference "Student" + ] + ]. + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student_sport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Sport}"; + rr:class ex:Sport + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rml:reference "Sport" + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0004a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0004a-EXCEL/output.nq new file mode 100644 index 00000000..164ca8ba --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0004a-EXCEL/output.nq @@ -0,0 +1,5 @@ + "Venus" . + . + "Tennis" . + . + diff --git a/src/test/resources/test-cases/RMLTC0004a-EXCEL/student_sport.xlsx b/src/test/resources/test-cases/RMLTC0004a-EXCEL/student_sport.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..af15102c799acc2c602a89081a88acbd8fefcd06 GIT binary patch literal 4749 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student_sport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Student}"; + rr:class ex:Student + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rml:reference "Student" + ] + ]. + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student_sport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Sport}"; + rr:class ex:Sport + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rml:reference "Sport" + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0004a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0004a-ODS/output.nq new file mode 100644 index 00000000..164ca8ba --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0004a-ODS/output.nq @@ -0,0 +1,5 @@ + "Venus" . + . + "Tennis" . + . + diff --git a/src/test/resources/test-cases/RMLTC0004a-ODS/student_sport.ods b/src/test/resources/test-cases/RMLTC0004a-ODS/student_sport.ods new file mode 100644 index 0000000000000000000000000000000000000000..36ee4017054c7b4ac0b77cb6fa359a50af33c223 GIT binary patch literal 7257 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Name}"; + rr:termType rr:Literal + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0004b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0004b-EXCEL/output.nq new file mode 100644 index 00000000..a8565cd0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0004b-EXCEL/output.nq @@ -0,0 +1 @@ + "Venus" . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC0004b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0004b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fadaaac89e3be8190d9c0584a5d54c2bfbd00a01 GIT binary patch literal 4700 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Name}"; + rr:termType rr:Literal + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0004b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0004b-ODS/output.nq new file mode 100644 index 00000000..a8565cd0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0004b-ODS/output.nq @@ -0,0 +1 @@ + "Venus" . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC0004b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0004b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..9d252613e7224f17ed830ef21f4a0d9b9f5484c5 GIT binary patch literal 7023 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "ious.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{fname};{lname}"; + rr:class foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:owes; + rr:objectMap [ rml:reference "amount"; ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0005a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0005a-EXCEL/output.nq new file mode 100644 index 00000000..64e91da4 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0005a-EXCEL/output.nq @@ -0,0 +1,5 @@ + . + "30.0E0" . + . + "20.0E0" . + diff --git a/src/test/resources/test-cases/RMLTC0005a-ODS/ious.ods b/src/test/resources/test-cases/RMLTC0005a-ODS/ious.ods new file mode 100644 index 0000000000000000000000000000000000000000..e15f890bbe6739db456f0bd266eec0e12ed599e2 GIT binary patch literal 7837 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 o9}n>lz>% literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0005a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0005a-ODS/mapping.ttl new file mode 100644 index 00000000..293cdaf0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0005a-ODS/mapping.ttl @@ -0,0 +1,25 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "ious.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{fname};{lname}"; + rr:class foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:owes; + rr:objectMap [ rml:reference "amount"; ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0005a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0005a-ODS/output.nq new file mode 100644 index 00000000..64e91da4 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0005a-ODS/output.nq @@ -0,0 +1,5 @@ + . + "30.0E0" . + . + "20.0E0" . + diff --git a/src/test/resources/test-cases/RMLTC0006a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0006a-EXCEL/mapping.ttl new file mode 100644 index 00000000..71fb74fa --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0006a-EXCEL/mapping.ttl @@ -0,0 +1,25 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:constant ex:BadStudent; + rr:graphMap [ rr:constant ]; + ]; + + rr:predicateObjectMap [ + rr:predicateMap [ rr:constant ex:description ]; + rr:objectMap [ rr:constant "Bad Student"; ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0006a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0006a-EXCEL/output.nq new file mode 100644 index 00000000..4e6fd3ef --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0006a-EXCEL/output.nq @@ -0,0 +1 @@ + "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC0006a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0006a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fadd6942168035ff6a0603b196bceb2160782ed2 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0006a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0006a-ODS/mapping.ttl new file mode 100644 index 00000000..fe1699e7 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0006a-ODS/mapping.ttl @@ -0,0 +1,25 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:constant ex:BadStudent; + rr:graphMap [ rr:constant ]; + ]; + + rr:predicateObjectMap [ + rr:predicateMap [ rr:constant ex:description ]; + rr:objectMap [ rr:constant "Bad Student"; ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0006a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0006a-ODS/output.nq new file mode 100644 index 00000000..4e6fd3ef --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0006a-ODS/output.nq @@ -0,0 +1 @@ + "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC0006a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0006a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..b80bb1527ab2e00eb8a19243dbce324fed82e77f GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007a-EXCEL/output.nq new file mode 100644 index 00000000..76f87f89 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007a-EXCEL/output.nq @@ -0,0 +1,2 @@ + . + diff --git a/src/test/resources/test-cases/RMLTC0007a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fadd6942168035ff6a0603b196bceb2160782ed2 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0007a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0007a-ODS/mapping.ttl new file mode 100644 index 00000000..0c6c84ea --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007a-ODS/mapping.ttl @@ -0,0 +1,25 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007a-ODS/output.nq new file mode 100644 index 00000000..76f87f89 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007a-ODS/output.nq @@ -0,0 +1,2 @@ + . + diff --git a/src/test/resources/test-cases/RMLTC0007a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..b80bb1527ab2e00eb8a19243dbce324fed82e77f GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph ex:PersonGraph + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "FirstName" ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007b-EXCEL/output.nq new file mode 100644 index 00000000..5c4eb261 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007b-EXCEL/output.nq @@ -0,0 +1,3 @@ + "Venus" . + . + diff --git a/src/test/resources/test-cases/RMLTC0007b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b40279a575b09c285a541fd2bf6b22aaf3bd4cfc GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0007b-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0007b-ODS/mapping.ttl new file mode 100644 index 00000000..1a49d42c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007b-ODS/mapping.ttl @@ -0,0 +1,30 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph ex:PersonGraph + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "FirstName" ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007b-ODS/output.nq new file mode 100644 index 00000000..5c4eb261 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007b-ODS/output.nq @@ -0,0 +1,3 @@ + "Venus" . + . + diff --git a/src/test/resources/test-cases/RMLTC0007b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..b80bb1527ab2e00eb8a19243dbce324fed82e77f GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:class foaf:Person, ex:Student + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "FirstName" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007c-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007c-EXCEL/output.nq new file mode 100644 index 00000000..08ffbd7f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007c-EXCEL/output.nq @@ -0,0 +1,5 @@ + "Venus" . + "10"^^ . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0007c-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007c-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b40279a575b09c285a541fd2bf6b22aaf3bd4cfc GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0007c-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0007c-ODS/mapping.ttl new file mode 100644 index 00000000..43211605 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007c-ODS/mapping.ttl @@ -0,0 +1,30 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:class foaf:Person, ex:Student + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "FirstName" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007c-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007c-ODS/output.nq new file mode 100644 index 00000000..fb4d7fe2 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007c-ODS/output.nq @@ -0,0 +1,5 @@ + "Venus" . + "10" . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0007c-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007c-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..748204ed486a935023eb16259a7bee430e42645e GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object ex:Student; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "FirstName" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007d-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007d-EXCEL/output.nq new file mode 100644 index 00000000..2232abdb --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007d-EXCEL/output.nq @@ -0,0 +1,5 @@ + "Venus" . + "10"^^ . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0007d-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007d-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b40279a575b09c285a541fd2bf6b22aaf3bd4cfc GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0007d-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0007d-ODS/mapping.ttl new file mode 100644 index 00000000..3cc57640 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007d-ODS/mapping.ttl @@ -0,0 +1,40 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object ex:Student; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ rml:reference "FirstName" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007d-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007d-ODS/output.nq new file mode 100644 index 00000000..2f24266d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007d-ODS/output.nq @@ -0,0 +1,5 @@ + "Venus" . + "10" . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0007d-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007d-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..748204ed486a935023eb16259a7bee430e42645e GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{Name}"; + rr:graph ex:PersonGraph ; + rr:class foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap + [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007e-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007e-EXCEL/output.nq new file mode 100644 index 00000000..4cbaaf55 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007e-EXCEL/output.nq @@ -0,0 +1,4 @@ + "10" . + "Venus" . + . + diff --git a/src/test/resources/test-cases/RMLTC0007e-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007e-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..8e1229e06b6045162612298647c924389646d0ab GIT binary patch literal 4737 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 uI)9^t . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{Name}"; + rr:graph ex:PersonGraph ; + rr:class foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap + [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC0007e-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007e-ODS/output.nq new file mode 100644 index 00000000..4cbaaf55 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007e-ODS/output.nq @@ -0,0 +1,4 @@ + "10" . + "Venus" . + . + diff --git a/src/test/resources/test-cases/RMLTC0007e-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007e-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..9bfc5cd29dda3705afa3ba687071db6802e49d88 GIT binary patch literal 7157 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0007f-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0007f-EXCEL/mapping.ttl new file mode 100644 index 00000000..0c8b9c77 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007f-EXCEL/mapping.ttl @@ -0,0 +1,35 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph ex:PersonGraph + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "FirstName" ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007f-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007f-EXCEL/output.nq new file mode 100644 index 00000000..d4694d78 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007f-EXCEL/output.nq @@ -0,0 +1,4 @@ + . + "Venus" . + "10" . + diff --git a/src/test/resources/test-cases/RMLTC0007f-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007f-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b40279a575b09c285a541fd2bf6b22aaf3bd4cfc GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0007f-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0007f-ODS/mapping.ttl new file mode 100644 index 00000000..f1d013dc --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007f-ODS/mapping.ttl @@ -0,0 +1,35 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph ex:PersonGraph + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "FirstName" ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007f-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007f-ODS/output.nq new file mode 100644 index 00000000..d4694d78 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007f-ODS/output.nq @@ -0,0 +1,4 @@ + . + "Venus" . + "10" . + diff --git a/src/test/resources/test-cases/RMLTC0007f-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007f-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..748204ed486a935023eb16259a7bee430e42645e GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph rr:defaultGraph + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "FirstName" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007g-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007g-EXCEL/output.nq new file mode 100644 index 00000000..6c29bcce --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007g-EXCEL/output.nq @@ -0,0 +1,2 @@ + "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0007g-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007g-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..60270e9fb00317a683d303457885d0eefe742466 GIT binary patch literal 4782 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph rr:defaultGraph + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "FirstName" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007g-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007g-ODS/output.nq new file mode 100644 index 00000000..6c29bcce --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0007g-ODS/output.nq @@ -0,0 +1,2 @@ + "Venus" . + diff --git a/src/test/resources/test-cases/RMLTC0007g-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007g-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..748204ed486a935023eb16259a7bee430e42645e GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph [ rml:reference "Name"; rr:termType rr:Literal; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0007h-EXCEL/output.nq new file mode 100644 index 00000000..e69de29b diff --git a/src/test/resources/test-cases/RMLTC0007h-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0007h-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..60270e9fb00317a683d303457885d0eefe742466 GIT binary patch literal 4782 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graph [ rml:reference "Name"; rr:termType rr:Literal; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "Name" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-ODS/output.nq b/src/test/resources/test-cases/RMLTC0007h-ODS/output.nq new file mode 100644 index 00000000..e69de29b diff --git a/src/test/resources/test-cases/RMLTC0007h-ODS/student.ods b/src/test/resources/test-cases/RMLTC0007h-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..d9138039dea5e500ecf34d065f350b639ad83301 GIT binary patch literal 7419 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{Name}"; + rr:graphMap [ rr:template "http://example.com/graph/Student/{ID}/{Name}" ] + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type ; + rr:object foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:Sport ; + rr:objectMap [ rml:reference "Sport" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0008a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0008a-EXCEL/output.nq new file mode 100644 index 00000000..2856ef24 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0008a-EXCEL/output.nq @@ -0,0 +1,5 @@ + . + "Venus Williams" . + "10" . + "Tennis" . + diff --git a/src/test/resources/test-cases/RMLTC0008a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0008a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c9e2962b51f1c9f30a9385dd98481667100b1d9b GIT binary patch literal 4786 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 rclJNq_@5#B=PIW&gHW2k(M . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rdf: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/Student/{ID}/{Name}"; + rr:graphMap [ rr:template "http://example.com/graph/Student/{ID}/{Name}" ] + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type ; + rr:object foaf:Person; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:Sport ; + rr:objectMap [ rml:reference "Sport" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0008a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0008a-ODS/output.nq new file mode 100644 index 00000000..2856ef24 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0008a-ODS/output.nq @@ -0,0 +1,5 @@ + . + "Venus Williams" . + "10" . + "Tennis" . + diff --git a/src/test/resources/test-cases/RMLTC0008a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0008a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..6afa1520372f44a0ad5117caf7db7660cb62034f GIT binary patch literal 7431 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Sport}" ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type ; + rr:object activity:Sport ; + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/Student/{ID}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type ; + rr:object foaf:Person ; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:Sport ; + rr:objectMap + ] . + + + + a rr:RefObjectMap; + rr:parentTriplesMap . + diff --git a/src/test/resources/test-cases/RMLTC0008b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0008b-EXCEL/output.nq new file mode 100644 index 00000000..a2678fac --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0008b-EXCEL/output.nq @@ -0,0 +1,7 @@ + . + "Venus Williams" . + "10"^^ . + . + . + + diff --git a/src/test/resources/test-cases/RMLTC0008b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0008b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c9e2962b51f1c9f30a9385dd98481667100b1d9b GIT binary patch literal 4786 zcmaJ_bzGC}{szYgY1j~v6p)mmIC3BoBBKSQbBq>nLl96xS~?{}kPro?bcfPNh@(ql zpa>$;4QG2jzaz)3yq3*la(_lcjVZH)US0~n`#Daiu-W-rd!=NjkRLStqJWqa)FF~9dA zj3Zp3eUMQog>R1qy9;VI1oL+;i%c}trU1{WM3SD*qX{3r0={Lfw%1+Yo(Y%o<4Laf zIH}=IOReWBD+;>e%YtF?x<|Ppqpe0p?$qQ#GL7H0!WkkW?Z4%P9)E|8D?%IP>V}3O zTv14o2X~$C#`S8ph|&eE!j$KI=16#gvU!pO--p9*`L_;@P7JpBl~!qNY)eu=l{YKJ z4!oRK#S0VejL|=g9WKumgvSTW-nlhUHGi}s;KyksZ%d*(EU$Kx+-7L%+T_rr_k*?J z02KXdoVL{=&n5{Ic#K!#SHOMfa;c~Z60dcBj=OQSjF7cM{ zMW9yPkC`D>PDvn;g^JV|3_e2A*V7o#_GD1rR%2x|RsPtkl=)bFMwF_}O(JLQ2z)dO zYwEM;%}c%67T_K=1KoMozyIdN(~HAr&g@{VSog4p2qjF)H`;r089ICW_in~RHOx!= z)2nkZBqi*Kb}+=4JsLIcWYDJ+KLDQnSwj}xeWcpT!YgR_9lhr|G9^J^Sv{l1n2(r< zNa7z^raR5Dm75!ZEi!DDt=68)KFMS1O8o2))6Svmb|I5;rG4 zPGqfkNyy5sC2a26dQ?i^_;6|W`J_ao-i&^KJBRnWT>YTXZDgXk+6CC=JXNZ5E1RDh zmx2PIMvx@a2c;D01TT|*oKPcB3F%{wPcXER?iY=|`5vvE0EpQPD2Z;4oPjP%oBPkl zRLjl!y^wyDd9dE$79GsDOC(|(&MDcDtSIk5hLbPGHj*DR=Ro1ss!Gnia_^T{&yGX8 zL!c|xPKVc4~}X0q%;SDnlIfC1;6H-fHdtKu77{!kr0tIvl!>tlK5gz(Sg?}qyw%A zBu*~2jshI4pMT<>i+NU=iyZR+74;R03V44EO9`!3rRda5YXs!_{ z|0s}ZnV!l>r;V?(xayL+nPZvmmKVgiyuWCpBrpc-6Z1nTy_luMY`5{UqkVP85)(*S@GeWVO&Z441W;cNB@)NRJm%cKAOgBT z$MnTd)LlRP%y8`@i?*acb1Z9k14h|tY`vC&;d#ho*yqYjFU4|Q5y~$R3kN@_d0&Lt zh^@P{75FLBtA1mS#`)NOT7|&#A&%P?e=hPJ-K?6quvi&ZW}JbXTPlQjqDe z=y0zb;f!PKcAyKA6=q$_QLcIp<%O=CV3R;K0XI}N^?H^gZ;i(6+ymurNTw+jx`|V? zOmugJjk zKVm}e4CvcUo#4CP1HeD!4(Q*V&)y1!w9$1(Ik?#U)c~Vn-@{3+&?&9@DlZ}JXqG$g-o;+k$N!`2IE+j zkg!yW<5LgrYT=_`Z4PGC8ORZ4w;igjy3?L|^+ToJ+>iRCWSu%^KA{SF&8v(KnjR8V zBjN}fQG}79tZ9IeWFy4=pfE6jdGcecxnT688c*^Hu^SJn(RTvNraP~Xa@!gM<%Y2C z;5~)9<(^VO6wjAkvWlacpFjc&iwePct@u59{$u}V`NhI7p?12Ceu=g?4Z_3> zSv>;Z+-XxKLqtk8MBaFNv`gHsGuPiL9zR@h;wy5&my13$FQk zq^mY?MF-Not~&6HxEHL8F#(jj2x-@$n@@@nBh)k&IX;=9ozxV)DE2t9Pq$;NXM`YE z$u{rqEyylhzsNSq{o!q3=529LiXjVI_Em36SBeRYw(s{to{jaYRAtQD&r=W25SY>W zx#x|=@0<4@6$JAyW(b_1?U6`#G~}Ow!X4LjxEAi%^%nZ&CVpHR_s%->bgkjos>QVeTlQhmg8{i+RCVp{NqM;5gKie2L- zF3i6Nj6=!9$W1{`>chfH^sWjf26=6gU-C{kiu;k|E6VH7OU~H~6U1O3xY2oDy}?L5 zY6fU97F_XQaAI_jg@5CzAUz*$&B#82EA4ctHb*C8eW&Y)mzsSTC-V z>`m*L1~N75=K!@7QwmaLy?JS37x(!yFW-7v9 zH%ooIP%IJXX$`NiuznVm^@Zqb@QHn&OEpQN@l<(pjAN7b99wBXD=pYUzECr3ud&R}4II`=1#jQ?@aJfh|XMs+R3%;Px_s4Y?d!`zSVFqj(DpZ$8?FY^9_8m7_eAH zjn_Vt!>v2JU)eCD8{JB@&{ZqbE0q28Jat9_l#L!5+2s$hJPOSA+2I?r!uDk>8{jVg zEKOIcbAHw?bI#IfZF|sqy`gPx@ZvXN>z+b2k-gq7-oSS@cXfvTVEWqz zQeGyoyeb=UHe>__m}&WDTk5r9v1jC7HfftIlF5x9gkLxPg- zM!(J5GH7BfdP75WyRC1|t7&dPp(&R->kF`BCD-4k&+NgMvy7uY--A8{9DL)Z(Cx`6 zVSn33EGxImUH?k+GD`p@Lmzkc)`Gllaw*ZKp+KT`SRfN;pN%WamzGN66T9Lnn(CiW zd2Q+yb*?=;?|5XYgqOKoC2>kwyONxqnKZKUX+CC<#L0H(ufk2mjCiMmGGp&gpU^jMd+G rclJNq_@5#B=PIW&gHW2k(M . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Sport}" ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type ; + rr:object activity:Sport ; + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/Student/{ID}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type ; + rr:object foaf:Person ; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID"; ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:Sport ; + rr:objectMap + ] . + + + + a rr:RefObjectMap; + rr:parentTriplesMap . + diff --git a/src/test/resources/test-cases/RMLTC0008b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0008b-ODS/output.nq new file mode 100644 index 00000000..7742ae45 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0008b-ODS/output.nq @@ -0,0 +1,7 @@ + . + "Venus Williams" . + "10" . + . + . + + diff --git a/src/test/resources/test-cases/RMLTC0008b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0008b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..6afa1520372f44a0ad5117caf7db7660cb62034f GIT binary patch literal 7431 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/Student/{ID}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0008c-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0008c-EXCEL/output.nq new file mode 100644 index 00000000..d36f700c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0008c-EXCEL/output.nq @@ -0,0 +1,3 @@ + "Venus Williams" . + "Venus Williams" . + diff --git a/src/test/resources/test-cases/RMLTC0008c-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0008c-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c9e2962b51f1c9f30a9385dd98481667100b1d9b GIT binary patch literal 4786 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 rclJNq_@5#B=PIW&gHW2k(M . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/Student/{ID}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0008c-ODS/output.nq b/src/test/resources/test-cases/RMLTC0008c-ODS/output.nq new file mode 100644 index 00000000..d36f700c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0008c-ODS/output.nq @@ -0,0 +1,3 @@ + "Venus Williams" . + "Venus Williams" . + diff --git a/src/test/resources/test-cases/RMLTC0008c-ODS/student.ods b/src/test/resources/test-cases/RMLTC0008c-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..6afa1520372f44a0ad5117caf7db7660cb62034f GIT binary patch literal 7431 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/resource/student_{ID}" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ] ; + + rr:predicateObjectMap [ + rr:predicate ; + rr:objectMap [ + a rr:RefObjectMap ; + rr:parentTriplesMap ; + rr:joinCondition [ + rr:child "Sport" ; + rr:parent "ID" ; + ] + ] + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "sport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/resource/sport_{ID}" ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ rml:reference "Name" ]; + ]. diff --git a/src/test/resources/test-cases/RMLTC0009a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0009a-EXCEL/output.nq new file mode 100644 index 00000000..b0b89f8b --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0009a-EXCEL/output.nq @@ -0,0 +1,4 @@ + "Venus Williams" . + "Demi Moore" . + "Tennis" . + . diff --git a/src/test/resources/test-cases/RMLTC0009a-EXCEL/sport.xlsx b/src/test/resources/test-cases/RMLTC0009a-EXCEL/sport.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..89578b74f00bc350beb2a3b8e2831eaf6e463ecf GIT binary patch literal 4738 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0009a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0009a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9ea7af8e7eb77824b3c4111b4a469cbbc63bc05e GIT binary patch literal 4807 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 J&Oi6={{Yi(^*8_k literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0009a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0009a-ODS/mapping.ttl new file mode 100644 index 00000000..c7e2c621 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0009a-ODS/mapping.ttl @@ -0,0 +1,50 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/resource/student_{ID}" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ] ; + + rr:predicateObjectMap [ + rr:predicate ; + rr:objectMap [ + a rr:RefObjectMap ; + rr:parentTriplesMap ; + rr:joinCondition [ + rr:child "Sport" ; + rr:parent "ID" ; + ] + ] + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "sport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/resource/sport_{ID}" ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ rml:reference "Name" ]; + ]. diff --git a/src/test/resources/test-cases/RMLTC0009a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0009a-ODS/output.nq new file mode 100644 index 00000000..b0b89f8b --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0009a-ODS/output.nq @@ -0,0 +1,4 @@ + "Venus Williams" . + "Demi Moore" . + "Tennis" . + . diff --git a/src/test/resources/test-cases/RMLTC0009a-ODS/sport.ods b/src/test/resources/test-cases/RMLTC0009a-ODS/sport.ods new file mode 100644 index 0000000000000000000000000000000000000000..6978638ce3a3750244632840d789968d0212f70c GIT binary patch literal 7118 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0009a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0009a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..abf31d3683e33abfd6a05dd0c5d34b82a201caf4 GIT binary patch literal 7609 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/resource/student_{ID}" ; + rr:class ; + rr:graph ; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ]; + rr:graph ; + ] ; + + rr:predicateObjectMap [ + rr:predicate ; + rr:objectMap [ + a rr:RefObjectMap ; + rr:parentTriplesMap ; + rr:joinCondition [ + rr:child "Sport" ; + rr:parent "ID" ; + ] + ]; + rr:graph ; + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "sport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/resource/sport_{ID}"; + rr:class ; + rr:graph ; + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ rml:reference "Name" ]; + ]. diff --git a/src/test/resources/test-cases/RMLTC0009b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0009b-EXCEL/output.nq new file mode 100644 index 00000000..aef6b08c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0009b-EXCEL/output.nq @@ -0,0 +1,8 @@ + . + "Venus Williams" . + . + "Demi Moore" . + . + "Tennis" . + . + . diff --git a/src/test/resources/test-cases/RMLTC0009b-EXCEL/sport.xlsx b/src/test/resources/test-cases/RMLTC0009b-EXCEL/sport.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6e3b6fc618c89c16a59cd69ff058d83ea3724f83 GIT binary patch literal 4738 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0009b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0009b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..9ea7af8e7eb77824b3c4111b4a469cbbc63bc05e GIT binary patch literal 4807 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 J&Oi6={{Yi(^*8_k literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0009b-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0009b-ODS/mapping.ttl new file mode 100644 index 00000000..dcbefa47 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0009b-ODS/mapping.ttl @@ -0,0 +1,60 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/resource/student_{ID}" ; + rr:class ; + rr:graph ; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ]; + rr:graph ; + ] ; + + rr:predicateObjectMap [ + rr:predicate ; + rr:objectMap [ + a rr:RefObjectMap ; + rr:parentTriplesMap ; + rr:joinCondition [ + rr:child "Sport" ; + rr:parent "ID" ; + ] + ]; + rr:graph ; + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "sport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/resource/sport_{ID}"; + rr:class ; + rr:graph ; + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ rml:reference "Name" ]; + ]. diff --git a/src/test/resources/test-cases/RMLTC0009b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0009b-ODS/output.nq new file mode 100644 index 00000000..aef6b08c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0009b-ODS/output.nq @@ -0,0 +1,8 @@ + . + "Venus Williams" . + . + "Demi Moore" . + . + "Tennis" . + . + . diff --git a/src/test/resources/test-cases/RMLTC0009b-ODS/sport.ods b/src/test/resources/test-cases/RMLTC0009b-ODS/sport.ods new file mode 100644 index 0000000000000000000000000000000000000000..5dadbd88893d2c15f11c530850617c4560b65a26 GIT binary patch literal 7118 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0009b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0009b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..a9fdfe7e7d873551b2a1bea04592731410ca1492 GIT binary patch literal 7609 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0010a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0010a-EXCEL/mapping.ttl new file mode 100644 index 00000000..140a339c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010a-EXCEL/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_info.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Country Code}" ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0010a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0010a-EXCEL/output.nq new file mode 100644 index 00000000..29911d6f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010a-EXCEL/output.nq @@ -0,0 +1,4 @@ + "Bolivia, Plurinational State of" . + "Ireland" . + "Saint Martin (French part)" . + diff --git a/src/test/resources/test-cases/RMLTC0010a-ODS/country_info.ods b/src/test/resources/test-cases/RMLTC0010a-ODS/country_info.ods new file mode 100644 index 0000000000000000000000000000000000000000..8820b4b77e86c0a981a1011dcf83eca912e67405 GIT binary patch literal 8230 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 Oqx0wpz=SLv(M81U0CZHl+6E zx<1Pn*<}tfaB!|!{ zhrXzM5~n)-kzofLY2UY;J@#&Hs6^LtnovNwj2+KsiSaU;kK_;fup#cEcbpNDL*jE|_hQX{MmVc>Kh0cW2ILB3n z&f%?!y}%ia-i|xKUCwRFAg`OLgy;+Un!*Dce)~DOLTuTNX)O(mb zXnGDf!I=Z|wAWVi`daW$IzM^Vk2AM-Mhj$otKMu?$Vy$e&~-_9MV66R6W-OOSe0nV z$|~|X-e&cfnMulvy7Oiy0Z_NhNDSUJqhfFUm5Ez9r!1t!=Iqso6Z;|p?@`pkyFAt) z=h5+qHwPB@r3twLk6e5vgw^G*qZwW^56de{(h40?(kM<*sb6dWx)bdH=sR!i@sZ@c z$2u)_^r+-JCGWE~SaqLI_cpp|{2-AMafGgO%S!x(e9&>q0)qBwZjgMZ$yShG_8MVz zjO`Zsb8HM(K?SQZRtcc`V~ys`L2RYF8v_T6-K8(i6EU9iK2XAl71F?tlDbEQ=T!L? zV2rxfWFn^U{DL@3M6M>xloy}=Obpa_PZ-tZq|8m}Uiuep6Hc^P#8Pee{soF3(W=mp zuvX1|?i+aPFJUxqP@+dO0WZ7G#$K1Gcie5;(&MKY;5b;+s9>>cVc>FOV$VUJ2Hm%h z^13}FM^JP}aV2-{)uv;g3`~!TOId0`SPEXv zLl@K-yaGPIS|tm+pb+JUx~Lge3mx6iGmU(!Hc{P{kiX?WupSxzRE}S)K0D=k8}Hn7 z0*>Cx1j>_8+K2Qvvw3`iXo1nkd~p$!>B@?O={Wd&Qg}CNKuNxig|ScX)JR@d?K&P# z=FM<4XSVpiGT!%ozb^X_^eMZRCTwq{ETOskB9{4nKcN#J&U*6Q2#T!R-wGsk;$ z6Ptw3Mu`c$W|KzpeQ%SgnTj=u-=^azI|p8n=3647);UOc)k)gaE5{Y5 zjBZh?Cb!VvfIO81DbL^xxE)R^&^5CJiJd#0RG?3uaV_Fpxmz|t0aM@_0N{vp`M(n8 z?=ujnWGhWl$S`%a-9-i?Ei1Ua8N}4u&Y2zd{gllCVi~NaB6|~y3MOO+rG#!otGE#U&ylA}J}UsHmu=rKPX04+4Q~ZEc;MoxQxg z{QdnyLqlU@V^dO6GBPsq^YhEf%4%zCTU%SZy1E7j2gk?9=jZ3w*4Fm-_b)Ckt{!xG z>Fs-N3;+PL`|U!7lGE>|*86I0=zHIXUS=P7)Mm)X~W z6bxTTU2dnTUcNIn^2u+!QIQbD#nYHko!9v7arZIB{2r*ZI#(n9P7z-%bJ+Xn!flFRlUzM`fP`m zwIdF~$?-ly)xxOoRRxD)u@ktvYl zKCk^)T()9X1fBfYalGO=d;pgkm-yB;Oog_$k*0-v7yK=BEqtSSYdDHY=s4vvB|LB* zWR;P_p&z&8Jakj>ToVtnZ2N_D#VjB7rXjSl9@_LEQAI(8{6E9w_TA-YS4JFIAyVyE+Ea9-N= zrMfiod1^>iRmA7S)+wXLRi?`wOCvRAQmmu)2QO6Kl|!bUESW734qmTl33}^yqidoV zyw!5LSf67zxLV>dY~Bj9WR^Da3q~)zI9eKoZ?=5>T&cKx`N{S?IAL&OG&SAIA~;bI z=a`PQW~<)Xuhb{?td7+t+oZ!#|(!!W*Q9@9b#woK}E-u)wKJ!{9_ zq8g*k<*$^r%qjU9RM8rrM(XY4W3XQ;%`gI0?EK42`%+7KDTRD&7(6#-3AcQC(iIr3 z*(EUt&ZL*0BK#X!6Zjem@{L!F(R0?>^zeeLJ(ub>s|Yw%Q)XfE$IHIw;f5QJGqqIo z54NIsP>&dN)5u+!YUtu#u{q*2bZqrRt$F(FEN3fd@N_cI2hG#=&xwUb@Ov&7NoI?B zkTC8(*;+Oj9tJJOOQ4hAt85N(Zfj;(W68?$%!wKexpy>qZ`e(=Mfi(XBte6bsMWhd zMf&pEO=Hq~0S*Qms>SVP|pe_z+GX7n}zfEq~iSXg#~r)V51;XH!VTyk~u>@fiND zaqa8cjOAuZz(o8QyT>=o{q513@!ndl-bGH}S{?O`mL*)$z@FOD(DN)ld!-Mjn3t66 z+neai>s4)oyWM$vH_jg^cxS$dU#ZIh_BJ_MheHs}qktBZPh z!XoZJ885dXI<+Sj>V9>4Mk*}GxAH6!S`u-bX*^X`S#mB=g5!F^elOe2@f(?+>?Z|s zWGVO?zINgpH=H+-Y{!F?N@8&vuH{L@G4wt?`Jdct zdIu@x?L<7Q8fnm&QyEfI-h!C=aG2lxOSwMGHBx1NVFnInr@JC zUG^f7()(mK=>Pxja^n0FrA~P`u82QI0U5dh^3p0&#S$idzbenwH{Xp6c_ImgSXf)a zo&K8jcIISvaDrMoft{VrOr6;OjJ(pUzawE#sNFxKD1U>pwl}o|JF`nz!|Y8Rod4mG zB)_DK? z{myEev=2Pbbb#!8Nw=pPB4V}GGxOKdhUSZ9xMm{ClQ&Jt+Cxioo3yw=jC7rHRu!wv zg0*bbSrdZeW0lO5N#wgW{#j{EHLegQ0ps{URz7UI-m>)jZb|#Xs&zC?!~BkN*dNOy zFfb{?C9Dq@yhsFk<}fWDtHah`N4XzUiG)rG=DjY(GOg6852~b!_I((Rsni(&^CzoO zQEcOi-&YrCdb2r)FsUE(PZu`XVUFk>n|_X+y=e5M{_U25|BP3hmB$vy13uWcJ9F=a zNebtd>RPRk`{nWlTkj?DTuHf$l-toDl+W<@gp){E{avQY2m;PJQfM;uhg+AW1>+Z3{0gGdCC+{=F5Hi z6tiQKnN-M;(f4j?tnmDHJzrSmSy@>(rWq%N(4NYS-1YnQoMWyFXFJ2*QRiFWbySj@ zjQd~vhAue_OUN1Vs);&iBbvqMbe$*xaS3hLEH0|jA{9m_nm;^KvRa=Nb_VrYMjZj; z+ABP7`#C?gdKU9`($=1K2WYA_Ue8^HF|K1}>sdF6y<%ohDkbU?Fm(tgMY(@(+zYc0 z56_RsiMv%LcZL6YO_+-2b1E%C6!Yd0ooI@EK(6Cf?s8Jp&BaHPFW3nO_TNQ0PbDw= zlbi3tR%Uf3aj-yly7r^dHnyMNW$-YOd=l50BWr(p8v&FjJ^DhJIFU|gLC!9#DPBXt2mE=l4(a)y?EBK)chvXJ z`gyMUYB}zQX(3O4TAcek@aGAHtF-%vsRMtW*#0~2=hEtGaQ(1D*M8|5Y1)?WP~de^oR; zu6dEm1%K9xKeJq^#SgRl4aqQ>7a{j5#@;`u&ee-6CA4xnQs v&wpYpQmekd#NUxWM~|z({KI&W4f<`ER#OBbD{lY*5BUKjgH8eI)zyCiu$$p_ literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0010a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0010a-ODS/mapping.ttl new file mode 100644 index 00000000..3904815f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010a-ODS/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_info.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Country Code}" ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0010a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0010a-ODS/output.nq new file mode 100644 index 00000000..29911d6f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010a-ODS/output.nq @@ -0,0 +1,4 @@ + "Bolivia, Plurinational State of" . + "Ireland" . + "Saint Martin (French part)" . + diff --git a/src/test/resources/test-cases/RMLTC0010b-EXCEL/country_info.xlsx b/src/test/resources/test-cases/RMLTC0010b-EXCEL/country_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..521ed7c62222336cd691db1ce26a93b211de05f7 GIT binary patch literal 4888 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0010b-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0010b-EXCEL/mapping.ttl new file mode 100644 index 00000000..0dc73e32 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010b-EXCEL/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_info.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Country Code}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0010b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0010b-EXCEL/output.nq new file mode 100644 index 00000000..c92a08b0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010b-EXCEL/output.nq @@ -0,0 +1,4 @@ + "Bolivia, Plurinational State of" . + "Ireland" . + "Saint Martin (French part)" . + diff --git a/src/test/resources/test-cases/RMLTC0010b-ODS/country_info.ods b/src/test/resources/test-cases/RMLTC0010b-ODS/country_info.ods new file mode 100644 index 0000000000000000000000000000000000000000..8820b4b77e86c0a981a1011dcf83eca912e67405 GIT binary patch literal 8230 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 Oqx0wpz=SLv(M81U0CZHl+6E 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0010b-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0010b-ODS/mapping.ttl new file mode 100644 index 00000000..f74a4ca6 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010b-ODS/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_info.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Country Code}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0010b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0010b-ODS/output.nq new file mode 100644 index 00000000..c92a08b0 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010b-ODS/output.nq @@ -0,0 +1,4 @@ + "Bolivia, Plurinational State of" . + "Ireland" . + "Saint Martin (French part)" . + diff --git a/src/test/resources/test-cases/RMLTC0010c-EXCEL/country_info.xlsx b/src/test/resources/test-cases/RMLTC0010c-EXCEL/country_info.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..1a7a918818b01666a94e1563546a4f1db995aaa7 GIT binary patch literal 4888 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_info.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Country Code}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate ex:code ; + rr:objectMap [ rr:template "\\{\\{\\{ {ISO 3166} \\}\\}\\}"; rr:termType rr:Literal] + ] . diff --git a/src/test/resources/test-cases/RMLTC0010c-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0010c-EXCEL/output.nq new file mode 100644 index 00000000..5c7e1080 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010c-EXCEL/output.nq @@ -0,0 +1,4 @@ + "{{{ BO }}}" . + "{{{ IE }}}" . + "{{{ MF }}}" . + diff --git a/src/test/resources/test-cases/RMLTC0010c-ODS/country_info.ods b/src/test/resources/test-cases/RMLTC0010c-ODS/country_info.ods new file mode 100644 index 0000000000000000000000000000000000000000..8820b4b77e86c0a981a1011dcf83eca912e67405 GIT binary patch literal 8230 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 Oqx0wpz=SLv(M81U0CZHl+6E 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0010c-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0010c-ODS/mapping.ttl new file mode 100644 index 00000000..e0b54a02 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010c-ODS/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_info.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Country Code}/{Name}" ]; + + rr:predicateObjectMap [ + rr:predicate ex:code ; + rr:objectMap [ rr:template "\\{\\{\\{ {ISO 3166} \\}\\}\\}"; rr:termType rr:Literal] + ] . diff --git a/src/test/resources/test-cases/RMLTC0010c-ODS/output.nq b/src/test/resources/test-cases/RMLTC0010c-ODS/output.nq new file mode 100644 index 00000000..5c7e1080 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0010c-ODS/output.nq @@ -0,0 +1,4 @@ + "{{{ BO }}}" . + "{{{ IE }}}" . + "{{{ MF }}}" . + diff --git a/src/test/resources/test-cases/RMLTC0011b-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0011b-EXCEL/mapping.ttl new file mode 100644 index 00000000..70bd2c30 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0011b-EXCEL/mapping.ttl @@ -0,0 +1,79 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/student/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:firstName; + rr:objectMap [ + rml:reference "FirstName" + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:lastName; + rr:objectMap [ + rml:reference "LastName" + ] + ]. + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "sport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/sport/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id; + rr:objectMap [ + rml:reference "ID" + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:description; + rr:objectMap [ + rml:reference "Description" + ] + ]. + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student_sport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/student/{ID_Student}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:plays; + rr:objectMap [ + rr:template "http://example.com/sport/{ID_Sport}" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0011b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0011b-EXCEL/output.nq new file mode 100644 index 00000000..6a82565e --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0011b-EXCEL/output.nq @@ -0,0 +1,17 @@ + "Williams" . + "Venus" . + "Villa" . + "David" . + "Alonso" . + "Fernando" . + "Tennis" . + "110"^^ . + "Football" . + "111"^^ . + "Formula1" . + "112"^^ . + . + . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0011b-EXCEL/sport.xlsx b/src/test/resources/test-cases/RMLTC0011b-EXCEL/sport.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..08a0acd262183e7bf838be2b47f8e38a17b4e2cd GIT binary patch literal 4792 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0011b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0011b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ba72140e330d4427dea8b223afa75139079269a1 GIT binary patch literal 4848 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 ATL1t6 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0011b-EXCEL/student_sport.xlsx b/src/test/resources/test-cases/RMLTC0011b-EXCEL/student_sport.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..22193b2815b6f6a24c8706432ba1f0310ac83759 GIT binary patch literal 4788 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 pf5P~muKVXISDArI&EM8Z^#3NRhB77+B{Vc# . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/student/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:firstName; + rr:objectMap [ + rml:reference "FirstName" + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:lastName; + rr:objectMap [ + rml:reference "LastName" + ] + ]. + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "sport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/sport/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id; + rr:objectMap [ + rml:reference "ID" + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:description; + rr:objectMap [ + rml:reference "Description" + ] + ]. + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student_sport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/student/{ID_Student}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:plays; + rr:objectMap [ + rr:template "http://example.com/sport/{ID_Sport}" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0011b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0011b-ODS/output.nq new file mode 100644 index 00000000..d2759cec --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0011b-ODS/output.nq @@ -0,0 +1,17 @@ + "Williams" . + "Venus" . + "Villa" . + "David" . + "Alonso" . + "Fernando" . + "Tennis" . + "110" . + "Football" . + "111" . + "Formula1" . + "112" . + . + . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0011b-ODS/sport.ods b/src/test/resources/test-cases/RMLTC0011b-ODS/sport.ods new file mode 100644 index 0000000000000000000000000000000000000000..c10ab76d4db2736b96b91035034be0d435b51cde GIT binary patch literal 7537 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0011b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0011b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..2aca95b7ccc3ddfd25edd1f8cd73b4e2a80c7a2c GIT binary patch literal 7851 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 n@HzmoQ8J_Q{5K7MpOH4r6b9Z0%~ zIR4bj%XOFh*rJX->t!6~GxJ=ayydjpC7K|8!n1bF+1Qi^3~-LYy|c`i_7ZHyK?h~wYzjj0*%}(6^l=2lqltP zhyEYjPNfc8&P|26isd2Ei@5j#P`|CCT&8Fn^4AD?_Rn`?#1)iaP)CRp68`7bD?(V% z9S(DXgAoWj5M1#0$g|k`ccdo_=K9YlmS3PCZXhQxLQoOn=>~E~{6m%WzW}?#+>!3M z&0*v};C|KAGsr(T^;alIR~X0>{7-KART~kWAW!7~;Lcxl1jybV>s7e|zOu`{ZYtx*G@zaRehg1>g>j{iuE@E*}ZolnnIDGq zKG$vAG#Z*MYrDl4H#k0XpFDrT`cu=34a-n;K$5fHhP@whv~wHH@yIqqctdx!LB{uV z=|o`g^pCmnYAxhYy#kcUX*6%g=I)>V4-C0$gqpipvCkzZpl1bD#EYpaQ?T zj*8%a{D{lzN>SP_9YR#$`*PvKwWcmryzDx3;ZIoQ?(xPl28&W3lDt{xW03LS3BFQ^ zlAYgdl8C82s;cTIu@h#N+0j9(o#$>69{2uywDmsl;qeA|4WFKZ2lI94-KmgOITO#t z`pa*w#o-lR3GY*gCWmd$ckv zeV7EoFPrzTaQWFP-A(F!uIhG3-A$m*fc-?57oucqPM)OM-dnGYb_O1vo1NH`j`ip} zX*!t3jZq?Eo$3KkVVu*iU$Fc)?f5;}S!DiU0(8H4xu3M;_dI91@WUK`!Sh2~{HHNR*1>pPA7 zg5_uJ`905HJDwDG3i0=j|Em`Lp6RbGQvL|+Y1Q{Z m{2lpo^f(L5Kdb@QUB3*|dYS~d%`5=mBJKmm1s$P3TmD}#eB@66 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0011b-ODS/student_sport.ods b/src/test/resources/test-cases/RMLTC0011b-ODS/student_sport.ods new file mode 100644 index 0000000000000000000000000000000000000000..4b4426a882b40e30c1c07b1141f49ad1609c0eca GIT binary patch literal 7544 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

7d~0=`-BWDjsFLcmdX6g-o7UTww!!KQ4>|lTunn zne(U-8V2tUZYsR^({vsR5*iHAZ+c=mS2dt_xS#uVo1tbq+UreQO>o*WcP zs4VhC{c)GAreEK(x9N~zo_SA(;^Z8%*o8sz6E^mfnpYPX8muQ~#H8sl7jp@pn0wCSAh%2546QEo6Q zOmQmi1%0&jvew!5@QVI|U#a>uvR$WOJ76RwCecqpNVFj{HFTMC(TAC~f|pBTHwoyc zOsQ;p7Oj9!zvIY8Eg_SVm?KNeQXEE42Jhs*9IwlKiMc}Vy!yatsnKJncKQr&?ewn# z?zV~UqmLK>fD*|+ZH~Y0W+8C!MfnyLC*c^tP11hkgTG`E6yTTHfkBU0yPmJaj)=H* zA~j1%^`2?zqu{rP`j9oZ!6w(E?IkbQ{D)AvjaS21z|3cudC04pI#}+$o_Oh9#a>VCx=nVeCPMJCjptRT8)mJ52OM+!_KJQfQo z0UmbuJ$WfMf@li-E3~!RQsJO-O6r5u!xdrDhU`zJU3rF2$L5dr8K<|%f+ud?@LEWI zSMZqhmO5CXMUs?}yZjXEjHqmEjm~af3$BhBreKEfV8e` zO73QH2H6ZR0{J_+mV6S;Ftk?j1@u>=z)o$`Ox%io&^SAymGrY{2k z7Y7Aei$GQgds7FnwH=HL{(Z;^b+8OmSCuEkr@Sbs34sbSn&|gg^l^@h#sQ>!?w|{C zfR4H{NS1?xgO86-NJvOVMn*+N1q1>a8XB6Jnc3Rf!eB5@PtSmWfQX2QxVX6F3F?=%(I|}a7d3ETky$r6+TqDhaeoDUh`+= z0*6W;j}>W-ofa7^<@IdX1#og5#-$0m>Y3*q-Nm9RAk(UT$uK?fa)iz&+IOj#aeGgC z%*sduL7N&04D*?ri30X~WEadf21(zQ9N&z*u0fh3fq1?7RUDp%{XW57gkwGI{CQ6! zVNN2kLBD<3{pbPN9eW;xNAgi>XcNmDPcz!X1Z|$|BZCwPKJd z`@B_2<=e9nkxJ||25TCED~vr~f{K#|v#r%??AqE$9-%igmBFbtT03~6 zcXUsMRb^CrrLt2m$RlJMh&Yb*5Z#%3Cm;H1Bx^gT{O!gk>bEQPeKywe>E%5Qu^Xt9 ztZI)5GCS|}?VuU2qAM@fr+D?!i3`RjTyVGq?uxH7t!hEf>~1s&30B6=L}z!-XzUDS zoUGO&x_Fz?v;$283MXVU$K^vrCf>0Hh>SCCwXe$-3&3kpyG4~f4mKsVB@=8BCF0R_ zp9&Yj^se*WLAXkB&v%k?F{ipY30*6RNTv-i=pW>ie&9@>o72@uZ)F6zv;|n7!!rB z4P{7&5K)W#e;SDqZlMR#jt&;qmI&v+ z`iL-IE~vAkr85KuGX*7C4Wc49Ubld8AbaWl(jwB5(49rvWDA(p|F2ACFO6x zP)8^NitcnG{sH&9sa`<-d8)rdS=c#(;gEky%kSn0gM;CS{~?{fTL`e38N?2PUKhvz z>lrT=0t$A3*!?>zziawl)TQ=d2Wtxm49@9nZqXm#?|`=7z#Xw5$iUVE*95*GU;4nbiB64tAh3Pv5&=aeDl#2DO=!MT@ht@Eg*g~R>mF$tIAL8B6Xa| z>}ipy$trf*Wa>Sefb4X(T2}`)VdKOg4nYFD!SYNNw`7!w6aaFu35NEO|a#}A_LlzRf<0k>*ZmD>3d zQ5wQ68C#2;CJmzjnPMip?9qdhbD;z|%a1-Zlx`aapc{5p9@}Ofh|%`F`8!WdQhB%4 z*6T#w&sWbl2hVRVmQ=XN*gY7?viusmTCq?2P`>2CN-K`6MzGLU8h|#wKewJP>`+A( zB*_6(mE-zP9?@k?QM`&x8#hVNk$BK>m99-W8@(!7P#T@MA6wL|$NZ#U@w&IzsYIPv zA5)aYi+$W_5R9xkDKGEGGv%cb-B+DgxXjYPJL$S~vODe*d%6wTz@#K(MI8@~opT$N zP_te|l6Nyiw@NPRInx3XlG-m>oK>gCC{9ebHU}$PZ7hhv%myuE53v%uDm_X4VSZM@ zaiuf1_6)mNV9-Luuu9dB4{S3jHsXdjT-V z3067=*gA0|4Q141*AIsK$h(i!nh9j^WzV6=6{Os4@17AzF+G*dX3qOJntpk5g(hqO>-?CW$hUJIX{F&v~ z|CIh4mY==n&pf{_{KRi~e)Xb1GyOWFt7QK@J3o8Vzj(gy*q?>>*9` . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "{fname}{lname}{amount}"; rr:termType rr:BlankNode; ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:amount ; + rr:objectMap [ + rml:reference "amount"; + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0012a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0012a-EXCEL/output.nq new file mode 100644 index 00000000..62818b4c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012a-EXCEL/output.nq @@ -0,0 +1,5 @@ +_:BobSmith30 "30"^^ . +_:BobSmith30 "Bob Smith" . +_:SueJones20 "20"^^ . +_:SueJones20 "Sue Jones" . + diff --git a/src/test/resources/test-cases/RMLTC0012a-EXCEL/persons.xlsx b/src/test/resources/test-cases/RMLTC0012a-EXCEL/persons.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2f31e9e82e07f05fe0fe634b0fe2c2eef56bf966 GIT binary patch literal 4825 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0012a-ODS/mapping.ttl new file mode 100644 index 00000000..7ff4f5e3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012a-ODS/mapping.ttl @@ -0,0 +1,33 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "{fname}{lname}{amount}"; rr:termType rr:BlankNode; ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:amount ; + rr:objectMap [ + rml:reference "amount"; + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0012a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0012a-ODS/output.nq new file mode 100644 index 00000000..7f9ce194 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012a-ODS/output.nq @@ -0,0 +1,5 @@ +_:BobSmith30 "30" . +_:BobSmith30 "Bob Smith" . +_:SueJones20 "20" . +_:SueJones20 "Sue Jones" . + diff --git a/src/test/resources/test-cases/RMLTC0012a-ODS/persons.ods b/src/test/resources/test-cases/RMLTC0012a-ODS/persons.ods new file mode 100644 index 0000000000000000000000000000000000000000..094ecd7e28210a8f437cefad49d88a9a1358880c GIT binary patch literal 7706 zcmds6cRXBcyA@275JHq7qJ-!KQ6i#7Cpys?gHdJ%GkWx1gQEn|d+#FAMf5H@6Fqt- z2<|xFmoGWzCgPBzw?+KSKxKEnEAEpnCtN=03zcR`k}UM6J$ zbhW&?sagqCosvu{G|b&6$9LDdqkyh4HluCm^&NyOy*&$f=Kgzo3r{to?~=13s&SWx zUvPPaTG3XRl6*T{;;FsywAe#uO(2$vF3mYod>MP}bt@9b(wwggU)v2>%&i*FHq;|W z31S0K3R169m22|56cKB88X;8aqF?BM?I`<1Fp4xZTp#+K?Xvab^7IcyP<_)531r)NA7ct7%z z2Ev#6SZ9M`d*cno2u@rn>2V({G4%G2EGVRw)lA!1>w2(NL@Ry~Qnzv_Krtb+pj(^l zb*_B=5&juf=mA}JdUl{I>2+NsLk53?d?`kzpvxp4ed8$f38PW8_X4;Ea9CZb*C@fRoG7C)XabMw>q+`tLh zYB~BzS?v~-eOhY-{jOU#hX;^t33s?c}T*e_!{}5kTpb>jTVONZaW9(eGNOa~% z<%|*+S?~SP_|7{lRElW@wPPRZ_C#~cc&rF zs*SD<1)s%Cvh(p3lC}Nm30xI!C}z3505q2BO(DZ!hbCNi;*Xr7ME$QdnU1UK2#GEZ z*;1JanVFL4xxAiykdc*Jr}(rv9KBQxxSbe*0-8vBqRZEPPw_=gFgp;Nt8Z~f*DjufYR zYWL0H&XRaqr-hc0hSS~()#GW<>>AqBhMt;IQTUc=*X>nSA+;u_$?!MXGaT6hqfM`p z7(^2^uRUb_LugVBDsuRlWN10Kp4W}S%Kh`4&6`Y}R0dGsR9&`Q|ELT7xW%p=`Q5J% zJA7x*-yW7bY_6!MIt(TLsf|IG9Oswh&X zlqQ#lX)ZM`F=AzWXzhs@;S$h1n^5P}6ru~bjdwdS+7(^rQ59nYf&v>WOXlA2azJ?X z9e1q65NK79^og&Sp}us(pn+qaQ9jzdft{p|ITx}yv%WCtRT?d4=U5qkLuT((6!nyc zN5tA1^^4#!A;&=m;owV;xL3%-<@{!6xvZ%RtBA6p9sousi*}EaT5j`QpSBGw*;tQs{lSa#igoFz@`TiWqg9mQgXFym%s*kJmnZq}aqtkoJ@>tlV ze{hrsVWOcClA)pfzJlSRDwsXo*&1YjRlsI+Y@kzogcl8l#<@+U*P@vxUItZtXnt2c z<;h1rdGkzr;5GwsmZVpv;gDe?JwsO%s5Y4LL0b|{P{&HRWB<&qVr|{5nOkMH>cdDw z=Q)8LDc%QkX3j24=li>19&`Hr9&c~UwqS>uh-u#GttvTS&#}a8sSU=JCE+!(K@^%& z;}pgR+a;-xfQf>%}cyYX$12hqVTGjt%fbQTCY#j1zA2(A2&)Y z7Y|G@#NZ^J&T3Ute=5XFCiDQL6DLNe>8zIx6XcsARp%b|b5{SPAR*CxhnNy&r*e+8gp45CFh2L&NGNZ>-;Q|KO+GxHZ=$1szef*>RV%-ywUe zMVYOBLxoGxDDMTZlP&JcTX0FHQQ2LagWzJ@a5ch>M>{kwfv;=ihBuNo+e}R=`Pyv>I(acDF>u7XUmK>2NoYcB+jPP#d46z=|Dk_lu_zS;`h#iJWWQMUUuti-)SU!=bdVG(z)}u3Mup z%y4b|$!B!Z=m%cs<0GYBsv9?$;-9d?Gm55It7fB^+)avg7j$ZXSTY6rY7^(gG`TZhYiS zotKh>#gnDzVJ;VVEJHDEEk)kYTsOy?r=*3uie0(r05$)em!9FFoHXUhvym zQ3pR*$f=k~dt0`4TY$sR32R}e1?R4I9>%_g+OTLTp2b?GOndLPa6rTJ@`mL8Tu1-> z$J~XMB!_hxk0=z|Auke1U`8gay(xy1T2s#sb=jHO2lv<4*X1jb+Euq*?{E0cV3ySz z={e&p=O6C1!qg%zYId_+xXj|ly7mXc#w^z3KdV>Ch*+Yp?Ru6|r4F9B2cvl()g2TZO^FLLpN?Xx>lIzN5b2U70 zkV%kzBI^GtJ1q;xNA}b;z-CHRpVUBrQ{RT8)>);Y<0!h&`FqmxHFaxi4 z7OPt|8miFF-%x=l7c+HChTEIPH5QFd?rB&|YC?$vdXHS+92#^*(C5?i0f%)6R*Dhq zimMzi@V+2NRt-ca(mg?wOEWi8o8WSSEW6*4GDoJ0prpGbTMK?h+ZfA@k`0; zzPiE;surYa-npF2bIV|<$9QI7|2;GPE(1wSUj!aci>XBLttc4!eaSw}>z_kJg)KIu zappWSDzRi!9`<|`H@_r1!1Bdvy6Hh0AuDrx8aFg2bzj?q-*(neY=`b;J2Qd0&g}%R zKz#V)NKvm2D^<^)rI-1GHMyp~>9wRvfg^YlwVLc0Q#&2#$z9#6UIgTF#P?GGpN86$ z)q`!$zE#d#j4SttBmrzoJglV+R`Y5>+uFw2ELKdyN>R+Q(qPY2%w$i=*yY-b4DOEb z3N73Vze{IrC(f1)GHf?GHUP$H$^tTj8}P=w`p)9R*R54ss>%3H?$ViL*K(P6!}MxF zeFt&sF09m&=z{0^9*2D96s!IXb?Obq+8K2@XPNbJr?mRYFLX7-7D|@5!cH(Ngk}US z&V}7zvm2@J>?n_J&}jh%Eej*P>S0a^tPmF42O-fk{PWzXXEbdIplBBQ(Q%<44p=5sGhj%64F9-7T5 z`nXs>b>${s_oL4DuGCa(O@gaeP~1ICI$9Pas?S<2?a0;pV+47;$1t@?>OXde#BDBN zG~bJeO4(SXS&WE*tKuARL78vfE~8eL=u;vqXjs$U<>nbDA=F<7H`p^85Ef#=s|8mz zCUi2{sap>TWF!&aZP(@TpL=sZ>wO&ludi_dKzc@dm_G z0;q^27;-wCmSbpP3lKTC`&xxHea5pyaFuT9I5`}_YiMY;sFeT9Er0JJ90AJSIG}v= z)kco0MCuj@8xx2z*xH^G{(Z;+gO~>?D@o(yQd}8od|4SuRn&eSwOwLkpx&qaPg7Al zb!7$hXZ-y9LPA24l9GywifU?Vy1KeRAkfOn%HH1I&CSin$0sBtBsw}eF)=YCBcrge zu%e>k{rmT=t*zbN-NVDfQ&Urmi;JkbzrVkKadB~Vh|9~5VN$ecXc#lHl49yklbaJ$ zb_+~|o^!Sz?%-e&q0e4Ei=$%Huw}FZK{cb#m%3w_8_=g`zG_|W_Lnqp8n%UhlL&n0 zMl$v7_#^I8!UvbcqE8hS^YPP*ZOes^4S*A_881~WNg#IIB~m3&Lmo{t<4j_G!8_t) z1(lX|WctrEHb>Qu=z<_!Yfw#&MyPJ_&Ghb>gJ+!j#qwm; zdWZ}@-GrnB`SL`1=ZUE^sYBhk{0$vAe_;8=%}-@6gNO;x;7dOFlw!p~2vknc3RJ`3 zS0;$$TjLWUHs^WX|G`E{CudA1T8UL8FrP9f1ZIM-f8AbX{*neP`c377!;yjOK}$?f z^JJX0)?tp3-PUGYPMa#wjcasHuV}WW`_|H6^6A#H#8((UXrfEcTmES^jddl5a4w|$ zp{~OiJw?%bi$UQ>^&WUEl)9sbqmmksi0YvIX3fYp8KyD%QL~Rd4q5LSOWsFlET0Ir z)`(H%Z6}RSW=qed7EAZMpI+RG(~WEo7%x7$Zx93|8M7tr4`P&Bn6J|dkBxpPhOoqn>wUtUIJ0 zvy33!y*%5Et}l;OSZBF&a*$}sr9nl%(G&rcw=b~hD{$8`52$48JnX!gJ`rA7eNssj z(eS8(!9&nwmoGe-4pQ)5$nsOz#Pyn@D!)N7s)^nl{SPLaPS6H}95DmmuUfaJz~@iG z!4sF7=|egmwqznuFc00bf#d=l7*!ddJ!IOWs8S zNwCa#%HO{SXjdss9Is|E%r5MuGHmUhcto-qSXVx67aQ^Ux@)pP-qttF&%rlpkY(vH zzH@obLh+(r<79cMy-+`E@M-_%k_m8-fRoQ#l~#Y3EsBg*+!y;6on#>4|Fc2K(Kn2I zn+c{-oeWf!LUlKvDM=QK8+re=R$cw_J*ZFv2`I!2Y>u$|v(stM%?Y!En%jZw?M;mB zIDe14s&aov!l6*>e@5N=1qy6qY!0&L6bHj?jA8cwa7c<@fMHM=0*30vBK`sQt5dy# z{PU^)3T0*uHHL%!DJ{P`M|-$29PvM-^H&pL31S@~64 z`pPid7(>8jAbU86ovB%GbT0(u41Bkr_<{PyML7WgJEpE$%ao=^{@MV}y#%7!hVW=j zmCXFLl#zvEDIR2aW#XnWRYyp9ZnHWskeQ)N#-eJK_3?X-+N`O^ljGH__Y&^zTKZ(A zu)K4Gum~E)`myulS@&0@GdU&fKY3n9*ZfJqRtE25WjHntb(lE#aM6uIux}p6OiKm6 zp8Cr9m_|5c=5bzXIj(WFYJEU8O{AA-7>+`hFWiUfosxVTPwc*mU~}5$e7jNouuu9E zqaD`p{_)vByzC`|&-JBSdOk?E7z>vzpbKKSZ5K)Zhfxyu*7LRZLe7^f7aaYUcjikf z9VD$q`!dW=U#(Q`-P4dRxl;McV~ZgGYW?`2H2L>EF%nez6rZV!vCAq+asDTdD2G)P zt!UZGMd)`d>^E4gZCSxWr$p+POe5^c5=Q04OLU6Uxyec?WXtSDULO5qVY{9`wEC=~ zq8G=6n_6g32`PiYRL?!`xOlen$^F&&7HA!l0-t&RWMJfyOTXkU^Q~I4&immlV)HNT z?xDrRwOup2s7Z;C8=Gor@>j4}pL=2t>^FaP1c>RVawYP%_q6bjDxJ2nxxWK2R-dfr zt-+quwy<)oo5uTMVnZqU)WLV=5J8E~L_g_$q~1r%wcW~HNqB|7q%r*mC+X0B*(>{*#1)^rrn~SjbK27cxIp6W{mAPZ+kxZ{ zT#O`M#&qRK+nf@$17s;4_}JJ0z8C5gHn z_?-j&JIfCg8roG6`Vl**8TfmJ|Eo6qb((%4|K)*yd}cu{mcKLo(2C!)T&cy6F!}|{ zf76cNlU-HjAMxfFWIt=k?|H6t;YWP>1ib3f9r<(hKuyR` e!GfBuUzTZQc>t=Xgobtt^#Y-aPRgCDPyYpb6L$Lm literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012b-EXCEL/lives.xlsx b/src/test/resources/test-cases/RMLTC0012b-EXCEL/lives.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d8374f0b1ff2de0554bd99e7ccebcec5b89251f5 GIT binary patch literal 4830 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 jl . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "{fname}{lname}"; + rr:termType rr:BlankNode ; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "lives.xlsx"; + rml:referenceFormulation ql:CSV +]; + + rr:subjectMap [ + rr:template "{fname}{lname}"; + rr:termType rr:BlankNode; + ]; + + rr:predicateObjectMap + [ + rr:predicate ex:city ; + rr:objectMap [ + rml:reference "city"; + ] +]; +. diff --git a/src/test/resources/test-cases/RMLTC0012b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0012b-EXCEL/output.nq new file mode 100644 index 00000000..0d556bbd --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012b-EXCEL/output.nq @@ -0,0 +1,5 @@ +_:BobSmith "London" . +_:BobSmith "Bob Smith" . +_:SueJones "Madrid" . +_:SueJones "Sue Jones" . + diff --git a/src/test/resources/test-cases/RMLTC0012b-EXCEL/persons.xlsx b/src/test/resources/test-cases/RMLTC0012b-EXCEL/persons.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..39776b59ae57590522875dcb4bc05b00a8f59a1d GIT binary patch literal 4825 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012b-ODS/lives.ods b/src/test/resources/test-cases/RMLTC0012b-ODS/lives.ods new file mode 100644 index 0000000000000000000000000000000000000000..b227ed55b44ad9ee25562d98e258beba30f1db7f GIT binary patch literal 7800 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≫$44ufA0(0Q*!bn7Gu1eQm;{XD16cX6?Rv{H8J;EW39HsoH+|-Jki%{* zkHo;Fh>!#xEVz>h^vq#e>Z-%mUPZecQHq333BGw%ie*}Qyz;E9tQ*selR{`$Wk&8g1A=qZdEspPvuE`ACSVPX1c!0& zq;Kew!>E{?@pkpS4w}eji8+182Pkm~AFo+nRHa8Lj7&5)1}a&v%?d-!d#$1m(c{`H z+z5Q3-qwLJ? z@;GvTP{~{2zg`orq8Uu7C5UR#JgoPeVh<(HVKZ+zDH>-{d-4T4(ZF6wG;}I?*^k^} z2evY+H;IR3ey3~i`Hl6hU}Ab#6Dg0l&eyW`rvz>2@}!4fh;n?TOrBuJDK>XjE6-SK zonD(AKM;&?=(<20Pa)^%O$?Rt9vCMw=`2Xgrlxoe^)AZqAO9dT|3iFx81xPGZLa@# zn0obq=X+=&Z-02)^H1Q9JKQU4_&re3e>{2pC+*2M=rAcA9ut5f&9VAUTqJ) zM-wh`k^c8);T!6AF84c%1GxeDo#*{0%XbtC%2g5i9xBKw{vYM`CvEt7n7$+ba^2rQ z2mgZUyH@<3^sw3$h=zl xNAmn#W06|*Z4!S&{#ZSb1N%b+BZupkWm-)U9l7yBLAj0m10aje`TeU;{{_O9i . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "{fname}{lname}"; + rr:termType rr:BlankNode ; + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "lives.ods"; + rml:referenceFormulation ql:CSV +]; + + rr:subjectMap [ + rr:template "{fname}{lname}"; + rr:termType rr:BlankNode; + ]; + + rr:predicateObjectMap + [ + rr:predicate ex:city ; + rr:objectMap [ + rml:reference "city"; + ] +]; +. diff --git a/src/test/resources/test-cases/RMLTC0012b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0012b-ODS/output.nq new file mode 100644 index 00000000..0d556bbd --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012b-ODS/output.nq @@ -0,0 +1,5 @@ +_:BobSmith "London" . +_:BobSmith "Bob Smith" . +_:SueJones "Madrid" . +_:SueJones "Sue Jones" . + diff --git a/src/test/resources/test-cases/RMLTC0012b-ODS/persons.ods b/src/test/resources/test-cases/RMLTC0012b-ODS/persons.ods new file mode 100644 index 0000000000000000000000000000000000000000..094ecd7e28210a8f437cefad49d88a9a1358880c GIT binary patch literal 7706 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012c-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0012c-EXCEL/mapping.ttl new file mode 100644 index 00000000..ffcc65ab --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012c-EXCEL/mapping.ttl @@ -0,0 +1,31 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:amount ; + rr:objectMap [ + rml:reference "amount"; + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0012c-EXCEL/persons.xlsx b/src/test/resources/test-cases/RMLTC0012c-EXCEL/persons.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..39776b59ae57590522875dcb4bc05b00a8f59a1d GIT binary patch literal 4825 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012c-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0012c-ODS/mapping.ttl new file mode 100644 index 00000000..b282920b --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012c-ODS/mapping.ttl @@ -0,0 +1,31 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:amount ; + rr:objectMap [ + rml:reference "amount"; + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0012c-ODS/persons.ods b/src/test/resources/test-cases/RMLTC0012c-ODS/persons.ods new file mode 100644 index 0000000000000000000000000000000000000000..932b95161bc5f999bf257668b771857e5274c296 GIT binary patch literal 7706 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012d-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0012d-EXCEL/mapping.ttl new file mode 100644 index 00000000..c0dca056 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012d-EXCEL/mapping.ttl @@ -0,0 +1,35 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "{fname}_{lname}_{amount}"; rr:termType rr:BlankNode; ]; + + rr:subjectMap [ rr:template "{amount}_{fname}_{lname}"; rr:termType rr:BlankNode; ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:amount ; + rr:objectMap [ + rml:reference "amount"; + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0012d-EXCEL/persons.xlsx b/src/test/resources/test-cases/RMLTC0012d-EXCEL/persons.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..39776b59ae57590522875dcb4bc05b00a8f59a1d GIT binary patch literal 4825 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0012d-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0012d-ODS/mapping.ttl new file mode 100644 index 00000000..fa4bc633 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0012d-ODS/mapping.ttl @@ -0,0 +1,35 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "{fname}_{lname}_{amount}"; rr:termType rr:BlankNode; ]; + + rr:subjectMap [ rr:template "{amount}_{fname}_{lname}"; rr:termType rr:BlankNode; ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ + rr:template "{fname} {lname}"; + rr:termType rr:Literal ; + ] + ]; + + rr:predicateObjectMap [ + rr:predicate ex:amount ; + rr:objectMap [ + rml:reference "amount"; + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0012d-ODS/persons.ods b/src/test/resources/test-cases/RMLTC0012d-ODS/persons.ods new file mode 100644 index 0000000000000000000000000000000000000000..932b95161bc5f999bf257668b771857e5274c296 GIT binary patch literal 7706 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0015a-EXCEL/country_en.xlsx b/src/test/resources/test-cases/RMLTC0015a-EXCEL/country_en.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..78febc108404ec8ed7f2022b6cd35f642361eedc GIT binary patch literal 4789 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0015a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0015a-EXCEL/mapping.ttl new file mode 100644 index 00000000..5ff37ee7 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0015a-EXCEL/mapping.ttl @@ -0,0 +1,47 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_en.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Code}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ + rml:reference "Name"; + rr:language "en" + ] + ]. + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_es.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Code}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ + rml:reference "Name"; + rr:language "es" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0015a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0015a-EXCEL/output.nq new file mode 100644 index 00000000..a80dd6a3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0015a-EXCEL/output.nq @@ -0,0 +1,6 @@ + "Bolivia, Plurinational State of"@en . + "Estado Plurinacional de Bolivia"@es . + "Ireland"@en . + "Irlanda"@es . + + diff --git a/src/test/resources/test-cases/RMLTC0015a-ODS/country_en.ods b/src/test/resources/test-cases/RMLTC0015a-ODS/country_en.ods new file mode 100644 index 0000000000000000000000000000000000000000..5c27133ca49f5f5aa371bf5e4f277ecec8c97be2 GIT binary patch literal 7638 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 Qz(wo}f}Ph!SI$2D7g%ds%m4rY literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0015a-ODS/country_es.ods b/src/test/resources/test-cases/RMLTC0015a-ODS/country_es.ods new file mode 100644 index 0000000000000000000000000000000000000000..6c492185cac6862d14cd20a6234509461cf44dde GIT binary patch literal 7666 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0015a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0015a-ODS/mapping.ttl new file mode 100644 index 00000000..7bb798a7 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0015a-ODS/mapping.ttl @@ -0,0 +1,47 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_en.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Code}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ + rml:reference "Name"; + rr:language "en" + ] + ]. + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_es.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{Code}" + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ + rml:reference "Name"; + rr:language "es" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0015a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0015a-ODS/output.nq new file mode 100644 index 00000000..a80dd6a3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0015a-ODS/output.nq @@ -0,0 +1,6 @@ + "Bolivia, Plurinational State of"@en . + "Estado Plurinacional de Bolivia"@es . + "Ireland"@en . + "Irlanda"@es . + + diff --git a/src/test/resources/test-cases/RMLTC0015b-EXCEL/country_en.xlsx b/src/test/resources/test-cases/RMLTC0015b-EXCEL/country_en.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..78febc108404ec8ed7f2022b6cd35f642361eedc GIT binary patch literal 4789 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 . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_en.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Code}" ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label; + rr:objectMap [ + rml:reference "Name"; + rr:language "english" + ] + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_es.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Code}" ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label; + rr:objectMap [ + rml:reference "Name"; + rr:language "spanish" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0015b-ODS/country_en.ods b/src/test/resources/test-cases/RMLTC0015b-ODS/country_en.ods new file mode 100644 index 0000000000000000000000000000000000000000..5c27133ca49f5f5aa371bf5e4f277ecec8c97be2 GIT binary patch literal 7638 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 Qz(wo}f}Ph!SI$2D7g%ds%m4rY literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0015b-ODS/country_es.ods b/src/test/resources/test-cases/RMLTC0015b-ODS/country_es.ods new file mode 100644 index 0000000000000000000000000000000000000000..c18de13b950bb8ce1b637bf388668de55559cbaf GIT binary patch literal 7666 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0015b-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0015b-ODS/mapping.ttl new file mode 100644 index 00000000..c42345c2 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0015b-ODS/mapping.ttl @@ -0,0 +1,45 @@ +@prefix rr: . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_en.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Code}" ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label; + rr:objectMap [ + rml:reference "Name"; + rr:language "english" + ] + ] . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "country_es.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rr:template "http://example.com/{Code}" ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label; + rr:objectMap [ + rml:reference "Name"; + rr:language "spanish" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC0019a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0019a-EXCEL/mapping.ttl new file mode 100644 index 00000000..8dbb48ec --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0019a-EXCEL/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rr: . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rml:reference "FirstName" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "FirstName" + ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0019a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0019a-EXCEL/output.nq new file mode 100644 index 00000000..d07559d8 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0019a-EXCEL/output.nq @@ -0,0 +1,2 @@ + "http://example.com/ns#Jhon" . + "Carlos" . diff --git a/src/test/resources/test-cases/RMLTC0019a-EXCEL/persons.xlsx b/src/test/resources/test-cases/RMLTC0019a-EXCEL/persons.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7ab4510e23aa646dbb7bb4620318613ff2929f64 GIT binary patch literal 4831 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0019a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0019a-ODS/mapping.ttl new file mode 100644 index 00000000..64075bda --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0019a-ODS/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rr: . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rml:reference "FirstName" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "FirstName" + ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0019a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0019a-ODS/output.nq new file mode 100644 index 00000000..d07559d8 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0019a-ODS/output.nq @@ -0,0 +1,2 @@ + "http://example.com/ns#Jhon" . + "Carlos" . diff --git a/src/test/resources/test-cases/RMLTC0019a-ODS/persons.ods b/src/test/resources/test-cases/RMLTC0019a-ODS/persons.ods new file mode 100644 index 0000000000000000000000000000000000000000..a3832c4d85b1c7c9471b8e4d583ac563c72fa3bf GIT binary patch literal 7951 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 . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rml:reference "FirstName" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "FirstName" + ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0019b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0019b-EXCEL/output.nq new file mode 100644 index 00000000..d07559d8 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0019b-EXCEL/output.nq @@ -0,0 +1,2 @@ + "http://example.com/ns#Jhon" . + "Carlos" . diff --git a/src/test/resources/test-cases/RMLTC0019b-EXCEL/persons.xlsx b/src/test/resources/test-cases/RMLTC0019b-EXCEL/persons.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c492cc6a8003a915325d59451542d383b82e1a1c GIT binary patch literal 4867 zcmaJ_1yoes+6IQ9OKCp9p;JN_kd#J-lyC^?QW>cMq+tMQX%LW5Qh_0*OS+L3328(^ z1c#FF&glKGT<`yV?^)~2th3I$&)Uy^_WM51)=>xGQehDg5Mar9@M&XR3S#tsb5~m! zTu=aWM<%>`*das`w(Ccf>$CFaiLgqBS^taL8x8m)Fb?5}9~KTKhle88+++ZLzApwEc8d4!ATzZGGX?p3te*6T zUyD%ao}lDQ8RrqIJA1;E}&`{9aj+|-*qUPuCB>F(|E+ST(No&b=MoE@&-l$^Q>fz9N+=-lL-x98pz zLY0suN}h9KuG%JS;~@mFfUtWR9uhHxJV>`pYAKA_6PyAxUmx%(!cMd3-JnWsOuFsQ z3e=AOvN*{Ix(Ng_kl-0pQ=i*jX(EG?4`veUsxva(Q+_w3lpUn8C`8ibES|e}PJKQt z-8yVOl%J;3g>ZYi2tIl{^1bxsGu9~_oTD*I#*?u#Yb9jrXL1+W%sVIFT~rdlnr0P& z&+BrLxE0LS-PD4{%rUMr4$xtxgmLPnul4vb1Lta;3>>_M+wc>o_w(Wylr=Kzjk&O~ zu*ClnWs1uvTRJ;qK+cTQc0g0GYxk6@4V6A^qR8Fl@_|l@x<*mVgRd0%hWR24nS`2s zH~V78OI$`~FA;TY=TRdm-_LoRH76dezi2Shea(AcwrPS-*EY#a{V!?MDoGlwlPN%* zML_{j&x@PwS4H zo$OM;OUYN+r~5t5F;BRTu>_1GKsTFH6y+Y^ugH~;wGdp;<$@trYD%yn*|x1+q8ac& zD0s)p;Y@T_7CK+*Q2ZQW>a|2nHO65gt=YZVu!f@P{tO21kz#O)3fYU?M5Ex1#_I3c zNQ!>L6DA0E^McvJF(B<2YHQC5F*fh&8Mef-b5Ny@fx0IiJR^L{%AzTi+Ns8W##L#0 z{}^>Dp*0@T&gmXT{hDi5u=VI{fBTh3VpQ_tM*PE$q>QBv?#}RjjWvxF5#Pqt0O^ii zLsocua-PVXPO#t@c|-+ip*VFu4I)TXhl1l%=lKm2c@dmk0EOANO-GPV<<+4Bn=DBpy1Z(~k7PQ4OQFlm z-*d8788j%hh>6?Nlan2gMF1`<7{n}ag&UmBMw?mfj(#Rb@j#+G2 zz^CRd?|etO&2(}2no^0`7}@b$O7si$VF=GgRJ#L`e+YJ(R_&Y~=gv};WcLoVLsPz8 zQ+>*NeSmRwftF1jdKgyOSsYl%rMU?V^b6Nm-|751sGr^!_9VUPLby}^NQ?sd0WkEQ zlP?9}u0vlENvrncc}9*YeABmu59Y##@8r!+WEpJ;w$WJH8vAt|424Mf^sTCF(#26OJPBl->d{eyC|Xg~}Me!gWDu zFZ%vN_~Y*kyXl)GQ!ffLV!1Ci8wn}#p0}!wEnwIitsP1gjNaka=yLh@>?Qxj-p5X^ z4pvT14jBGE)thyk6(aFlfYNzu`>Ji_%V)5{AHI1jpgdmvu2Qqd*rqQo)grbN|h(?>lpQQIu#QiwoxP)O$6%B`-j z6Zz+lN)M)TPy0DbRABZkPEiaDjy(-P<#@>RP_{I?mDwpQ!AGQlPf@v`@bggOF7J@E zlWQcV204Mr0v@E?+wvs0V>&-h%(~^qq;AMKQVpSt5{OV-((hyDHn+bcf6*8@_ce4yCoJ^?UG+Qx|HK`te^ zU~G_sBlZ@%gua%Nr$RB~HBliKh(e0W<6{5xq6P*nq?@=>W8NLpyb^l7Q=nDF#(1zBpQIx=i`923VM6=SwSe za(-vNzz)cc<_hOov|7A>d-yS>Ug9~=_Z#4Nhh9WJp`RSX2~+y?JV~CI9JAsqLp9_q zD*e0v5jF-Y#1PJ%&uAc||FM}e{DSJ2n!CK&ekr?nO-x%2-94vPIqFiww~oHq94%jV zevI9HXL+PkEMcnphrhsICPcQ|BZ(vLzqQ;x*c5%b8Q!T#f>)G-`=qVQgP<94{$*#0 z{_arD$Hn^`vE|pU7B^8&2hyqu8drV0X(V9P9w%j**9Xyh{l2duc;}Abz`oje2KErO z9?}Hx#*t5_5#Iiz-1xuUmdfpuWhz#8?WH6Y( z@7vnC!3BT*2xBTy^W8g6vtktf3uPeGNa0W=hm@9{k@7mf145K+(+zm25|yMJ!fKFE z`TXoVlbVq(hc#U&tABad%HEgLmR$E|O+Uo&}Pg*%t|n`QBr|d^~xqmr!|24R`8LNxu6L2TFJK-)adMM3C}N%1$Kb zq}C~Nkmr6zvGNO3B4VBMFVsoWKJn*@-zZk+jV90G?!jB!3NnzqP5Ep|{$+-X;v|GFKmADZuZ+ty$zGUuzu#KxV-9{(hFc5?Ca7ZElQ2$IkDT!daA8 zpjjS&E&V!Z3?{jQ+@0ThIoaDkzpuPS*`a4TS;ek>7+ZD22JDhu{;J z?;ZPX3!jc!%N&Lq$5MD!ujW8GX%7Mk$^Ci-7%XG)x4W6YecN7!+R?^ND=T{J5u94R zb=-Dw$(lb){xGDvz0A^hLU8Jec_v{&dw3C)Y}F3qeV=*<8%f3)SqlErSab7@oR8xI zg>D5c56Qa2#-aYfM=qgCx|FBl3JWW@EUWF~QXAJLGWi9cMHS?FsNa`#Ts2Y}I0TIC z=3yh>?NF6kKgM?D(R5;}`KD|tZ(jUrrjmBke59EsT_peMqogDE`rHffnq9me{9(!? zaiTcV#ybMy@v3`eIP|jP(GRdk!+My-9=CM*vFW)kijiQy?Brcw|-ep5NoL zr0wlSIbS$w6cf9?BNuR{yiRy}&+>y-&*xj1I_j6{MX-TxHJ;if+eMbZGq{3#!uNA{XfHQFL5ATz*N4*i^x_z13u2WN3RDTllCT+~HH zBVpl&Mu&sV_IBIs&mZY0mb7_2aMR*+)3`eFK$ubXutIqkC@GKx6;%toj;m|4MG)`cx2d(77KO6xiUg81q%Th76n zoL)*L7Rrz(Nhds*1~hEr#IW8`gZ;z4yq2u)D_Bm4bVoxwt~J`kpRS5Aoe5f0H&G~A zRu9-?VDujhCbw8PRbrZ7`Iy}uAdQ*_z5)772_z!IzOJ+uTPIZ . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "persons.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rml:reference "FirstName" ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name; + rr:objectMap [ + rml:reference "FirstName" + ] + ] . diff --git a/src/test/resources/test-cases/RMLTC0019b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0019b-ODS/output.nq new file mode 100644 index 00000000..d07559d8 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0019b-ODS/output.nq @@ -0,0 +1,2 @@ + "http://example.com/ns#Jhon" . + "Carlos" . diff --git a/src/test/resources/test-cases/RMLTC0019b-ODS/persons.ods b/src/test/resources/test-cases/RMLTC0019b-ODS/persons.ods new file mode 100644 index 0000000000000000000000000000000000000000..2ee6e22fdde16e7dffe9179727525a0aacf6d6fa GIT binary patch literal 8189 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0020a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0020a-EXCEL/mapping.ttl new file mode 100644 index 00000000..6e661f6e --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020a-EXCEL/mapping.ttl @@ -0,0 +1,27 @@ +@prefix rr: . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "{Name}"; + rr:termType rr:IRI + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person + ]. diff --git a/src/test/resources/test-cases/RMLTC0020a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0020a-EXCEL/output.nq new file mode 100644 index 00000000..65071a55 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020a-EXCEL/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + . diff --git a/src/test/resources/test-cases/RMLTC0020a-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0020a-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d681ff96b954c5b565049b132c6ac712f3bc1712 GIT binary patch literal 4798 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 EA3g~W)&Kwi literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0020a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0020a-ODS/mapping.ttl new file mode 100644 index 00000000..32697573 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020a-ODS/mapping.ttl @@ -0,0 +1,27 @@ +@prefix rr: . +@prefix foaf: . +@prefix rdfs: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "{Name}"; + rr:termType rr:IRI + ]; + + rr:predicateObjectMap [ + rr:predicate rdf:type; + rr:object foaf:Person + ]. diff --git a/src/test/resources/test-cases/RMLTC0020a-ODS/output.nq b/src/test/resources/test-cases/RMLTC0020a-ODS/output.nq new file mode 100644 index 00000000..65071a55 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020a-ODS/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + . diff --git a/src/test/resources/test-cases/RMLTC0020a-ODS/student.ods b/src/test/resources/test-cases/RMLTC0020a-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..8c7e00174af581056a58c5e0c65547a1cd5a272f GIT binary patch literal 7939 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 M1xD}dkiSO$U%2AYhX4Qo literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0020b-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0020b-EXCEL/mapping.ttl new file mode 100644 index 00000000..1ccfc0f4 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020b-EXCEL/mapping.ttl @@ -0,0 +1,24 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rdf: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rml:reference "Name"; rr:termType rr:IRI; ]; + + rr:predicateObjectMap + [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]. diff --git a/src/test/resources/test-cases/RMLTC0020b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC0020b-EXCEL/output.nq new file mode 100644 index 00000000..440d9a9d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020b-EXCEL/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0020b-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC0020b-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d681ff96b954c5b565049b132c6ac712f3bc1712 GIT binary patch literal 4798 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 EA3g~W)&Kwi literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC0020b-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0020b-ODS/mapping.ttl new file mode 100644 index 00000000..c377f7a3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020b-ODS/mapping.ttl @@ -0,0 +1,24 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rdf: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ rml:reference "Name"; rr:termType rr:IRI; ]; + + rr:predicateObjectMap + [ + rr:predicate rdf:type; + rr:object foaf:Person; + ]. diff --git a/src/test/resources/test-cases/RMLTC0020b-ODS/output.nq b/src/test/resources/test-cases/RMLTC0020b-ODS/output.nq new file mode 100644 index 00000000..440d9a9d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC0020b-ODS/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0020b-ODS/student.ods b/src/test/resources/test-cases/RMLTC0020b-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..8c7e00174af581056a58c5e0c65547a1cd5a272f GIT binary patch literal 7939 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 M1xD}dkiSO$U%2AYhX4Qo literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1003-CSV/Airport.csv b/src/test/resources/test-cases/RMLTC1003-CSV/Airport.csv new file mode 100644 index 00000000..ca3b1a91 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1003-CSV/Airport.csv @@ -0,0 +1,3 @@ +id,city,bus,latitude,longitude +6523,Brussels,25,50.901389,4.484444 +6524,Athens,78,37.936388,23.947222 diff --git a/src/test/resources/test-cases/RMLTC1003-EXCEL/Airport.xlsx b/src/test/resources/test-cases/RMLTC1003-EXCEL/Airport.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b4dd2f923c034278a88e21adaadab826e2b81ac8 GIT binary patch literal 4910 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 LUo6zSA8Yq7oJclW literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1003-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1003-EXCEL/mapping.ttl new file mode 100644 index 00000000..7aa6642c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1003-EXCEL/mapping.ttl @@ -0,0 +1,27 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "Airport.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{id}" + ]; + + rr:predicateObjectMap [ + rr:predicate ex:city; + rr:objectMap [ + rml:reference "city" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC1003-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1003-EXCEL/output.nq new file mode 100644 index 00000000..31168c83 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1003-EXCEL/output.nq @@ -0,0 +1,2 @@ + "Brussels". + "Athens". diff --git a/src/test/resources/test-cases/RMLTC1003-ODS/Airport.ods b/src/test/resources/test-cases/RMLTC1003-ODS/Airport.ods new file mode 100644 index 0000000000000000000000000000000000000000..548a895f94e096f2cad29dc0b8fb384691b319c1 GIT binary patch literal 8305 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%0D`}>*zh9{-Y3?4o_*A0Z*6}q~Szo5U>wP2` z22E39Rs9RP7LKRVDYYLL*4|9{wKdHvow`VqylW7MJaXQCI5hh5Lx41*Bt^&SxO|W} ze%ywOKvGP(WH9F;qj#*U)lsVPIe%}ee-D?Ib#&W^`U9Qe9nsQH?Q0&AaE)Ae>4#GT ze%~%rKdN(TQ{iabET~X3jNyK_M377bF{Y9r0iQ-)Z~Uz5g1n_<{YO2zU~gO!Su`My zpc?Ndo}^sz_o;5IO@xF5+vZ7xO!k@)F+o~1w63*002Az^%nEA8pi7-~KrD(yl1fn2 z#n2i)4!-~G%X@d?qM7SSZuw-c=syv3nKzN#rSrYZg0KCMAqAx?L?lfiQ}VMgi{vV7 zZfwm^n@3usjZ`&s9FM-C>>+0DQY?m8eBu}yHP1^X1qqxYB{CTe1BV&1SMKLuv+h6% zt7x{5UO2+y(^Cu)>Eza|RdS;+hP^jpifHJJyEhps`Cc6D#M23;Vg)anoKW`!d(aQ~ z1-!l6p~cNN$f+^ymsypviCZ zFljkT?rwa|$r)dMYrCNNl}yLH%C~5ag4tx$=7}$+?k1f3n<)A)L~Y%Pn83sq*gRB4fG1fm{T^#}~Mtt%Cz4v)`f8xvkwSRAO@rr#hFOqoAB(`V1G8 zlmx}UUJ-w?vpx6z6k$}n81xC4eJxg&8%G^NpHqgre}Nz>dtd9@JGjRztZC+Hn2j)t zOvfNAcCW6KE(q}TUQqWh+sxvKj3_lF?_trVNwQf2njb5a-LM!KNX0yw^xe1Q`ot@) zjR7jn3lUx~u;v%p5Z)TpV(?ZPGmFs>W-Dylfhh^3UdJmZW<43;FV#U~6w2)I3kYOT zG&MiJ_Ek`OC@Q9G&*?@h0}MKMhwT6*9e+#gVAShy)A1}LZBNZ*2Ik>QBnJ%wf#GDlTboh-Xl5D6{ zn{L4MWQ_BfiO<`X`&t)&`TJ6FGC~9e0B}M2{9g(4_x1#JdDEFIGE7|^w~)a|+t$s| z+{p~&0O5pwzvOUsvI$jJmA{Tlag|eF2P(*FBG0|Z;}RPU`5AZ$YCxW})s?j$@bdDC zi;K(1$S5f(X=!O08X8(ySlHX!Lm&_zAD_U$!0_g3ORVDy{F$I*B()OI*nhbSCX7ZS(hVLE| z-hKM`l59&la;v&>?30ry2tI*csf><(e`zu}W9`YlcUIg&zi;{WSC_G#jb=ZSg9~=Q zF=I;3jIuMv-qyl~`QlXGuLXsk^;rTzl*Z-PyPDXyPFfR5+KwJ|Cej4tG(|3$ypVgu zbB8-Rg_=)1tt8+BO{q_?E!&EtAXTg~;e|l;(T-%A&e2pT>m1<$M7`L{rbbY;R87XR zE~mVw+=pX|DikDP=dCUnOS^1T9!-_bD`@A$!qdp3I|YAcQ)R5aQv0yR?Ohf;1eY2Yu%H}OQK++FgG7My;q%Ll*WAC-6!$ES1>?FC2nw( zx)7bx6BV;Gu;T1MYZJdV??i1odF9I)c*gI^tk#*0$0hHFCs_L?xX+)g*Z6rWK=o>C z1;`4WUt2o*+2lU+LPBy-5KO|}MXc0R7#=zQ$4ci`$b`dOh$ z33f;6l!76>#pQ`*-k{%JLUB)H>CI6imL}P$S4R79K8lz5i5e$_V=0-0*DVg<`wkGm zM)htMCn&vx;Ci(vRRj?{3wk0;zd)Y&#NGN`XO zP+1Rs{C@ef4s{}&XT@3=OIrf8)27Nn1$Xls?*YKp%8IhOfIE_uh0VJUIC z^pfciS#Yrubkigjot)uC%5%CRdn$QviH2KS!Mu+?a7x7veS%q9ttZ-2#pS7UGB>!+os8uhlzFfX5lB{Cb@!CC#{cu^77|Tz{+oEA?EuTVz={$J8MQ zX5xJK9r0974uor&+iJY|7rkY2T?+?o+gx4ICyj}G)|Bfm{H+2hMhzc2wyf=-xl-KS z2BSG?tF4E%_Xipg=i70j***qa69Gb~y+hcAa67S&@bnG)XC3dsfgLBr$DW4tHmhG) z=Jk|d{2xzj^1=2&XrnX9Cq@UYlZde83)1r35l@vG=vLp5Ol5gjf`pDv#R<{0g;*pg#Ej{g!bSIa z5^Lja^SIaLuS*<$*4pYF73;Bq7q1QqF0jf!z0hFwHK@dcx4gg)R$3Uc z>WZ28w#sM2)yf9X{s^|I-dLN>7j6h)4L#qa8X=<|&TH25qv$Ycqw>{qg}?l^SiQb` zF0^wNtCr@DqZnFBJ!|=FaH#>Y%qc#8-Y_6!$7=8Ds6(Qq*Z8V@UA{KF`%XhvX|$ND zFVl*th^@1E%of=vg+*f3TPmrQWxOs-3_W=HMwE0y-n&z?H7pWeefo&lm{h@G4R;x# zs?>v{I`^!Gy!2IFPXsu%^6G2Gm74+mLXQ=PX0N^Is>w^S*Ymqm8IaL=+CP1}o)}BI zH9>J8ZdBEYzJ_8JtKIGr?!zPO&e4A#O)WnTvJ~f8=!}?gN6dJ@>gL*~Cmr-bkv=z4 zJX15Bgw9uqPN{26BmpSs1pi+@{8lG8pS22v8oU|-A;UcY_&`;*OxiTySDm{0<-1WK zFJ!<@)*u@<*S{L*5FSovSFnw%6$D~#=89|){oH{6j=DNuDcs+YP%zlxpHbAmL4h32 zY^)%h(jcg#nKR@c9*JyG{l_Dn!Om{Z$QHlbKj3~h)GNq85A}B_YX`6y)aswy^1CrY zpk`3F|G}NVn+P)t3o8dJ6$HxRYH2+f zH|T^+3xjsVf~`JGN^)XgxH9)O*k!!s57Ecq+)p8zZ;gu6)yOH@$QWNKljB{8s!rW9 zqv{Q>ENIu}vtVKDQ?RXBXA^1SXvm!rnVzg=qfWWKXBU{8!P@BI#42o(5X>%!=P*>2 z#q61KAg0z#*Zxt+MFFq7Itm--PNX#G=(8_{@P}m_YdsC|MpdOQ-h=}U;r7>C%RQzoV}V&>rn_uWLzDB*@$z7g7F*tI z8wD=-#@l*tTX?&Tb?q(Czcfwb*;d2+zGie2YbdMzG2Qmb!Q z#Y(428k|le?#~)Y^^}k34Cnn88>OfV%hOwxabhbwErJoX=T%jMIOaTeME6w}6wsJk zcqTnQpYMM3i~hE4wTVt~o#o(kc>I#fxcoK?VFTHFhNupyWdm1gKzw2siuFZZ#tX%X znU1$1%C?(JVi1cVn`i_^d~b~pQ2@l>HYE1Vti2<{E{2)*bPHb{_O!mOy-)Kj-kP~1 zrL2T|(A<$5B`P!hv@gyuAz=W&E8jcSf;Azu#t2od=QP?PsFod{^keQE018~T3*afy z*I_!dFF8p^4=SP|bE)va+m?IKwI%&od|V6S{(~6IFFVg~-Ssw=c^u!DFYkCp)Pn(} zL@bi#2FRE`#EVzz=xb0}u+=_8S(-i)iFE0|XgQffzN1*!s?{H$JV>YCL-wN8l~7P` z0{*=3hxGhU_I(%dJL>yn{oL8U+S&VI+Q`eF_WAw}{JGt5m8AbLCybxl;D5*cT!~#R zt{+B(y#2W~@pt6UHN{n>_QN>wk&E=d>$dNxKh+yQP#MTt@K4pp-&ua30D!9?^uy%I zeiLqg(S~2A=?C&(>hR2H{RXvLpduGHd()%}L$KeXe|WLJ^-haLWg>}M_cGtZSS z{IGk-+rP`;4{iD1vY7vd<%ib%ndR62Dd{&XKWopQd48Sv;otE5szrZh`gKIO . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "Airport.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{id}" + ]; + + rr:predicateObjectMap [ + rr:predicate ex:city; + rr:objectMap [ + rml:reference "city" + ] + ]. diff --git a/src/test/resources/test-cases/RMLTC1003-ODS/output.nq b/src/test/resources/test-cases/RMLTC1003-ODS/output.nq new file mode 100644 index 00000000..31168c83 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1003-ODS/output.nq @@ -0,0 +1,2 @@ + "Brussels". + "Athens". diff --git a/src/test/resources/test-cases/RMLTC1005a-EXCEL/data.xlsx b/src/test/resources/test-cases/RMLTC1005a-EXCEL/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..39e7547c15aa77878bfd4d0fca65c78ca18bb9e3 GIT binary patch literal 4755 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 Hxp)5pIalzA literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005a-EXCEL/data2.xlsx b/src/test/resources/test-cases/RMLTC1005a-EXCEL/data2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..abab2505bdef96067d0aafa1eb33ac7466784dcf GIT binary patch literal 4753 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 Kjgt9m@BRgD5%c%} literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005a-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1005a-EXCEL/mapping.ttl new file mode 100644 index 00000000..a57f6962 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005a-EXCEL/mapping.ttl @@ -0,0 +1,50 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:source_0 a rml:LogicalSource; + rml:source "data.xlsx"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.xlsx"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1005a-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1005a-EXCEL/output.nq new file mode 100644 index 00000000..e4d41292 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005a-EXCEL/output.nq @@ -0,0 +1,8 @@ + . + . + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1005a-ODS/data.ods b/src/test/resources/test-cases/RMLTC1005a-ODS/data.ods new file mode 100644 index 0000000000000000000000000000000000000000..9df66ed970f644ffba195062ed6feb139d1d9886 GIT binary patch literal 7219 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 O^8#b`^-J2bZ~q1V!RqJ$ literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005a-ODS/data2.ods b/src/test/resources/test-cases/RMLTC1005a-ODS/data2.ods new file mode 100644 index 0000000000000000000000000000000000000000..cf1121387929b254bf57352e49f03721caa4c5ff GIT binary patch literal 7168 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005a-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC1005a-ODS/mapping.ttl new file mode 100644 index 00000000..45708aa7 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005a-ODS/mapping.ttl @@ -0,0 +1,50 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:source_0 a rml:LogicalSource; + rml:source "data.ods"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.ods"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1005a-ODS/output.nq b/src/test/resources/test-cases/RMLTC1005a-ODS/output.nq new file mode 100644 index 00000000..e4d41292 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005a-ODS/output.nq @@ -0,0 +1,8 @@ + . + . + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1005b-EXCEL/data.xlsx b/src/test/resources/test-cases/RMLTC1005b-EXCEL/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..39e7547c15aa77878bfd4d0fca65c78ca18bb9e3 GIT binary patch literal 4755 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 Hxp)5pIalzA literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005b-EXCEL/data2.xlsx b/src/test/resources/test-cases/RMLTC1005b-EXCEL/data2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..abab2505bdef96067d0aafa1eb33ac7466784dcf GIT binary patch literal 4753 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 Kjgt9m@BRgD5%c%} literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005b-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1005b-EXCEL/mapping.ttl new file mode 100644 index 00000000..727cc3af --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005b-EXCEL/mapping.ttl @@ -0,0 +1,53 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:jc_0 rr:child "id"; + rr:parent "id_friend". +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0; + rr:joinCondition map:jc_0. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:source_0 a rml:LogicalSource; + rml:source "data.xlsx"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.xlsx"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1005b-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1005b-EXCEL/output.nq new file mode 100644 index 00000000..c61bf9b9 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005b-EXCEL/output.nq @@ -0,0 +1,6 @@ + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1005b-ODS/data.ods b/src/test/resources/test-cases/RMLTC1005b-ODS/data.ods new file mode 100644 index 0000000000000000000000000000000000000000..9df66ed970f644ffba195062ed6feb139d1d9886 GIT binary patch literal 7219 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 O^8#b`^-J2bZ~q1V!RqJ$ literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005b-ODS/data2.ods b/src/test/resources/test-cases/RMLTC1005b-ODS/data2.ods new file mode 100644 index 0000000000000000000000000000000000000000..cf1121387929b254bf57352e49f03721caa4c5ff GIT binary patch literal 7168 zcmdT|XIN9)whc{+G!a31ks=^fP^tpbdx=z~2MB~Dkc8fmDj-F=2+~0W>C&YMQUn3% zMY{Cf1ztG!deQUry!U>-nQtdMJKq?4Wv;cxn0sm{V_}m60C)g^iX)f0KSU&i2LJ$^ zALvT}JFp!H=>i9t!r>6GxhWD1gYr5;EqGw22rz;N1_wbcVCE=05ERLSfIEOpEfCfq z5K`kWPCPukzc|q}|B1`!GjkXec@A*4gM86beKvZBw02+jI%f}!s@Dodb>3>KY((FD zZ-yicM>X8Sj6;)=qvLp8tUr#UaL%TWMV41hrS9(bK^s+XwTn}G{|ep*rDRz8ocon7 z#sz~m@o_mX_ftvwG^c8YJEDp#fqK?PmJwo&sI`qrs$v8U<)vGm<^{xBiQ)sDN;C_% zuxP~Smoc}(Y3k>jQ4^NpLee>QNO(aI$D2GGqc;m98OSode6SJ@B9xXDc;7L!uK}b> z)zR82Z_vG`!6h%vyO_d|a&HsMBD8HxG!`LT(tN+f6`rPQDZjxrqT*!os^oK95F=dX zscY$+90fG5fk?D;Ap2$e-cUpmzti>210T=kk4G~z+VuiWdAXJ16y1jLYVl?9YQ|3^ zmcI%PvpgfJ9H_k+zw#EBLisun;vv&_(NTxn&Q@C`rgks0Kzm_QPiF-VWg7@4 z*m;!Fmr8xLHNIl$SH0i`2hQPIvc;(o5#OeojFwYhlMvFdo;g~wI9|M_93Pe`c%QAr0)+^g{?wJ^4~q)e^z>Fw?lr9 zlDsav#SgE^s3R|lGxqWl|L1&(mKzZ?}lH)kS?GQOT8<>DC514i#oahOc^w zeNxKa6k!s{o!P-nKc&qNS_Y-$#~8<9Il>-Vy7comNokp=W6!V*>8H)qV(h8xd9Pl< zI_iJiOkt!rWqfCUJMh-)FSuq<4nq%KP)Evw)9VVbp%<^+>o4C=RqGOp=!B}ONCR%X z%Cl@Ip_k0UUGZ_+c3bbTtIfnoyUcz&OF_Xg>&ap?5qrg6q&zYcS2Ap(nvK-9{TRJL5X1clARxsYL-chyj zy81j1n%V5TO(phlAwIYhM-xIq;ML2bqE9|-Qd4wEE7Szf=+1%dr%C)ljToTs?Hen@ zyOzbL5T7vHQvxH@n5)EW4F;Bh8?;bzIqP%PCb^0 z2lJX!Ur-+Qv=M=fffd{;P2b7hIH5_>Giyk(=+&y%-5r603Wa@LGnTq^sAVQ4^t;pE z_oKpb#pjkh)SZy@mfaPia`n1{l=z*|3VyK2$Ba1|RRVcY`w7}B;xcGi7`-jC+miZ?LvUfht32*jrvO2DdGQJ9Uq5s#exa zSh|;HY4JxIyG#jh$O*DDTe`T;oosK0c}+d;_IgLI*oYTqCZ$8wRaUseoo$2NSQ$c~ zcummE4wY{~kDnhO;_yQA8kj8DcV10!sa?i#s8}M#zO%3Z;B#N+{!?w?wuj$el zbFhs#aL6R7SUM=t7>oDnSZ0$p@Sd0;r5HQNAWn)|$K_ELT;$F;1yG>R-v#(Z<-voF zU6kn1CTi(wSpgy@uF7?)0zAy9>Mu0J$KLzpVcx5g&+5Lrt9u+%Sd0_n*Fn!Vp@t*<=#G4c z^$n^g`55f-Q`m^!v}xyrPZ2m@*8FzxQ8vwKu>pJiL3icf;9*(tP2?y|elQc=oQKY- zVCN^|v-LmYn6mNIchJB4tli3dB4$5U$|S!wokTbg2j3Ea+jYIZcFVKbU!#6)s$CA& zuVuI4sf5^|e5Xs31-z`ur)rX`Z~pOC+_!h&!VHrlI=h{a0{d`n(iNc%M%SQ(3Z=f4 zmn-gmBE}|LEIPbqBhub8_v6WPR9$&SkX@iCl(udB;y2)}8lTGly>@{k6Y!RoXFX7#jF` z@EW@vbGpYrgilZsK1ChT?sW9-0z)3RuHSvUYx!^rIhqo)%4Bm8wMwGpbb>NZcVwj9 z?r><#pYPHMRjPwx!bk-3UJAsHws7H8#%HQ<;RVut^H!rwSpyU*xz(I@N}e=&X+a!! z<)6r-biNq6*Gs^Smxjc@Vp2r2`$6l^grAyN_+gk`JeWXv5+cXrq=mXJ%Kv_4Gp3=*tXl832NSW7aE#z(7 ze-fnL`#1rm6n53j)?I<)Qp5HF?tC92cADrhxKcSXkU2B)ARs~@NkW)|chk=*_?0;$ z(-Yc9sBXo!dcFDVHI{wF!vb12?#u|1`#1FN2R4fqrNGi=p>E5Qco^yo3vF=6itrcL zmEH&A285JqJG?TR_Hmdhm@7(uvyh|t*>Oa1hQ_+O>2yyMoJ5~#chpnbve$>gUL99` z_{?%L&a^9NUG#+}$8G~nQ7?D>S+LDc1cxh#(u3G@b4L^;mwD2Y1B)^Fp)shDP#xV zm-FW|oq4}gJ-ushOCQ2MlU*|Y>Rr(ixiF8hGw#erBR-v8F4p!#?LNu3gw{(L3awr1 z5`lH<#dR;cbDRS5LS||>=~cfBA?+s#Y6#3w!Oz6d1!jRXK(R#3Bsg17E;8Xl*&PbhNVYJm_Ljh+MLN} zR?1Dj56`)DXxphfuOyCV<;l1Gpe>V8a!(A8lZz03+R;WuXoM|gQE!`0lBqdb*V@6| zDr`eAr$vHwIDR{0qI8Bh_>Hdwks#SYqhe@fFnl>9gJsT23ri)cWSr>hrayRIB9!mnxyLpjQ3k z>n)uUmG9ocpAPT7&SbCFdh^{=)<1|>rc&xqPHMpBj{5l4FgX8~v0|Ttt1aC?$2v;K zmZLsA$CqU=tBCs3<7Lr+-X!fdBOoGg<+RKtE$R~C5oQ~ly({4Chpnx^SFpMJDi z5DPU{a70Na&Vh6euHVT`rX#e%MeI;DL0D9Fyc$d-o$*#S+&1IoWE#TWTVS$M=U zx3i~m1_M?OK7KxJC8%?U5_qIc{{d6vr1s?7n{GitA`h1w_aR4Q$a}6^WrTmiXZ03N9w*s&J+rW%{v>DD0chZ_bm9nT$a#bUChr45LwKzBobW`q3cAjxGMMAM=FYN<<_sy zDc?yV3N5_NdC*vv{O|^=aB8EeuOEw&iDlsB?|1v(t3?)ULW%3xzPOKLybifyM7%1# z-RttvPji1Im2Wny@6?Pfx=k}zzoRfw#GPrsg!<~cI|Z8Qpot+Hb`lEX){hbLU~>6k z8+Me_gqQf-vG`@Ew})+44@s}{?wBHLW4`zO6M}=XOJm0ZUr5fCNLJS6o(Kj207s|% zU)A!Dw!qhpvEyL$)$`*zT8V(xC_6K#DHwv_MgBPDfkUl=HPqyZ2&m5sY9d7i87=f@ z4f;64!$QBi8>$$hKY$u4Kv^LnA#rhWDJdysWn~}`XkcJqZf*{NKpY$#+}zxJe0)Mf zL!+ak6B85D($ezs@`{U#tE#G+o15F)+xz?bM@L6zXJ^s6zqPe>dU|?(i?cH}Mzaj*7WZMdptX(v9ie4_#-fX_tfw z?T0r#a+AB6jLsbI*&W|cW=QcM?yjO5WgRyo^q=;U8JWJ7z7=>fv47&A^*xt97csMN zs<+th85amk9E@zAi6J&^P0Sr57maN6<%sUYY=aqO6)sfwYP5ugmxRmmfik zK6wCxT7s=m4uAEt5CXh#2bh%u2!Sv&b>RIo@_ga{9f^d&ApeYF_zendXKDpP@JfS` zcBXK|Kirb~H()pnj)J2*Zm562{cfn|kbfTP?@*Qym?;wUPigtx7!gQQB(70c5Yktm?yNht$fs$1OI=Oma%zOjKBL6banan=Vgl20t=hnH#z-H@FnpEv zCrCfqDmCSn+p*i4A`P!rr&~>G`~1?xO*Xi~yN4!%2(#vlzSh27d*nCi9%JpgX6}mW zYuTK<@!aHvz?%9}wV2D9CiQN%*&7Q;jN!gJv--M8+=K?}bh zTBiTC{(qOgYv}Z;$^xah71iW;|C2|w>As0pwP`vxT?zls<$5+HoXlzz{x2CNyg9>Y zeFVvl@IS6{(TLe|_*^fJ7N1$Ky&GD7TvF17Zze!5wxu?yfOWH0V906qc;ky_#K{_H z8Jn7jWBahD|BUZ(Asxq+O3IHc;f+$$`VI_$n79@U%hQUKXG(*kjqd|gte2<65$4@i z5qmf>ZDnp`z6fvYfT*`)wstHVIHtgnTEPmu5j|^Lx0*4+Z)SEhGWQ&xjPIgoFmK)% zamVkua>ZB3L9kgZ=bJEARj8VF5F=0&)1q-eFOq&6kYm4=vyd1;H1}}qIWI-;c2NXk zJZZs?&SDe!ZAx#9guwi2$9CkUmGz+O?5-vcJYw3j$CICbrE6c`~Up7@^|FV zrN(*vb`d$m=uP_XYVHT>Pi4pjiV|HR{;4SWJIe(M05}(+ix?pL?+X8`H~czH7s!8= zMHk;m(GABxd&Qqw&fVf7<|0e_}^(nZKv`XYctl{2QKMz39(Ozm6#3H%vc!)4zCr?AV`$_ty>d v8O`$_jYWIak45|g`LlYQ3-d*gQv5-tHI#ACZ3Y0~3i<^??`wa`^KbtJ2gsRL literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1005b-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC1005b-ODS/mapping.ttl new file mode 100644 index 00000000..caaafe75 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005b-ODS/mapping.ttl @@ -0,0 +1,53 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:jc_0 rr:child "id"; + rr:parent "id_friend". +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0; + rr:joinCondition map:jc_0. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/{id}". +map:source_0 a rml:LogicalSource; + rml:source "data.ods"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.ods"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1005b-ODS/output.nq b/src/test/resources/test-cases/RMLTC1005b-ODS/output.nq new file mode 100644 index 00000000..c61bf9b9 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1005b-ODS/output.nq @@ -0,0 +1,6 @@ + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1007-EXCEL/data.xlsx b/src/test/resources/test-cases/RMLTC1007-EXCEL/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..4289a718cf1bc2bdf749983451f31b4342f2e167 GIT binary patch literal 4800 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 F_kVL9{`dd@ literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1007-EXCEL/data2.xlsx b/src/test/resources/test-cases/RMLTC1007-EXCEL/data2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..83d5d63960f46b2acbe87aae3285f64360218a53 GIT binary patch literal 4800 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 I?Z@8zA3tFN5dZ)H literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1007-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1007-EXCEL/mapping.ttl new file mode 100644 index 00000000..33163380 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1007-EXCEL/mapping.ttl @@ -0,0 +1,52 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0; + rr:joinCondition [rr:child "id"; rr:parent "id"]; + rr:joinCondition [rr:child "name"; rr:parent "name"]. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/1/{extra}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/2/{extra}". +map:source_0 a rml:LogicalSource; + rml:source "data.xlsx"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.xlsx"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1007-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1007-EXCEL/output.nq new file mode 100644 index 00000000..5eeb9835 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1007-EXCEL/output.nq @@ -0,0 +1,6 @@ + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1007-ODS/data.ods b/src/test/resources/test-cases/RMLTC1007-ODS/data.ods new file mode 100644 index 0000000000000000000000000000000000000000..8f4c94162106373d20edf2c8710b478ac86f5c87 GIT binary patch literal 7357 zcmdT}XIN9)whg^YN2P;+(u<%}6{PnPnuwIpLJ5I{UZnSq0R;i6BGQ{wX+jW)AfR-R z-jQBJ;DvLq7d=nUd++C)`SzEUBa-7-R+qJ3{zfAr^d&W-u^}&kTf}b<^s)K+QnMtjM#EDrKAM+> znlJQEU^a5mtm9uZ3SmROZ{nZVpHqGANi*=`a<9QRMPD{K?GN7u1QCf?HrIgF1PcR( z0{%SO4=vtv9IlRC-lp;%JuTI9;$g+FjfkKUQej0HewUD5?g^^J4Rq|$QzlFcj<{;p z8kK7*Ll?{yT8JQ->IyUKBD0=KCcdIFo zjcO&zJ^HVyi(Do0$*~F+cfTetmV9K?mY22S>1GvG*?OG3(p=X6>S{B;P2)sBtumg- zwSZ=f`-7QkIdTvrZjJnLrb`}DS)!0XRj8gRY>U#T1+}uZJ?@cbDE2w2ZN_5<<@Q7NbCEp7B zYL!Z^5HAKNAq*L{;=WK_70>tpj*Q+{jpchrxMtK}e4QkHT%mwPf7JEUd)Ha+Ld@f8 zR#4LZ1KFk%r3pqSoQWd@_41|Nr8@zM^J+?M*o9DQ@p>t-j;LKNXFV!|FyAelwnEL#xa(NP?63gOz$$I%!yBH!LAxrJcm^$Jw z%{LiZ2kW}0k&(aJh2v#=?n_1tHr)K&SJH)1|AwcZ$ABzqTtQ=45Ms0^7Ola&%+n%W8Oqqvh#X5suU)}E0`Sv)obGGu7d5E zxG8fy82!S8VTLU0!5Zmz_lDbvF$U z&zDdLvJY^rFIKDP)a@)lQDS{Iv^Pw1>0q6eEoV^tJ|6K*Sh2jLrrB0eGmt|Re@kTm z_1Z39Tai%^g%VrYv)Z%wa~T}pdqG_^&a!xTkdp%P!g;V)!BOLKNfBF{f@y#wH0E>d zAt{`%N&kBKEH|Ms*mzjpXTm4oJ!Y8He3-Bvs60@~OQW_tG-6!+Ew#5=>f@nZ?IUC= zta$tr^Bs|TaQvg7QxJ??rQN=7Yy`Vvb==Ng!N+yz-bv>Eh%w3O{^Ra0Z=l}70V?8{ ztoC*L)YLPY$GMiX{VgZ2rYCH?5+nAl43Axph?e)6G*$5MBPk#VH*5gFoEiZ5bG;%& z*DDy@!`>2hUalq{I5>{oB0GI+VwT@rijl}U;uBu=uBEPe%H12oXT2JBKt#8kaW@Tb!}@r_SO;m5c`tA z4%SsI2G)Cra1svAP(9gl8B&*g+1tiSK|LYLboM&8+B`>Q2XH*`()N+{Z>p>*97AF( zOUWh|pk>cH+S*?_>F5otn zFH2mve2^^7s^{@A4=Q$Rf(9rw5bOc`qPJFNR?N*8NACedXo*zl2aT>z#nos2xkjHZ4@jgXpl15Y5cHlW zd8r0ml4DxN;IJD}>=dIzwkER4>>2j#jq<=+`kHs3n2G7OM;PLgm*cIhw}<-c^YUFs z6a&~L?p2M>DcnX51;;_o8)EMM?CR`%Nxm2ZtcaAB^ujevVH@&brklA=5RPN0kZ+Qu z#7vJxA9ZEOevTO{Ys?NjSZ4`U>%gpO^dP{8-^A;f%loM=bn-HBq{}z@-R}N9V1zO9 z>uuvbE8S`MSO#L9#r7~^omAWH#08Y?%1po0?c7?pfYOUneha~LBo!`57fKpy=fC+tuxN)nz$RMw;1&oQ3 zuGdQX()c;JZ?u8G&=IBCB!yrhg=Evn4K-H_=C_^s)u^4`cCurPxIX)`Vj{DqY=ugc z&%_;XcC(d$!Qd6vj;_wYy;5SEl^jJR>Z?@fTaEI!>Am@GAqC<>g|^gt4Z0$}5J%8P9+cmlhu(e$AQ!9u~_b{kYD_VmqG zuBU)i@=(`KU-Xd8>eDa4D#g3Dm@AuyBDPcd{1UMO63YTcca&0uv^e&S-}BM+eSf*l zj}ms2>0Zo`2&$B~7a5TmtzhjKJ+eJh$gP#1YL3arJ+kZ3Ur?6BxAqm-x!;+~d~aU@ zpNpFqdfMH2mG}|1v_+F$HfgTb*jr>bFH+Q&aM+D^XQYr*vpS9Q^2g~Fh0wES;M2b} zO8g^I%^nv3AZGt3jUqnRC`&jT46*)8rK$|nV50(LjR*PyZ?ALQ6N<*`B=52!!H==k!mr;V$Plw_qQ3 z^msIma&~sbvuA&=wU$$6k8!XzbWN$!(CS&Q=%a#D>agAyMDmUCF{-7Mbbr$ zWB7VxZFt`Cby>AHbxP8wsdr`-C%$ft$=kC*Twy!I!k^n}?W9z6#EA$;R0a#V>K{9# z=jYrB^asqCnLBWN;`*5Qg!}c>+Nh)SB#varGoirmX(3z%0g&4gm+`WvFwztd=^0hM z5}!7y1CN~69{bJT;|l9v-b_#YPIXLnNl^U?&&0hx*$GyC=WZXSc#LU1lW?jPxqN0? zMdccgl(I{KhAHt4hRNl0`HIohu%iQ-VOT61G<%DrF|-p>x&Y|;|a_!|u(N^@|il`}rYjBTjE(v*(Ruvy1LOlp(mJ~&{m;>ClyD-p_N4#t&6MLQ{; zkLGy7yiPz8+sYa!Uawxlo4SVAmYoya4H$DV0w~-GDGXBcK7BfZX z^4AG{N1wbh$Wph;JY9&ylQ%w!qxG+t`f(5v-36}StLXCtGt6CIO5hbWAxS@^G63}< zC|?#`Q8pe$)cA~@uA6l3SS(G3V$IS+9rbs%OioPiLxIc5Of|2E6*xrl1Rq~#!-zk) zjfi2&R#QpHBBi=5OO92Sor=M)49cK}lZ)}mghWT%Q*Q6j zF~6wn>f1_hay!_VGxvf3p)#vEAK8_%o?_?Ml4}pKdp!0c$mp#0ywS6DLrmMuedxu$ zSztQO<=3v2)iU`B-kww1es8~K--(VYGGjn;4l+Nro>nqHQ!Ks&>S;}-*&FoUw-ES5 zB&El`T$mRkww!N8BEBNV&;w)hR2guJR}$lX)%0~P)kCp+mEF}>a765R5TtSy2ppA=z zIm8TX595db81g|O*5R7!3M7QI=Z>00Nl{iC{fGB-E3v$KQ4;a*-|fq{V$5fKRq32A9*+1c5zU%#%btgNf6 zYin!k>FMe3?;jr@pPijW*Z$qz-P6<4^Rt|t<%AJA005XVO0v>G_tEv?v6viYGQa6` zT?}bCP4bl!Cb&~|Z0d*w|JVn|Cr`t|O+#{9~JP zBi%mB738g^+=U8P8{x(NClz*CkyQ*Kv%bfIGFEQ1YM%{<3SU%~*MSGxo;MJc7$fhb z%TX#ki-~nm(eIE(Kt75jz3sV^hB6fHzA>vkq*6~8-Vy#FM)b%#DDP}kBa73vh#)fJ zTPI0ghA>z6%!hI!Hj^FyPu3$RDf)&hdv&Tad#sZ$q+vr(zHZx{x{+6_4|vj|`skNc zZC6}N=h|PEc0RiMc>fI#5@l4MVU_pFZcmJjx_;fxE>gK8dX@JY^d!H_LwG*6qi&&o zUy=(<7j5_zlz95VWzv0OaH(c&a6aYJA+40$VsX&ZeWUklNkZz@A8RHzW*id0QTOAN zyh%>()KBljxC|uHtnzV`M-T2hLae~nF3x{7<6uJkP-jPLXG<8&+{~H(&&czg`FAAT(b4{&QB1!< zfgQ}OEn)mJV7P-B6!s6Nr2P#T>Iij#qT7Wo|A715rJh6n`BHy}va)wHgIoSnT7Gwp zFt{1q<$p-$?ei(9PRX3|wC zIaj921Dk#vv@!*vb>v^`|99y_cX?A#;B;mwKdxwce_@Jm1n<|m=_H&u{jZcKO3r?5yd712Tv34{Fc)H!*jArX#JbTa zH0(Bay!pvD?qtJq6`PiXbLXgU@JztCgn^U1_VRnSm{#c-LuV!cBDo#I>hw)Utn$!U zYjcRI&FZuy4Ag5Kw~vG9tn#7=fce>kB$STZIk0Wwm;px{h2P+h8rax*HH;H4nLE(Q z-f<0@*mI%7ym4*Ro1l-JJV3-*_?>$Gk|NWWo+$i4{g|wu`*G(_2`&PN9{%*q;P1enZ<5Z<#YJG_{M@|zJML!#dA_+W zA|HMJpKqxCj{MmRog2)Hcy|fCN&js(f1v*4lP*v<(H8bkuIcYA7bpPWya-)HBISRt z@V{!quhVpa{FiUL_>B4u(}h<2ndMw9E&>a^BL1#8|4lpoOm<$GFXG;B$bQz6Kl7aH z!bQ0MhUY?C{fui|CnbuUnK{rAG0CM!p5?yp; I{+ieS0yC!4rvLx| literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1007-ODS/data2.ods b/src/test/resources/test-cases/RMLTC1007-ODS/data2.ods new file mode 100644 index 0000000000000000000000000000000000000000..65ce69aa0eae3181a8c0e8e9ceec370bf5ef1c5d GIT binary patch literal 7358 zcmds6XE>Z&yB?i{2#FG%DA7yw5>bND%V-f{Fv>79%IG3`h!*T287;aHBxq68zN zL??O|jFL!j#{Ry1viC{$Ip^a9;snPA~}4*A)VGb#-yF1tXmhaA7aFoe%=-;p8ENaD~9_5VoE$2plQo z;pz?n+j%%bAV~c`IY~)L|K!Bc{3p)iTDAx{@)Y0$bHSKtdCWkE-zaufQGr@_-tPVbl_wkkOOZPwyr(bsKvb>IrMA1_EvX2yglxeSKW`4lf2J zJ4uLL5qNyFtLl+c1KIK6akxBDW{qNr=Vjo9tUh@?HqWrN!I^0?%>v0DaD%4-juUZz1W4Yavb=Zezwh`K-0 z|30C?bRbmACu&tsnwOo)@AG99t zd^$N)jWC!XqVSdl+-|X*_?5D^%9>6*YJa5ErDYsN)G<-2cLYSGssr1TT?XaO04w?}Hh$ta5Fed9M+p zu!U^D+?XvS-XuYTvM-*qaB-qa<`six3DD-Hk+g{HdAWW|Pj#+=;hElf@A@iVCWlce zV!>>!IXWVKA7|-DD}Q*eD_RM+lfRKZ{^VY9@_$>U`Tq zoz(~G!MgZ#1=gLG4{n=G*okHu#FKIFJzKv+N84Oo%Lu}@_j|Fo$l*uPlW+v_ z*ISx4!%}#L>X+)t?sD1}A+2{}^Q3oPbcpw<77cKJ35Sdwdj%KMh644fI+ExO$pPH0 zwEbf&97%C=B61>EyFc}h4`#$BXID!4Mi6M3$Ap9umSuPJ$(xhBBia7m^2eCyv1|k+ z^hhKQdF^CRwmZFjEo?q_aDXLdXA~Q`=Ii`C-zu5F3xVQs>eKL|14bxN#UxqtBwX+& z9^oIwt5yds>qs#;`>=;Mjmqn0Cg$2rvwK93&fe`=>|QA=K5(;`iXC^UJKVhir#zUg zHq&OEMj2g4j>QNGMb2oZ7*{RO9k9(Q>@Pi7nZt)oFQ!_s$$E%^A0ork-+|>}9i;QS>C{gQBI0^?#9)=HqE}#6vY+28u=mDstLj~EvSrWfhP2yT+x@2=Uvp%)*{lqfo!43B(7lAMn`v{6hQOdw?6RgtYd9^2O!aa}tM_0zF18m{Emh=*cr1ZPQA~iJ;OT3Tke2_!H{nBwD@QZ{ z!0!vzIb6Z=K>E5sJWlJ?r$R-aIRIqRnt|ju0%-fLq?vqG`6VDr8w{RliNDA4O8|3mHCFE30A%{(pzfcJRJ7E zehWv~?b!P>mhbPsx(sX~jkQrSxq_)G+Z8N;61LPnJO`u^w}E*+w__oD{`jGLngNXy zbyUcruJ~$~s@F)l0?MtYtRe5?t*}1(iYthGTXrLHvJhTPgBXeZ;TU*^bkv5S0|{5l zs7r)PS!g@QngKJ%%`Zp_Zr%qbs^!X*o`tGXmcX!{2u(&8Bgt03(YXO4Ka%wQj{2G^ z2Wmt_9OT8tsYTb9Y3;3T1#U(r0~^+fT{rF+j)c4XUg^-=zI6DTEWl5dkIyW@M9!RAhBT(c5i_}2A>iaSQU4-45RK{X2kCliX7 z9#6^60Au-05-mX57Z(O&3iYKgB(x@SC5K+02uW1~UJu{p9=p!z#GYFkO(q;c7e*x2 z!J(idJn4Nz zG_)DIOXdlEo1Gl7KNu;cUP4M>Co)y2Io)m}yS)fs&?bD2CgUEA=beEDn!B4z#dkT_ zPN5Exm8_pP=1@vMAR@B|kYMPW8g~NUhU+(N&UC3E1`T0bftns$bgxVq^FikgM0Bj5 zncKb-NLha6RF-S~k{P!9u+%Ni=;FG>7Mow>lN!x|^^Em^P#G)h9p6aQ1%HHO_UkXE z8w+Y(U#SNO%Y3RD-O>COu%d5a?wc|`!CbmrLdk)60~{!HbH?*^d~rvraMtU2ZgB2z zu3~}75V_eNyFQxAi2YnJ2S*$h8E&+UsfDrWTig!0Cv4^ajW6J_vFj8ad9>#t({6YF z9_XQE$7dECeNbMvU>zM+fPo_d(Nr^%2-K$C*2)#`}+Cw$r@ zp5UXA!56`X>*udMmKQ|kluYa|yjW=q7;eZCux#0FyeJP>o#D>~1>QpwW-2e?bKYy- zE}2%2X-Nw3Zb)DE_i-bcF5Wk4$YeSQ+|iiQ>s>xlf3cWKeW=kmL8_zI4~s4OTEw+) zc0I|O57YkEn~-~p-Hz^7+CwIf`_1zr~oa+g22uZx?<#tETDtm@e}U z;bQUqMFgQ6R56{6*nxbOksTSRXm{|<*g)j1FmbA~+GdtGqB(A-&rPjE8)M*C5F~+A zJ~U^1);bci66|8;0_WP&jAl{IG$=6qqGa1>xKy;I7#6A5Z~4SiGxm~=bASdfaWi&_ zWO2YFd6vS`sa7lD0Y@JCOT;6wR0U~X;q6d|s4QDH_AsV9p6`L3O=gP)o16#0ucb`> zf_aZ96|b5pK6oqpG82(K5BFc2CdJcZUFvl8s)U9HV1>>+!yUQz}ay?69x0ZGXU%aAQ)(INp9b1&oROESqM)yVuP4vR|-i zn#O#Y8Q}Rjtw&H);94NJ&7-;g;b=>d6j%JoCWdEY)Y39<%Bph~OCjdrtKp5?gr6fY`b`Qbc1m~-?XBTA)uM&1Cqb`tj-}k3SswDt6;w=S zy?VKNSz5@-hh%Q6g^bzk83ESVXyE1xa>vzNjSkFbg$J+o%3o)^FZ7Nmk`;RnrP*sR zmSE87fSae%xLVurV=}GAOvi8SSqSn9e!#A+t!Y(Gn^j%*=Ufk;Bz)OueaDwUyhWIpWOAhyYmY9T|yQ*($I4w-h$ZC=e+vW>AZ9wW>(c7 zoIG(lWF$x^ckI zry9WCMbSk=WL`YFKC*x)epwwrgH9frehaQR3iNJF*_jLDi^PtIe{8LFR?sq%J%4Ug zYw$T={e4(QVeXC4V8ATc2F5+a_aW&I{^IHNF@(|-k$l7xvC!}75qw1I<8g*PJDrL2mR^M@)e1lApj(H)$e=io%`EX(pAr*+Z}OfNQQOar?JP_*IpY&I(C zx}5rKJLt=79=-?ShqR~|{lVcD-UKw5bGQg%%_wC4#>iJjVT)bGDP+Fl>FqlDhng>8 zmX#JIShU~Wd4Wj(BU`y0O+AdD|NC>-jm@vFxF`CUvE<=}Q2U&tHb*ZV#&@wvrIO@* zvig$Q5$=7pCouR8Pm7_*(-WCv1wNxbU;9+0j7Kte)`S*DgO!^ZuA`$alf*$rS za{Dc}*{C~LK2Mq=?&ZIPFL!G#Fhc;x+0ca(K^;PkRI=4i= z=zSheyo3WOR2*xLj#gqeVDuTM4R6Jo#+ssS1b56#;N|#SJcyCyq5bmDf{2B?V zpHRNlEIt6Bb@89p#-A^-5G452y~QSqB0@zjh94ZCo3{@S4a&B`OOQoA9Lz)2-HN-H z1&@t&xwM02WP4iK)wi9|BRp65r%tQ6W)$gavT_jqvnX$`m~0A=`}HGN*t+L3>-?Wsm&^{To8 znoCFmlGb*8q)OJa?izd&!7#$xFENE_9?nIV$ypnVwsdEuJKU8O_7z#pV7?qNfgH2y zv7?sZlW_iOeEos&e4vRf{&2elw6cfMVq?B}c1`+7LGW~#6FZGD~JUr;0 zGp3KS-)C7~r|JHFj(JoD4*+n*rTkxZ`Ny6C(NIz>9{~Vx zdeP%b5y;UKW&;O1xp)X8e>8<$;SN#yy6P0?7)~8E1yDoP5O>Gmt`kxm4gl%PKEmBh z^|e8_goTAAB_(BKWK>jCw6(QCAdrQHg^i7kv$Hc2iS+mP4-E~Cii%21OiW8l%gM

&)CK= zI6jB%V$jT#37*m|JgUW$lfKp|ubRdQu7eFI)<#SFAuyA?mz>VGz%3yUlhqJykEp<$ z9EbTk#ZoVnW}kfTJty!BSVf@I(1U9f}bYO+eCd0NfeOWZ>?%+Q7 z+nztffyA=zYhQ|(`B4#iMl0v-`=Sfc&J5{Q@?mPX(=<(Ltcpgk*iuiKpp~ zqC>Z_Z^-;e^IzqfS}uWCyR@KF{3t#>}dE&l~>|K z!sIKVkxt9=#Kzz1a8g4=7vwTsfU4eWJ4iSE#>7S9q)oIBhYl>g8}4Cs+jI`Gw9r2+F>iU_sVgA)hR%fb z!AEoZCj}yxF9b#%0Gws`**b%-hh=yiC42Z#bWfRdTqX6uHa$ zitKAXXsoG?g~SOGS%s7wOvof8pt$fZOnF9Hx7hm%Uf^p$Gsn!iX_ipxcjN` z#pa#R=>U|Y-=?jf=Rn)`^wmGC)5JFQR_o<_PnM2_-k)5VEvxiWb-CG_<8b(Bsd9(a zSiS62nJNz)`-yPM6pGW4e?9-dN*`{Q2cUBcq$CK`RTKVC9&xUqBuNL_dg=-k!ar1- zK`Zz;bZNsg*c5{JVwr-)sSnBCZSXV7x$y?mmnX^3eQuPBss2_`fg!UIW0Bj@oz@_@ z)+jdOJ^yWMDDctICS;9}fr1zNwQul5#IlT;m#UWT9cNsN(yX~VD*%R13-9~D)IguD1#-NI#Qg1Q)8qewQ8EWTaKN3#SLETGVBvv3Lh zh+@Hb;tyfke(cLf9+Rm{q0DyM$mJQc3CeS}m%6bD#Ot3U>3RIDRqmm>3e;hT)Ez`X z#{EyUc_Av+x5-gjEnT%b(~h7+yqU2**;u#kexQC#*3bKKr^f_m0m3zZIyCq@@aLDLQ*&_^L_|Mt-u)f-vw=Ka zTxanN*Zz;E zOh0SWzj%JE*q;mUUl&k3j^{r$7N=D|9^xO!pR31dVLppq+TWCEeJ!FtJrWgw3IM?s K9hE=l^}hfav%+cs literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1007-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC1007-ODS/mapping.ttl new file mode 100644 index 00000000..9f4fbb0e --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1007-ODS/mapping.ttl @@ -0,0 +1,52 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0; + rr:joinCondition [rr:child "id"; rr:parent "id"]; + rr:joinCondition [rr:child "name"; rr:parent "name"]. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/1/{extra}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/2/{extra}". +map:source_0 a rml:LogicalSource; + rml:source "data.ods"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.ods"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1007-ODS/output.nq b/src/test/resources/test-cases/RMLTC1007-ODS/output.nq new file mode 100644 index 00000000..5eeb9835 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1007-ODS/output.nq @@ -0,0 +1,6 @@ + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1008-EXCEL/data.xlsx b/src/test/resources/test-cases/RMLTC1008-EXCEL/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..66695bcac246ac6439924a642f2dd560607f9f51 GIT binary patch literal 4829 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1008-EXCEL/data2.xlsx b/src/test/resources/test-cases/RMLTC1008-EXCEL/data2.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..fb401a7fd08d05d122983e5f8322b0a781881083 GIT binary patch literal 4872 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1008-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1008-EXCEL/mapping.ttl new file mode 100644 index 00000000..33163380 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1008-EXCEL/mapping.ttl @@ -0,0 +1,52 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0; + rr:joinCondition [rr:child "id"; rr:parent "id"]; + rr:joinCondition [rr:child "name"; rr:parent "name"]. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/1/{extra}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/2/{extra}". +map:source_0 a rml:LogicalSource; + rml:source "data.xlsx"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.xlsx"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1008-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1008-EXCEL/output.nq new file mode 100644 index 00000000..b612c6bb --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1008-EXCEL/output.nq @@ -0,0 +1,11 @@ + . + . + . + . + . + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1008-ODS/data.ods b/src/test/resources/test-cases/RMLTC1008-ODS/data.ods new file mode 100644 index 0000000000000000000000000000000000000000..3baadbefacddfa45626ef16f725965c640cbc914 GIT binary patch literal 7475 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1008-ODS/data2.ods b/src/test/resources/test-cases/RMLTC1008-ODS/data2.ods new file mode 100644 index 0000000000000000000000000000000000000000..0dee97c82cafd5a70c3771fd57cac93e1694f957 GIT binary patch literal 7739 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. +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_data1_0 rml:logicalSource map:source_0; + a rml:TriplesMap; + rdfs:label "data1"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0, map:pom_1. +map:map_data2_0 rml:logicalSource map:source_1; + a rml:TriplesMap; + rdfs:label "data2"; + rr:subjectMap map:s_1; + rr:predicateObjectMap map:pom_2. +map:om_0 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:om_1 a rr:ObjectMap; + rr:parentTriplesMap map:map_data2_0; + rr:joinCondition [rr:child "id"; rr:parent "id"]; + rr:joinCondition [rr:child "name"; rr:parent "name"]. +map:om_2 a rr:ObjectMap; + rr:constant "http://xmlns.com/foaf/0.1/Person"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant rdf:type. +map:pm_1 a rr:PredicateMap; + rr:constant . +map:pm_2 a rr:PredicateMap; + rr:constant rdf:type. +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:pom_1 a rr:PredicateObjectMap; + rr:predicateMap map:pm_1; + rr:objectMap map:om_1. +map:pom_2 a rr:PredicateObjectMap; + rr:predicateMap map:pm_2; + rr:objectMap map:om_2. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/1/{extra}". +map:s_1 a rr:SubjectMap; + rr:template "http://example.com/2/{extra}". +map:source_0 a rml:LogicalSource; + rml:source "data.ods"; + rml:referenceFormulation ql:CSV. +map:source_1 a rml:LogicalSource; + rml:source "data2.ods"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1008-ODS/output.nq b/src/test/resources/test-cases/RMLTC1008-ODS/output.nq new file mode 100644 index 00000000..b612c6bb --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1008-ODS/output.nq @@ -0,0 +1,11 @@ + . + . + . + . + . + . + . + . + . + . + . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1009-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1009-EXCEL/mapping.ttl new file mode 100644 index 00000000..b6607aee --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1009-EXCEL/mapping.ttl @@ -0,0 +1,31 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "./student.json"; + rml:referenceFormulation ql:JSONPath; + rml:iterator "$.students[*]" + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + rr:class foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1009-EXCEL/output.ttl b/src/test/resources/test-cases/RMLTC1009-EXCEL/output.ttl new file mode 100644 index 00000000..583cb82f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1009-EXCEL/output.ttl @@ -0,0 +1,4 @@ + "Venus\"" . + "10" . + . + diff --git a/src/test/resources/test-cases/RMLTC1009-EXCEL/student.json b/src/test/resources/test-cases/RMLTC1009-EXCEL/student.json new file mode 100644 index 00000000..3cab7d16 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1009-EXCEL/student.json @@ -0,0 +1,5 @@ +{ + "students": [ + {"ID": 10, "Name": "Venus\""} + ] +} \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1009-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC1009-ODS/mapping.ttl new file mode 100644 index 00000000..b6607aee --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1009-ODS/mapping.ttl @@ -0,0 +1,31 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "./student.json"; + rml:referenceFormulation ql:JSONPath; + rml:iterator "$.students[*]" + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + rr:class foaf:Person + ]; + + rr:predicateObjectMap [ + rr:predicate ex:id ; + rr:objectMap [ rml:reference "ID" ] + ]; + + rr:predicateObjectMap [ + rr:predicate foaf:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1009-ODS/output.ttl b/src/test/resources/test-cases/RMLTC1009-ODS/output.ttl new file mode 100644 index 00000000..583cb82f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1009-ODS/output.ttl @@ -0,0 +1,4 @@ + "Venus\"" . + "10" . + . + diff --git a/src/test/resources/test-cases/RMLTC1009-ODS/student.json b/src/test/resources/test-cases/RMLTC1009-ODS/student.json new file mode 100644 index 00000000..3cab7d16 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1009-ODS/student.json @@ -0,0 +1,5 @@ +{ + "students": [ + {"ID": 10, "Name": "Venus\""} + ] +} \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1010-EXCEL/data.xlsx b/src/test/resources/test-cases/RMLTC1010-EXCEL/data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..232655bf61fdee8018dede7ce773b34a75294a2c GIT binary patch literal 4735 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1010-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1010-EXCEL/mapping.ttl new file mode 100644 index 00000000..556f05e2 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1010-EXCEL/mapping.ttl @@ -0,0 +1,25 @@ +@prefix rr: . +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_person_0 rml:logicalSource map:source_0; + a rr:TriplesMap; + rdfs:label "person"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0. +map:om_0 a rr:ObjectMap; + rr:template "http://{name}"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant . +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/{name}". +map:source_0 a rml:LogicalSource; + rml:source "data.xlsx"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1010-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1010-EXCEL/output.nq new file mode 100644 index 00000000..59b22d57 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1010-EXCEL/output.nq @@ -0,0 +1 @@ + . diff --git a/src/test/resources/test-cases/RMLTC1010-ODS/data.ods b/src/test/resources/test-cases/RMLTC1010-ODS/data.ods new file mode 100644 index 0000000000000000000000000000000000000000..17df4cd1044a27d08e050d5d122eb28d9de3c96f GIT binary patch literal 7132 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. +@prefix rml: . +@prefix rdf: . +@prefix rdfs: . +@prefix ql: . +@prefix map: . + +map:map_person_0 rml:logicalSource map:source_0; + a rr:TriplesMap; + rdfs:label "person"; + rr:subjectMap map:s_0; + rr:predicateObjectMap map:pom_0. +map:om_0 a rr:ObjectMap; + rr:template "http://{name}"; + rr:termType rr:IRI. +map:pm_0 a rr:PredicateMap; + rr:constant . +map:pom_0 a rr:PredicateObjectMap; + rr:predicateMap map:pm_0; + rr:objectMap map:om_0. +map:s_0 a rr:SubjectMap; + rr:template "http://example.com/{name}". +map:source_0 a rml:LogicalSource; + rml:source "data.ods"; + rml:referenceFormulation ql:CSV. diff --git a/src/test/resources/test-cases/RMLTC1010-ODS/output.nq b/src/test/resources/test-cases/RMLTC1010-ODS/output.nq new file mode 100644 index 00000000..59b22d57 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1010-ODS/output.nq @@ -0,0 +1 @@ + . diff --git a/src/test/resources/test-cases/RMLTC1012-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1012-EXCEL/mapping.ttl new file mode 100644 index 00000000..751c3f9b --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1012-EXCEL/mapping.ttl @@ -0,0 +1,24 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1012-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1012-EXCEL/output.nq new file mode 100644 index 00000000..d3354fe3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1012-EXCEL/output.nq @@ -0,0 +1,3 @@ + "Venus". + "Ç". + "Umutcan Şimşek". \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1012-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC1012-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..08f3f9cc4ffa4195a31045e0b00d9df9b34cfa8e GIT binary patch literal 4802 zcmaJ_by!sG_63I;KypX{hZ1R!hCz@X`U9j5v8qkuC`V zr3NIV(cg^T-<9jV-?z^5%$YyVe$Vr+v-aL=zq%R#JP-~M5fP38f>#IU0!T3b@4DMM z!2|`czsSV*4(&pu;oE-1xjsu(p~5Q9?!3#XxlvCzw> z;AEe5bkj~El1_b!pzNOh7`SKSUdc8MwnMio0^1AFzUi!49tYj1N zWg#QhL_s+VHL^O0z99QLrBC8aeRIN^3}Bk%l_Vqn+5>U$plgDEJDG)@81rL)#PadG zh^vtbU8B^zX)p;S{BB{CHI!k9uOzqM_PI&GI>#I{<7Ve;-eOTwX(k$Y$)L=ejW<**7-fs}Aab`JnqRB0?eukl!*albZ`-cLc`)P5ga6MY!qrdR9Sc4asW$ zZ1_3}TMJ`MU`c#@Mp6P(8k%!k%0@CH^8PFmJq;#ibLIB~O4*M!7lcSV-6V2%&S}mk zAuWS<2lCTZI)mUb3u1?FhfYdgJY^fdbm?%|lIeK(%vuSVwnqN&X4YTFCl6H;#kB5} z2WHmhBJs*uth;CgO<7{yryY$3l@dp27QfaJ#`c{q4|QGj-o4p4%ByFad`II7WPh17-Km2) zK!a650Z_+-m+j-O6z!;9Dg8L9j=NfLkUlZV*hYFtC|0Evrkeza+Yc&_ZHrzITa~^O zxExn|b1~qB^y}=?-EOzoP_82!0n&7;imuSF8jFsB(rt82Y}WuLZdO-yX(GM1;Pkew&%7#6%S zT>ZToFJqqYbP|NYy_{@eSd!4jIyy5#OikPR#?5gYoS?K}aM!5)Q(z1mtCmb!2bAxO ztHR>J(f+BF_DD$EwMXGJgB zL~{4Wumf2%+uRt5+BmeS>p(Ee%kM_@Oi>>cdnD%FaSDW0?rf>A+*{#IF`$kO76nQN ziE<~;u69fU?5&=EU|$4N)w@ISzAb4CG%DP}TZ$p%LgsO8$&(+3&4~+uy1cHw!}9@a zIau+Jxsw4#ztL%3?o~H-5F8ml Ni@e4KP?&k!c&Ppb^(L%uoi$lRj|Y0>EZdI1 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1012-ODS/output.nq b/src/test/resources/test-cases/RMLTC1012-ODS/output.nq new file mode 100644 index 00000000..d3354fe3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1012-ODS/output.nq @@ -0,0 +1,3 @@ + "Venus". + "Ç". + "Umutcan Şimşek". \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1012-ODS/student.ods b/src/test/resources/test-cases/RMLTC1012-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..dcd552987ce8c5a400b85aaf3e2580b5eefd308b GIT binary patch literal 7477 zcmds6XIN9)wv9k2ih`h^bdX|12-2G%Nbe=|UP4U+5|k=k=}kJyk)nX~DqT8)NEHwW zk&g5tpd#?Xxz}rXdft0~-^{natR&wUYh|uI=a_pgEmcCI3jhEq0HE&9tr-jx3*!X< z04EpzD*)UP4n=#QpjIdp%+baQ?TAEx-4V9DNGmr-H(n$Pim*l6VBk;$n%52G3bnFz zbAUq8T7Pqrl9K+-iKqFGoxzW6kO=e%;4U22YuJmJ6{c+52a#V~ihO!cI9v`>pJeGz zpiF_qW*Ve2ypp@B%>wH22xyc);A?LjJ-2J$U1|nBPvoV|ww;y|%`7JH(13X_C3W?s zVcyP!gVZB=>aH3ZeobT+I72#aWvTVcvjh#QSFALtNtfrMP>&?OO318Cb_AaaN4|cm zp%UMjYUDVZ4z;xDv@yFi^{%52J|m70cudDS46ncxJpdKvI~nsl8_!1HNaJx-0lG!3 zvO}cr&>R%@Xc)gnA`lKYCvF!?&U$Jbd%iestB$$B=C)$^X4;bD2$xU7HEz2{?kkh_ z;oNn!`-lJ=>8e&H6TBuin4TLIcrIu6NvE+F%pvVY_06m;A)lA8zHFgz#ji`8VArGD zcW6SW?LZxAV0niXOKD^F=(F%bFC9K(D+;CuL{X7Kdt?3j&e)ZeY4r|F=QJaHN}^)$ zzIyBz?Qkj*CSp}wP8MyWYAJy&P+^?>V*e{cW^tLi_U1Rb z^hgu1Evlk(e7%q@RO+^L>|eERqZ`f2pi0h^c9rRuOKj%~Zr}0Z*y-F!c-0qDQ^QRA zj+U4wZuY$*8TVc07gr=2rm{SFMTX?$go9*E#?N7pG_XX5J~iuKkSGs;$473*%7w^i?q|}AgP!c z*C|{--7uKBu<6QHgOTJWUqNL-ZI`uF78AAlxb9_BTAG2{I(oswjzM3RW(fl2OC)T5 z+;!$cGkdM^3)r28$aRi&NQ2)iu0)%jR=Ob>fxO3vEDOUYYsHE$?D$g2O}!+QSrt#A z1YjJ6j4Y==hzgf83Y5_#nLl;6uegAzc*VGC_(n%iQgxHvlf0K}g~f~GF>{IzeFt-A z$!bY)N9^N?WB2p~jaiJWtIoj(3WY<4f(I)e%mq0X&j|IAdUhVeMj?UOFH=c7luP2} zI_U{lV_|@vE8-uYNJR70$F<;KQ<}KG@`9(#B{g#JE&bud@( ztU61{5iun?HCaNy6-VQ=m@2K+y!j!|9UkCDEBg?^P0;Ph1u;EO;k5D4NE*%iGZ7gk zYGXWpCdH}!jnohGd2`wVcFs%alVpUx25Q3yPfI&eJ-r?W<1;rT1bOlirJeQd{rnhp zT2GlnRG@_kg5+GWKLdl57hM=D6JPO^pDO_pw(iY6_8Wm_y{&#n+#&;_vaUURlI6qO zILgITM}5wRlc8PVo=-S5pJ?WBnDK=`FKYGL5g+SwjGt4i4=1o;RmVk3r8}b(`x3nK z*0(&_+g7f{U+py&Om0?vwJNwzJgJ+}HwDR)W(BWBbH24shlE!rEH^dX6MU37i#Bd7 z)UYTUbV<}~Ji1a|eB3g7M(>QGxT`tO`NW;~;vx>L=ziPU>e&pEQ5--^m4sAm^{PYw z5ddI;&x3zXU8nJ>%MI-TgSwq$F03&eIU!7W)M#Oq`?BOzJm{TIXk}Y-ZPkRI@TKu{ z2ZsF@IH+^v{Ie|vEt;-ybjLw!!sxl$(^*2h7NhR;VYk$4>Zk0yE1v4yh_&#T7Tr`3 zEtC}<7G6xcG66(onb zrfXkxqzVmK&=6eimUAB~yP4qfy0|`PL_VnBuKY6csST^HAXxxNMLR-hZ!`k&STuA^ z$DV|vpRvg&DwxZ3*cIy-REGOu`zFe6s1twQc#7sHpb%+W*Ojo$o^WE$a(39lR zUT0l(r9BlgBnnzWIkkW)P48%Jf99gAKeT2UM_vVT9&+GoC7xspb&`aPS*DfAK1j77 z1XEAuwCX~nBm`+CxS+;KGHm)DrcY5~!dMyz|4^_8ch`=J>9UbneJ6?p?6q~S%+9Yt+UwgzQOz>ff;R=`%T0AbVY#eWNcH^n z<4I}iT_I(?o8AnKO4& z-oyakt_OZ3!#K5NCWh<{KM+wYBqg-vo61$eby$mUEgXvy%Hm|NHExm9o&bBONgntYxa*5KVTou}6@qCa{tunOwc-1>l%))Zp<3YkXFQjm0 z<0pf)d4=xJR6|6?cPkrQQ@Ksx`3FI+>tc8PIW#zU6Mat&u_dH7KQ34$5Og>n%q)=O zg5W$r@%tu1C1zgR_Ft?B*~_+KV~g5B2kS2N*1%b`OpF73z!qKy*SwSUP*b$z;g~NB zAA1IOAz@~n8zN@Ac6!t3iHw9bR;N#KYZN+n4ly=a?ko&DJ+3VU3%&XgDvbyNB!yu9 zWB$a6c5Yxza*i4|>3zl}KMmT9bwII-SN+lJTZb+8bYSkgib0AP{kJCGO*c^%%VU!7 z325TE{13;5OZ;_K&syt{9A-hPx z?$f+gh?9+IiTA!!|7g|gt_un7`JQfl2E)GZw$ha5o25g=l7%#?FG>xQr0SZ3@W}kn z`5b$O0`ZpDdOO^(TVJ=BVv{7llr>UTx23 zenM#3FGlovtz!`%{9%SL1jnXIIFnq4_A{MNGByo5i}{<X}pg~afu-4q3Zw*u`$pV+Xl1~Hgo`joqx3>TiQv+pZ^ zE@JTF$%&zmzG5hSzfHU}1DQF8@LIu_WL$N2Om}z>`owz1-*viZ zzBH?FF;{!QeO!5#-l4AbXiwWQjVTBIrN5$mZwN!QhE>;#w!dR>zGdnmMZpN2{BEUA$<&9H`ioGnZ%33Ib8U-&0H*A#^ z8b0lBb|mPPsnbq;-!Kx~KVA6yE__#0kPDs8ue}U7* z-FiJCI`vM3QQAe6r8ReNhQ+wSg#4}v4~S=AXJutYwE|~YdBKZ)H5f}&+F)twLAH>; zyWNV?jXtX0%JJm0OB(Io>5m+BSV?{lsZ^47B3R!1B;_ZN9nU+z~`&^ngbd} z(nUEaSRrUt5^p|b>(!jvWgN|JvovZ@#i}0aNcI=kt-;6T#%oN4OXj>b`X+uc7d-l$ z(nkyFHUYQ07jLdK*NGiin(g5*F2Y%-L|KU)$xR;s97?!;W4MzSz;mL z>1`~G7e$i+xMVS~fdtS6DjXl*mUl?izejz)ckckZYu+6#kk9hQM%RR5v1s?Y`iJXR zZTqy#^H-0mJhJ1ykP{O;xF1@X0(mZ{sZ&(o+u+

_NSG$*!AxTZAq@_jK*sb-^fw zCZKrqwVO!q-0J7k+{8PxW5<9Ve+XsH&@>O%=No&h4A$vQ zjArvEh#k!ar1aE18>r5;4Vppmq*LWxR&XseCa#)}14n0NjCR!bp820>S-xrsYi95J4E7PHAZc`E{}N-m>|)!{Qi@(n3|1L`>Ot( zbH?{HnbQpd%u4nEP&qT1D7WUkjseia%jaCRt%cOw zf_EZA9$$T-_Cbk4UjXxS_lh#v+yL*pI4!@Tl}z5qh(b%oP7s78*?wBydS8k2{tdfn z^*~RUlo$V{m0+g)fC_!x)^s$aoQ`ofeQ!aGsv+k?Nms6E!m!2uHb))yT*&C*%P9@#?w7_CzF^lTXZg0P&+Y){CX!C8${+kjY@*2m= z;~VkXbGgF>aIW5Tsn`RfNHVoZ?qP=%kt)fq`1T|#epsepSQZQuQ`^9Vt4^EcJcIDF zu~ElS4Bp)xR^e#5eqZ{~^;0GBGJ-f@;MNE$N0=KJ{cXsLLfD6DX(*mOO?OgLpH)_p)4{(_;ICs+JPx2~seAH; zv6dP{o|&1Mlao_WP*6fbLQYOjO-&5~ftZ+>*x1-OJ3G6%xp{ec1q1|yhlf9W_%JOk zEi*Io`Sa%$6&3aM^{uU~Jv}``Lqii26SK3kcmeqM@#E3a(aA)|$BC5-1polSp0b<_ z4AlavYW`@}_d-ca&Bk9@NaR}qQaKb|#*2`@H6chqXkLPMtRy!=fxtfza-Y|t?Z$0U|B~r+zRFP4^z_p28=?YFerSR67vtZ-!1h7^3O~C9m)=dv_eDw z$t}NIqZ`@^jrkwk`MZszz88TP&Y%s+VCb8%TVNp2^=fyGQ^rf75JMn%JC$mxF)ChPJ3D_lV|cbmK>!z3 zk+x>V&=p>m+YAx30daIIIaGe&7O&&2$(axzAFJYKPG#J33e3s4R(l6=P0S)Om`8*h z)>oc+^=|5pq-H%^^IK6DCGw7nC{i+}NLk0-Id3|#H#1~*2HNPAzhXT0S#E}7#q<6u zJ8e~^({R6vCD#8IUg5ff(18rK8mjFAi96b2%}>^5IxQQ90y8BoH@Tzw#-<*SKb<#! z-%zq{8i?~waPVBW@x%Xy%wokh zvz}t{i3nEgI}8HxA{dC5tUq^+F5=y%E)S96QPxlZ|HqH`0;Dir-Kmw2GI;-H@IaNJ zQ~5PE4VvJ`EI0kGMKbscQhgzNwZ=^^;R5o%R2DBeyU`#LQFTyW-b-f9&m^&}fm0&9 z+Q2_{XYOG0t#8cXI&_7I?ks5MbN}!$pII>@=zIWpZW z(TSFqA!-gQ(~@pBefBYXz=W!Zur@+N_W=t;oWQna#4wg=2axNsp1YVD zb9P>D@*$XJaHllJ4V$(Y$Y{HTUYa(Xq&RIu-Ln%*yt?t=5|^jtZJ&hhXNvGIRGmO& z`n~rwIRUpVjmZ;KTe@r1aSo6#r>4hu#UovMjv78;@%JbRsYb;cG(X0)KoWJE>#78wK#kPT{Y(A8XZ< z;QDUm`1yZ)dixdmW7&05%YL_kbNC?rcV+tx^{0~TJL(p`TK-dk_AASG6aa9NgudGu z{0{t@;eXbKpSS5d@?Rz5_s{abVfwBWe`YyRi|^+38dt~GyV`T0MY{)Xj8?fEm$&l~^nH#|RU(Vv-qUeTN1 zF#V`a|Kj-;u|Fo>p96@P=4Y+?b`yU?{+K=RQ~qG`w0}s`TB<;N*98DLkAFe&NvHPj Gef=+=OA=lH literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1013-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1013-EXCEL/mapping.ttl new file mode 100644 index 00000000..672ad2e4 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1013-EXCEL/mapping.ttl @@ -0,0 +1,29 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ + rml:reference "Name"; + rml:languageMap [ + rml:reference "lang" + ] + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1013-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1013-EXCEL/output.nq new file mode 100644 index 00000000..9b168eab --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1013-EXCEL/output.nq @@ -0,0 +1,3 @@ + "Venus"@en . + "Athina"@el . + "Bob"@nl . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1013-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC1013-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..681214caaed323d782df526871d56c9f7ceb3b74 GIT binary patch literal 4835 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ + rml:reference "Name"; + rml:languageMap [ + rml:reference "lang" + ] + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1013-ODS/output.nq b/src/test/resources/test-cases/RMLTC1013-ODS/output.nq new file mode 100644 index 00000000..9b168eab --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1013-ODS/output.nq @@ -0,0 +1,3 @@ + "Venus"@en . + "Athina"@el . + "Bob"@nl . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1013-ODS/student.ods b/src/test/resources/test-cases/RMLTC1013-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..15f81c5f412225174b4202b2b3d57f6f8c60bcd4 GIT binary patch literal 7544 zcmdT}XIN9)whbi|MJY;Asz{L0bHT35Tvgg#MaHt1q!xBLg6rw7tEd?Zi|2-_~C94m^~cq=?Z}%`4Mg& z5Lp40vGgG9rfD5EURlRi{QO*l98-%&ZTIbsM8YoS8xZ>1B z%3C?2=O;K&9Is~zleDIK*s3QTWQAk9JDomSKD4nk8mThZtnS_n5VM#e6P_c%p1X5A zp|&cWuIw3m>g#)=E-u5VdSfLj`x{I9iA5pt3+((JSs*HH?P4!7 z&{&v-Vp<`}uPRUZGR!5I9!X~o_baOEjHr-wPZJhw>I9XU$=%8D?;|Vdz;2sLz_TPB zXj~e;hJ;t3Hk66G!MDv;_7dY!WyItmZyB%ftd?gLy?-5F8Yxaa${0yM(ctY=K(3uy zREjoy94*Q|GPYPBLO)v@rHN&|C_-jA?U2Jb?a+_6jn7*gN!kC&lu-&;cOd`HfF5Ka zEhK>jL%fZ%4KuSc&+*qIMwe#nZ&WMSg=^2g8c?EAjr{DTpFg_uta~G(x{luQgE$dp z5d2XEh<1X%x)E1|5sI#xzw@wtOQeG_1r~M1N=Q_q%056x%HIQCJ{vApQmS3SWNnMP zs8nqA%7F5C4|pUyfByBpM)E;w+Q2#grW)UN`(;qAjO+cN)qge7Zu#=)|uTd ze4Zr!v~eQddLdf99z-=OpD2TM8e&z}e$hF`{>_=Vl2$?3jT-I){1LjquHGj7G= zWmBM91;(kaf1a5`4`;;E6xE3N&RJxu5`{RDW+=vI)zzYwnBVRQKlIRAUZG22+-sAV zLma?I)jo+>auO<4XPnp!_uW@9>})Jg3ADP{-w1j7GCzroRu511AwB1-XSq^l^xAg@ zQg8bchEE}1l!u#y9He0;zwp1?Nez6nNL77Mo!=e<4cNa4i@EFW@8dlND^YU2nK?Dp z9GNERjg2iqMYX7R6@J)`q35r-@MS6O(;9<|^`eD23OTE&&2}#Q8P|ai7M1>dl5bI9 z_?0}cTf&(hsH4U;`B3M+9A*sCN|U&1akE%VZhfW%<$<}CB+^wpt>5m*(>Q5*w?>Za z;@8V;y)X&ymk=;kr$GO`E0fuJLpy3j-jVzA?Zl$Gu)g9)s^{70W66tVuQ&;i5M2v^ z9{PHoGa~K2A=t~5J>~Mgk7i5}^E$CbVlDS>eE&5dLCfBJM(}&S;y8E`kz(DW8*h;Z zEjga=PKlqzY>beq9E2%YTdCB@TLpHql0sw@x0Ko4P**RPyLm+)!Ac(U(Hfin(9~YxIX|lG>e^Z8+ z#P#9cgX*^}uWQDG#ptjXk4*b7vtP08Y@;PkbCAUid(6L z^+u@EyBLVI`F;2}1oR_*w%1u-TkS{%k3d1nD5e(O%F{dA+F!UE7!R%4B$Cx|-5qig zXd{|nec&u(IA)Vpp%9g7O#r$yk=JHmcvD)0R+KebX3h&ynkryOrAW+z0R54`7KOueY*tJ zBF`PZDZEf=X}}eoe{IsRc7gYFLhjO&DXCetI3D9f3qwtch2hwIU5Sei+Y;GRLWL(n z(v;PN!@qD~h1sCja!X=JK@qfJK=Dpib*TL~QHC=M=eff;j@*O-Qy|iFz4raoRS|o+wydnE9b~w{GN#UzMc2YS z*Tgk)eeYvWaE=!X z!w%Y`wP+Dz9IM_0!-tcL6lMsejJNXu>z?Fk@{mL_E(dGVX08KD)%_bzdT$-K2I;$a z?W%;Scp8sb1T@RKS$`grnZc(?;=F%6He7aJfA##0Co+7d)XX6n7r|0)k|)L$yx zlnaZ}8MJ!psUCO9?rwl87g5X367k{?B4zG^6|_#{VI*r_>eq+_p)^?uF3?t}To3!J+V_S$3D+jI zjN%=pAKPN0Hl)(^xOQ9U%LnV`B83CRf>Aie{yf*?l>=Hf>j>cFCJa)sMY`$86 zrIL_*Q(BX=SOPH%{~X@9RZ(pEyuSsCkCCs}OPOhWAKs5`02RS8y3Ml5*T`WxG)kjy zY6SD!PJ>@*ort^NWs2tf_@Z($>s9&Z%M$$7KExk4TS*yB3kY_M42Eu%kvVjXJG7nK7(Zm2<}by!lns zdD;Xd9WNmLNx=II+JQZAK2^!9 zQ=Wc<$|pLw+iS9@E<@rND6n(8E05*Yo-_$J51HEuy6Xzr9YT5g=DRuMd3xhbooK#J z3FmWT-h4YBinw%Zo^jC*%zjphJbem1VLsC+sew){7a{=J=;d zRhy1`US(fH2+0$!xm+BQauvV zu*W<>d~Y`)$9xQw0}0g)`8eMmuNh9P=bQ@B57eB48q^FDPv|=JdGX1W0UO=peIc_&JVkYyPQqPS?;AwC-cxST1 zH;AYu<_jZ~iQDROYIxMHmefPt`(1bSgL@b5+4YO(+sE1k@iAP2(h+&&nbXwFCP~U9 zKOQ335Pl@4dh?ufZcJAGYzDy@A1RI9o+b`%f88nUeXIWh&QL;=9O7 zv>tB{g)Dh19tsAhCcNoMwpi4J%jY%E+wvw1S&x@a9Y2kDo&^FWgXmoKrWUV3H&$4( z5!|&YBU4-A9{HDUcC5ZbUQ`Z>XHGYf&M%peJpvY&>6qrPP0aBa?aP0{sA$|`vrM-( z(0=Pd>(1OoT-=K${|2FANg^6bZN8ou(sh)k-WfmeJP$fR98I4c1)LPbykUE<_J(va z=XCr~!o#}Jd(!ok5E(>p79Aa$N|G{pQ7W>*INkE_N;!3OO%6$3Q)A~2cDaE z2oDX;?!agDT)teO!Q&ajaHKGKmHq?A{73O`M&^)ZpT1`A{q^|(?*bz?<(1q4pj!45 z!u&c)eG{N>kUwc=S4lt@<`bKwzO9c%&Yo>t2GHcCS5<{Ven^1dv~F<8N;ZF7Y_Sbv zCzm116USLIyM0xTNI{2Ltx!LgoBl#{E8$FqAyvi(ZRtqE%BzgK>3fTkRE>F`%DVC` z9}Q3MZ?liD(L{`1p$?c$eP4K=ib2;_u0@`TU7+$9ctT(3*r{sJkQQ31CTU&U*%J`_ z__lOk1M<$cO~0%(H(4FDx;eG`hKHf^!22X8ly%oJZztjNcht^Rz4R9A3j=d20$0WK zuD0vdU^OQ1Tx8ZsYvVW%3%(83nkFCg*_}{lZ{>}YJNEcmO+0ZVyg+{DZk5OCq>^|5 zfIH6R|08KPDyY$fYZCd*SM3puBM?96B83VJG-c;sEmw^l9G~^mX@KRp@oHoot>SF ziwgpQ@b~u*2?>dbiAhRIN=r-2&dz@M@?}+3RYOBVTU%RiZ|~61(D?ZH{QNvl0CskE zPEJnFZghIuMMEeH01)t~DasrAVAnoa!E>Z2f@d>eEgfG8LS4(2PEY$j=Bn|y`j=yQ zmYY(jxCSlfZC9@l-I-r1dMrmCw^XZH&m7mYA-AGISs%nKl`(DS)vQj>L{r@EAWHA} z=&9C-*9nP{($g7E@Uy2A(4C6in5ii~hus?9b&M;7hI;rL_U5*JsF7{5`=gO(5};0D zkTSOpR;w3GgO1aPDa8zRY79y4X@B7CSCg3{QP%>?P8VFC^IWa` zW9{b2Wer)*g;HL*KTPhlCpM}sYk91QvM@ca5h-OmEX;jk5ftw=o{hPiTxPNFBG4WI zc1IuVKS}hZwNe_vKoGHFhN853uOF$TVtpjU#YW!2pz1D^llB*0D=&m<31J6^1y?%P z%#IiCrNad|r@@dL-E8;j50$+drAPS!&5UlG)V=JWsyT1!OcImpbCgy9FQ{0}>v^A& zj)ELJ@n|@kQHfqb%fZ#q19JO2gXs7C2B+92<&E`kDKakvG5b=_<8o)|MypdS6Gfg2#f)EvzhbyBucjf#S z0!YzWcP);y*wXy+?|r7(Xh3Hh#tmIZI*ohbX$ak;X`1HTPikKGBCpu>RP7S0>+H%r zYFtp)>Ihj_>6yOxSoGO+#Y(raZ1^3YxYu&_?g#bDJYRa2$1N)EvDC+PA7WE3y6s=7 zYr5K4B>x?P)ARXKl_LXA&{E~+|dJqK-k%OfPRlW%N&14BH?hCe?~F?0tI!ob%Y>53Q(l0 ztsCMWZh7?=U^lp%ryH)*>G==1UrqH4^3PNK70ST{Zi|HclUsf@M+DLq>G?mn^H&RD z3kE}6Ah>mb|6lKTwh(T%Fo?^)z4EK3?^zw{Y72upKoCfN4|@kp5(b7-+prCpaLBu{ zTOc6N<3>-NbLJb-2vZQw!SN2;E`E^k~4J66NPoXWW69GaKO{n{JGEoq$+&L>Xh(pQ;%!zXn|MyG+bWkkYV zm8_!*MMBCHrvTlZ54bA%ZjRK!L=U<0M}qG@i)_rKRKXt==WJ{A8zXC29^StdN2=Kq zh74tRt*y~6oU)@Q*^;$3*J;x@6q+q#v&n<%8=HzEd%kdIrm<|@GITm1*~xDm?B_Yu zzBPUQkxjbLy3Xf%Y2VYO6aK!_D|4k)UWzWa-sLzRCM;ELGaIRto+)S5zSAHOr<|cU zo%?;Oi5llVEhR&FJ~eG+(0}}ht6GYaw4B=nD8lz;!v|_ioh!LnwQ0gLSY(5_;~4IX zP#uzXukp}JyK~*At4NahxX~ycTXR%di6ONUVv^q0o>nEe(I_G5w|#|Du0 zQ&NVAdWgK$&R>=wcpa;45XE9Bg>T>b-t-~U4j|usJ%1@R;lhH^#3K;R;7)l0Vlr(h zl+k_*xjbt+L4FQ=3BB`>Xmulsj?>TP_Pyku7b>oYRGmOI`n?&NypY>A=48nltvz*G z(@utmc(d4DsW^A^N#oZ^+%rl{qFwb4DTH%6FRsU@tAU4q8Swk<51i+JvhSNA-%;P6 z^`AS2XB!+p%n&#HX}ja^z@J~^&WfKO#t8hmz4&+B&js#TaQ(0r-2H!k<@-DG=UVNo z0RCaq7jZ%Q?{fG%>UVYA50o~p#Qt4X_ji^bC;;Fr3H>l_+zR|X!~azq{<=&*kpHSH ze|(Sn1=A0$_&v*+TKur4U$Fc)?f5;}S!VuWN53HZSxbJ;bEXSFOc<93{_dn7+Va0; zf&PN!ht~X_<*)xK^A{{XYtQd_{<`p^zu@_+7X6;-uQQ^g`S0HOS)2aF^F3mJPP~5& yAT=D%e{w8NtG++P-;qCO58UK`vMAhs!7tOat_Bd-ssR8faUTdS=^X#LuKxv|Gbq6T literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1014-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1014-EXCEL/mapping.ttl new file mode 100644 index 00000000..1daa947c --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1014-EXCEL/mapping.ttl @@ -0,0 +1,29 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ + rml:reference "Name"; + rml:languageMap [ + rr:constant "en" + ] + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1014-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1014-EXCEL/output.nq new file mode 100644 index 00000000..5e89ac24 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1014-EXCEL/output.nq @@ -0,0 +1,3 @@ + "Venus"@en . + "Athina"@en . + "Bob"@en . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1014-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC1014-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..681214caaed323d782df526871d56c9f7ceb3b74 GIT binary patch literal 4835 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ + rml:reference "Name"; + rml:languageMap [ + rr:constant "en" + ] + ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1014-ODS/output.nq b/src/test/resources/test-cases/RMLTC1014-ODS/output.nq new file mode 100644 index 00000000..5e89ac24 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1014-ODS/output.nq @@ -0,0 +1,3 @@ + "Venus"@en . + "Athina"@en . + "Bob"@en . \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1014-ODS/student.ods b/src/test/resources/test-cases/RMLTC1014-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..d64174c886d9f1985bb6fa62657f60548001ba8e GIT binary patch literal 7544 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 literal 0 HcmV?d00001 diff --git a/src/test/resources/test-cases/RMLTC1015-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC1015-EXCEL/mapping.ttl new file mode 100644 index 00000000..4a2a563d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1015-EXCEL/mapping.ttl @@ -0,0 +1,24 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.xlsx"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/θερμότητα/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1015-EXCEL/output.nq b/src/test/resources/test-cases/RMLTC1015-EXCEL/output.nq new file mode 100644 index 00000000..3bb0a1c3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1015-EXCEL/output.nq @@ -0,0 +1,3 @@ + "Venus". + "Ç". + "Umutcan Şimşek". \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1015-EXCEL/student.xlsx b/src/test/resources/test-cases/RMLTC1015-EXCEL/student.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..ff022634820298c0093a864aa43e5e04761ea9a6 GIT binary patch literal 4802 zcmaJ_by!sG_63I;KypX{hZ1R!hCz@X`U9j5v8qkuC`V zr3NIV(cg^T-<9jV-?z^5%$YyVe$Vr+v-aL=zq%R#JP-~M5fP3ef>#IU0!T3b@4DMM z!2|`czsSV*4(&pu;oE-1xjsu(p~5Q9?!3#XxlvCzw> z;AEe5bkj~El1_b!pzNOh7`SKSUdc8MwnMio0^1AFzUi!49tYj1N zWg#QhL_s+VHL^O0z99QLrBC8aeRIN^3}Bk%l_Vqn+5>U$plgDEJDG)@81rL)#PadG zh^vtbU8B^zX)p;S{BB{CHI!k9uOzqM_PI&GI>#I{<7Ve;-eOTwX(k$Y$)L=ejW<**7-fs}Aab`JnqRB0?eukl!*albZ`-cLc`)P5ga6MY!qrdR9Sc4asW$ zZ1_3}TMJ`MU`c#@Mp6P(8k%!k%0@CH^8PFmJq;#ibLIB~O4*M!7lcSV-6V2%&S}mk zAuWS<2lCTZI)mUb3u1?FhfYdgJY^fdbm?%|lIeK(%vuSVwnqN&X4YTFCl6H;#kB5} z2WHmhBJs*uth;CgO<7{yryY$3l@dp27QfaJ#`c{q4|QGj-o4p4%ByFad`II7WPh17-Km2) zK!a650Z_+-m+j-O6z!;9Dg8L9j=NfLkUlZV*hYFtC|0Evrkeza+Yc&_ZHrzITa~^O zxExn|b1~qB^y}=?-EOzoP_82!0n&7;imuSF8jFsB(rt82Y}WuLZdO-yX(GM1;Pkew&%7#6%S zT>ZToFJqqYbP|NYy_{@eSd!4jIyy5#OikPR#?5gYoS?K}aM!5)Q(z1mtCmb!2bAxO ztHR>J(f+BF_DD$EwMXGJgB zL~{4Wumf2%+uRt5+BmeS>p(Ee%kM_@Oi>>cdnD%FaSDW0?rf>A+*{#IF`$kO76nQN ziE<~;u69fU?5&=EU|$4N)w@ISzAb4CG%DP}TZ$p%LgsO8$&(+3&4~+uy1cHw!}9@a zIau+Jxsw4#ztL%3?o~H-5F8ml Ni@e4KP?&k!c&Ppb^(L%uoi$lRj|Y0>EZdI1 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 . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@base . + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.ods"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/θερμότητα/{ID}"; + ]; + + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ rml:reference "Name" ] + ]. + diff --git a/src/test/resources/test-cases/RMLTC1015-ODS/output.nq b/src/test/resources/test-cases/RMLTC1015-ODS/output.nq new file mode 100644 index 00000000..3bb0a1c3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1015-ODS/output.nq @@ -0,0 +1,3 @@ + "Venus". + "Ç". + "Umutcan Şimşek". \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1015-ODS/student.ods b/src/test/resources/test-cases/RMLTC1015-ODS/student.ods new file mode 100644 index 0000000000000000000000000000000000000000..bb57c0ed9e406eabe7b42c916bc70da65aa0dcdf GIT binary patch literal 7477 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

_NSG$*!AxTZAq@_jK*sb-^fw zCZKrqwVO!q-0J7k+{8PxW5<9Ve+XsH&@>O%=No&h4A$vQ zjArvEh#k!ar1aE18>r5;4Vppmq*LWxR&XseCa#)}14n0NjCR!bp820>S-xrsYi95J4E7PHAZc`E{}N-m>|)!{Qi@(n3|1L`>Ot( zbH?{HnbQpd%u4nEP&qT1D7WUkjseia%jaCRt%cOw zf_EZA9$$T-_Cbk4UjXxS_lh#v+yL*pI4!@Tl}z5qh(b%oP7s78*?wBydS8k2{tdfn z^*~RUlo$V{m0+g)fC_!x)^s$aoQ`ofeQ!aGsv+k?Nms6E!m!2uHb))yT*&C*%P9@#?w7_CzF^lTXZg0P&+Y){CX!C8${+kjY@*2m= z;~VkXbGgF>aIW5Tsn`RfNHVoZ?qP=%kt)fq`1T|#epsepSQZQuQ`^9Vt4^EcJcIDF zu~ElS4Bp)xR^e#5eqZ{~^;0GBGJ-f@;MNE$N0=KJ{cXsLLfD6DX(*mOO?OgLpH)_p)4{(_;ICs+JPx2~seAH; zv6dP{o|&1Mlao_WP*6fbLQYOjO-&5~ftZ+>*x1-OJ3G6%xp{ec1q1|yhlf9W_%JOk zEi*Io`Sa%$6&3aM^{uU~Jv}``Lqii26SK3kcmeqM@#E3a(aA)|$BC5-1polSp0b<_ z4AlavYW`@}_d-ca&Bk9@NaR}qQaKb|#*2`@H6chqXkLPMtRy!=fxtfza-Y|t?Z$0U|B~r+zRFP4^z_p28=?YFerSR67vtZ-!1h7^3O~C9m)=dv_eDw z$t}NIqZ`@^jrkwk`MZszz88TP&Y%s+VCb8%TVNp2^=fyGQ^rf75JMn%JC$mxF)ChPJ3D_lV|cbmK>!z3 zk+x>V&=p>m+YAx30daIIIaGe&7O&&2$(axzAFJYKPG#J33e3s4R(l6=P0S)Om`8*h z)>oc+^=|5pq-H%^^IK6DCGw7nC{i+}NLk0-Id3|#H#1~*2HNPAzhXT0S#E}7#q<6u zJ8e~^({R6vCD#8IUg5ff(18rK8mjFAi96b2%}>^5IxQQ90y8BoH@Tzw#-<*SKb<#! z-%zq{8i?~waPVBW@x%Xy%wokh zvz}t{i3nEgI}8HxA{dC5tUq^+F5=y%E)S96QPxlZ|HqH`0;Dir-Kmw2GI;-H@IaNJ zQ~5PE4VvJ`EI0kGMKbscQhgzNwZ=^^;R5o%R2DBeyU`#LQFTyW-b-f9&m^&}fm0&9 z+Q2_{XYOG0t#8cXI&_7I?ks5MbN}!$pII>@=zIWpZW z(TSFqA!-gQ(~@pBefBYXz=W!Zur@+N_W=t;oWQna#4wg=2axNsp1YVD zb9P>D@*$XJaHllJ4V$(Y$Y{HTUYa(Xq&RIu-Ln%*yt?t=5|^jtZJ&hhXNvGIRGmO& z`n~rwIRUpVjmZ;KTe@r1aSo6#r>4hu#UovMjv78;@%JbRsYb;cG(X0)KoWJE>#78wK#kPT{Y(A8XZ< z;QDUm`1yZ)dixdmW7&05%YL_kbNC?rcV+tx^{0~TJL(p`TK-dk_AASG6aa9NgudGu z{0{t@;eXbKpSS5d@?Rz5_s{abVfwBWe`YyRi|^+38dt~GyV`T0MY{)Xj8?fEm$&l~^nH#|RU(Vv-qUeTN1 zF#V`a|Kj-;u|Fo>p96@P=4Y+?b`yU?{+K=RQ~qG`w0}s`TB<;N*98DLkAFe&NvHPj Gef=+=1QLJ% literal 0 HcmV?d00001