diff --git a/.gitattributes b/.gitattributes index eea259e2..50d31d15 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,4 @@ docs/apidocs/* binary + +# Mark Jelly files as binary +*.jelly binary diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0dfab496..856fa4c9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -10,14 +10,10 @@ include: - project: 'rml/util/ci-templates' ref: main file: 'CHANGELOG.gitlab-ci.yml' - # Make sure the repository token is always valid - - project: 'rml/util/ci-templates' - ref: main - file: 'Token.gitlab-ci.yml' - # Push a Docker Image to Docker Hub on new tags - - project: 'rml/util/ci-templates' - ref: main - file: 'Docker-Hub.gitlab-ci.yml' +# # Push a Docker Image to Docker Hub on new tags +# - project: 'rml/util/ci-templates' +# ref: main +# file: 'Docker-Hub.gitlab-ci.yml' # Push a build to Maven Central on new tags - project: 'rml/util/ci-templates' ref: main @@ -56,10 +52,10 @@ default: General: stage: unittests image: - name: maven:3-eclipse-temurin-17 + name: maven:3-eclipse-temurin-21 pull_policy: if-not-present services: - - name: docker:23.0.1-dind + - name: docker:29-dind # explicitly disable tls to avoid docker startup interruption command: ["--tls=false"] variables: @@ -77,129 +73,20 @@ General: - '$TEST.log' parallel: matrix: - - TEST: [ArgumentsTest, MapperCSVTest, MapperJSONTest, MapperMySQLTest, MapperPostgresR2RMLTest, MapperWoTTest, ArgumentsTestMySQLTest, MapperCSVWTest, MapperLDESTest, MapperODSTest, MapperOracleDBTest, MapperPostgresXMLTest, MapperXMLTest, CustomRMLFnOMapperCSVTest, MapperEXCELTest, MapperMappingFileURLTest, MapperSPARQLTest, MetadataTest, CustomRMLFnOMapperJSONTest, CustomRMLFnOMapperTest, MapperHTMLTest, MapperMySQLR2RMLTest, MapperPostgresCSVTest, MapperSQLServerTest, OptimizationsTest, R2RMLConverterTest, QuadTest, ReadmeTest, ReadmeFunctionTest, ConformerDetectionTest, MapperNewRMLCoreCSVTest, MapperNewRMLCoreJSONTest, MapperNewRMLCoreXMLTest, MapperNewRMLCoreMySQLTest, MapperNewRMLCorePostgresTest, MapperNewRMLIOSourceTest, MapperNewRMLIOTargetTest] + - TEST: [ArgumentsTest, MapperCSVTest, MapperJSONTest, MapperMySQLTest, MapperPostgresR2RMLTest, MapperWoTTest, ArgumentsTestMySQLTest, MapperCSVWTest, MapperLDESTest, MapperODSTest, MapperOracleDBTest, MapperPostgresXMLTest, MapperXMLTest, CustomRMLFnOMapperCSVTest, MapperEXCELTest, MapperMappingFileURLTest, MapperSPARQLTest, MetadataTest, CustomRMLFnOMapperJSONTest, CustomRMLFnOMapperTest, MapperHTMLTest, MapperMySQLR2RMLTest, MapperPostgresCSVTest, MapperSQLServerTest, OptimizationsTest, R2RMLConverterTest, QuadTest, ReadmeTest, ReadmeFunctionTest, ConformerDetectionTest, MapperNewRMLCoreJSONTest, MapperNewRMLIOSourceTest, MapperNewRMLIOTargetTest, HttpRequestTargetTest, MapperCrossConcatSequenceTest] except: - master - development -############################### -# # -# Automated Releases # -# # -############################### - -# Bump version, create changelog, commit changes to master -# Only happens when manually clicked in the CI pipeline -# Thanks to: https://www.benjaminrancourt.ca/how-to-push-to-a-git-repository-from-a-gitlab-ci-pipeline -# Description -# This script allows to store the artefacts of a step into the current -# repository, to improve the efficiency of the next build process. - -# Set up this script -# 1. Create a new personal access token (https://gitlab.com/-/profile/personal_access_tokens) -# with the following scopes: -# - read_repository -# - write_repository -# 2. Inside Settings -> CI / CD -> Variables, create the following variables: -# -# GITLAB_TOKEN Personal access token previously created. XGE2-k445hd5fbs94v9d -# (masked) -# GITLAB_USERNAME Username associated with the personal access token. ranb2002 -# COMMIT_MESSAGE Commit message Automatic update from the weekly schedule - -# Other variables used by this script -# The following variables are defined automatically by GitLab CI. Thus, you -# don't need to override them. -# -# CI_COMMIT_SHA Commit SHA, to use a unique directory name. e46f153dd47ce5f3ca8c56be3fb5d55039853655 -# CI_DEFAULT_BRANCH Default branch. main -# CI_PROJECT_PATH Current project path. ranb2002/benjaminrancourt.ca -# CI_SERVER_HOST Hostname of the current GitLab instance. gitlab.com -# GITLAB_USER_EMAIL Email of the user used to commit the changes to the ranb2002@gitlab.com -# secondary repository. -# GITLAB_USER_NAME User name of the user used to commit the changes to Benjamin Rancourt -# the secondary repository. -# -Create Release: - image: - entrypoint: [''] - name: alpine/git:${GIT_VERSION} - pull_policy: if-not-present - stage: release - before_script: - # Dependencies - - apk add maven java-jdk - # Clone the repository via HTTPS inside a new directory - - git clone "https://${GITLAB_USERNAME}:${GITLAB_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_PATH}.git" "${CI_COMMIT_SHA}" - - # Set the displayed user with the commits that are about to be made - - git config --global user.email "${GIT_USER_EMAIL:-$GITLAB_USER_EMAIL}" - - git config --global user.name "${GIT_USER_NAME:-$GITLAB_USER_NAME}" - script: - # Using before_script would override .git:push template - # User has to set the RELEASE_TAG_NAME variable - - if [ -z "$RELEASE_TAG_NAME" ]; then exit 1; else echo "Creating release v$RELEASE_TAG_NAME"; fi - # Install dependencies - - apk add nodejs npm - - npm install -g changefrog - - # Update pom.xml - - head -n6 pom.xml | sed "//s/>.*$RELEASE_TAG_NAME pom_updated.xml - - tail -n +7 pom.xml >> pom_updated.xml - - mv pom_updated.xml pom.xml - # Update changelog. Changefrog does not like vX.X.X so drop 'v' - - changefrog -n "$RELEASE_TAG_NAME" - # Build a Jar - - mvn install -DskipTests=true - # Stage changes for commit to master - - cp -u pom.xml "${CI_COMMIT_SHA}/pom.xml" - - cp -u CHANGELOG.md "${CI_COMMIT_SHA}/CHANGELOG.md" - - cp -u buildNumber.properties "${CI_COMMIT_SHA}/buildNumber.properties" - after_script: - # Go to the new directory - - cd "${CI_COMMIT_SHA}" - - # Add all generated files to Git - - git add . - - |- - # Check if we have modifications to commit - CHANGES=$(git status --porcelain | wc -l) - - if [ "$CHANGES" -gt "0" ]; then - # Show the status of files that are about to be created, updated or deleted - git diff --cached --shortstat - - # Commit all changes - COMMIT_MESSAGE="CHANGELOG: release v$RELEASE_TAG_NAME" - echo "Commit message: ${COMMIT_MESSAGE}" - git commit -m "${COMMIT_MESSAGE}" - - # Create git tag - git tag "v$RELEASE_TAG_NAME" - - # Update the repository and make sure to skip the pipeline create for this commit - git push origin "${CI_DEFAULT_BRANCH}" - # Push new tags and trigger the pipeline since we're deploying - git push --tags origin "${CI_DEFAULT_BRANCH}" - - # Also release on the master branch - git checkout master - git rebase "${CI_DEFAULT_BRANCH}" - git push origin master - fi - when: manual - only: - - development - # Generate R2RML test report and attach it as a artifact. # Manual: make a MR to the rml.io website R2RML Test Report: stage: deploy image: - name: docker:latest + name: docker:29 pull_policy: if-not-present services: - - docker:23.0.1-dind + - docker:29-dind before_script: # Dependencies - apk add git python3 python3-dev py3-pip postgresql-dev postgresql libpq gcc musl-dev docker docker-compose java-jre-headless maven java-jdk @@ -217,6 +104,7 @@ R2RML Test Report: # Variables - R2RML_TAG_NAME=$(git tag -l "v*" --sort=-creatordate | head -n1 || echo "$CI_COMMIT_REF_NAME") - (if [ "$R2RML_TAG_NAME" == "$CI_COMMIT_REF_NAME" ]; then echo "$CI_COMMIT_REF_NAME"; else R2RML_TAG_NAME=$(echo "$R2RML_TAG_NAME" | cut -c2-); fi) + - R2RML_TAG_NAME=$(echo "$R2RML_TAG_NAME" | tr -d '\n') - TODAY=$(date +"%Y-%m-%d") # Build RMLMapper jar diff --git a/.m2/settings.xml b/.m2/settings.xml index f01b50ab..48953beb 100644 --- a/.m2/settings.xml +++ b/.m2/settings.xml @@ -6,10 +6,5 @@ xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001 ${env.MAVEN_REPO_USER} ${env.MAVEN_REPO_PASS} - - ossrh - ${env.MAVEN_REPO_USER} - ${env.MAVEN_REPO_PASS} - diff --git a/CHANGELOG.md b/CHANGELOG.md index cb4cecd3..29ec3ee8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,126 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## Unreleased +### Changed +- RMLMapper crashes when parent Triples Map cannot be found (https://github.com/RMLio/rmlmapper-java/issues/270). This changes behaviour of RMLMapper (log error instead of stopping), but is still valid RML Processor behaviour. + +## [8.1.0] - 2025-12-23 + +### Added +- `crossConcat` and `crossConcatSequence` functions (by updating dependency to idlab-functions-java) + +### Changed +- Requires Java version >= 21 + +### Fixed +- Updated dependency function-agent-java to 1.3.0 +- Updated idlab-functions-java to 1.4.0 +- Publish to Maven Central using central-publishing-maven-plugin + +## [8.0.1] - 2025-12-11 + +### Fixed +- Dependency updates to address some vulnerabilities: +- DataIO to 2.5.2 +- Jena to 5.2.0 +- commons-lang3 to 3.18.0 +- json-smart to 2.5.2 +- Added dependency to commons-cli (a transitive dependency which got lost) +- Update DataIO to 2.2.0 (to address https://github.com/RMLio/rmlmapper-java/issues/266) +- Update testcontainers-* dependencies to 2.0.2 +- GitLab CI: update GitLab CI Docker (services) to version 29 +- Update grel-functions-java to v0.10.1 to fix bug in quotient function + +## [8.0.0] - 2025-09-18 + +### Fixed +- A join between triples maps with different logical targets might result in quads ending up in wrong targets. +- rmle:contentTypeHeader and rmle:acceptHeader is replaced by generic htv:headers for Http Request Targets. +- Comparing htv:headers might go wrong due to String comparison. +- Conversion to new RML goes wrong when an object map has term type Literal. + +### Added +- Option to serialize output as Jelly. + +### Changed +- Updated new RML test cases for IO and Core. +- Updated dependency of DataIO to 2.1.2 + +### Removed +- `QuadStore`: removed deprecated `write` methods. + +## [7.3.3] - 2025-04-07 + +### Fixed +- Better handle unsupported reference formulation (See [issue 247](https://github.com/RMLio/rmlmapper-java/issues/247)) +- Graph Maps with default graph must not be ignored (See [issue 252](https://github.com/RMLio/rmlmapper-java/issues/252)) +- Honor datatypes for constants (See [issue 251](https://github.com/RMLio/rmlmapper-java/issues/251)) +- Honor language tags for constants (See [issue 251](https://github.com/RMLio/rmlmapper-java/issues/251)) + +## [7.3.2] - 2025-03-04 + +### Fixed +- Updated Function Agent to 1.2.1 because of a bugfix (See [this issue in Gitlab](https://gitlab.ilabt.imec.be/KNoWS/fno/proc/function-component/-/issues/23), fixes [#249](https://github.com/RMLio/rmlmapper-java/issues/249) on GitHub; + +## [7.3.1] - 2025-01-22 + +### Fixed +- Upgraded dataio to 2.0.1 incorporating dataio security fixes. +- Upgraded logback-core to 1.5.16 to fix 2 security CVEs. + +## [7.3.0] - 2025-01-22 + +### Changed +- Some tests are changed because record error handling has changed. + +### Fixed +- Optimization for authentication with CSS Client Credentials +- Update URI of prefix 'rmle:' to persistent w3id URI: 'https://w3id.org/imec/rml/ns/extensions#' +- Added all known content types for newline delimited JSON +- Fixed the return type of GREL array slice function in function description. +- Updated all Jena library dependencies to version 5.0.0 +- Added explicit dependencies on commons-io:2.18.0, commons-compress-1.27.1 and commons-lang3:3.17.0 to avoid runtime errors. +- Updated rdf4j-client to 5.1.0 +- Updated wiremock to 3.9.1 (3.10.0 contains bugs in combination with saxon). +- Updated grel-functions-java to v0.10.0 +- Updated dataio to 2.0.0, *the* reason for most changes ;) +- Updated testcontainers to 1.18.3 +- Inconsistencies in test case RMLTC0007h (mapping + all formats) and RMLTC0009a (JSON) + +## [7.2.0] - 2024-12-09 + +### Added +- CLI option `--convert-mapping` to convert your existing R2RML and older RML mappings +to the latest version by the W3C Community Group. +- HTTP request targets +- dynamic logical targets + +### Fixed +- GREL array functions handling. + +## [7.1.2] - 2024-09-19 + +### Fixed +- `release.sh` now also updates `pom.xml` with the given tag. + +## [7.1.1] - 2024-09-19 + +### Fixed +- Updated idlab-functions-java to 1.3.3 to use correct state path in stateful functions when `ifState` environment variable is set. + +### Changed +- CI: use local script for release + +## [7.1.0] - 2024-08-13 + +### Added +- Serialization format TriG is now supported for Logical Targets (fixes GitHub [issue 225](https://github.com/RMLio/rmlmapper-java/issues/225)). + +### Fixed +- Crash when null is returned in an XPath function for subject generation (fixes GitHub [issue 236](https://github.com/RMLio/rmlmapper-java/issues/236)) +- Update to DataIO 1.3.1: `DATAIO_NULL` value occurring in RDF output when CSV quoted string has newline character in it (fixes GitHub [issue 238](https://github.com/RMLio/rmlmapper-java/issues/238)) +- RML Test report script: remove newlines from R2RML targ name + ## [7.0.0] - 2024-06-07 ### Fixed @@ -111,8 +231,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Update dependency to `idlab-functions-java`, fixing [issue #218](https://github.com/RMLio/rmlmapper-java/issues/218) ### Changed -<<<<<<< HEAD -- Dockefile: switched to Eclipse OpenJDK Docker base image because OpenJDK is deprecated +- Dockerfile: switched to Eclipse OpenJDK Docker base image because OpenJDK is deprecated - CI: dropped GitHub release automation - CI: verify if token is valid @@ -730,6 +849,17 @@ and [169](https://gitlab.ilabt.imec.be/rml/proc/rmlmapper-java/-/issues/169)) - support for accessing remote files (via HTTP GET) - basic support for functions +[8.1.0]: https://github.com/RMLio/rmlmapper-java/compare/v8.0.1...v8.1.0 +[8.0.1]: https://github.com/RMLio/rmlmapper-java/compare/v8.0.0...v8.0.1 +[8.0.0]: https://github.com/RMLio/rmlmapper-java/compare/v7.3.3...v8.0.0 +[7.3.3]: https://github.com/RMLio/rmlmapper-java/compare/v7.3.2...v7.3.3 +[7.3.2]: https://github.com/RMLio/rmlmapper-java/compare/v7.3.1...v7.3.2 +[7.3.1]: https://github.com/RMLio/rmlmapper-java/compare/v7.3.0...v7.3.1 +[7.3.0]: https://github.com/RMLio/rmlmapper-java/compare/v7.2.0...v7.3.0 +[7.2.0]: https://github.com/RMLio/rmlmapper-java/compare/v7.1.2...v7.2.0 +[7.1.2]: https://github.com/RMLio/rmlmapper-java/compare/v7.1.1...v7.1.2 +[7.1.1]: https://github.com/RMLio/rmlmapper-java/compare/v7.1.0...v7.1.1 +[7.1.0]: https://github.com/RMLio/rmlmapper-java/compare/v7.0.0...v7.1.0 [7.0.0]: https://github.com/RMLio/rmlmapper-java/compare/v6.5.1...v7.0.0 [6.5.1]: https://github.com/RMLio/rmlmapper-java/compare/v6.5.0...v6.5.1 [6.5.0]: https://github.com/RMLio/rmlmapper-java/compare/v6.3.0...v6.5.0 diff --git a/CITATION.cff b/CITATION.cff new file mode 100644 index 00000000..11df63e6 --- /dev/null +++ b/CITATION.cff @@ -0,0 +1,23 @@ +cff-version: 1.2.0 +message: "If you use this software, please cite it as below." +authors: +- family-names: "Heyvaert" + given-names: "Pieter" + orcid: "https://orcid.org/0000-0002-1583-5719" +- family-names: "Van Assche" + given-names: "Dylan" + orcid: "https://orcid.org/0000-0002-7195-9935" +- family-names: "De Meester" + given-names: "Ben" + orcid: "https://orcid.org/0000-0003-0248-0987" +- family-names: "Haesendonck" + given-names: "Gerald" + orcid: "https://orcid.org/0000-0003-1605-3855" +- family-names: "de Vleeschauwer" + given-names: "Els" + orcid: "https://orcid.org/0000-0002-8630-3947" +- given-names: "Sitt Min Oo" + orcid: "https://orcid.org/0000-0001-9157-7507" +title: "RMLMapper-JAVA" +doi: 10.5281/zenodo.3929132 +url: "https://github.com/RMLio/rmlmapper-java" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 725f6b66..f58a25be 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,14 +1,14 @@ # Build image -FROM maven:3-eclipse-temurin-17 as buildimage +FROM maven:3.9.12-eclipse-temurin-21-alpine AS buildimage ADD . /rmlmapper-java -WORKDIR rmlmapper-java +WORKDIR /rmlmapper-java RUN mvn -Pno-buildnumber clean package -DskipTests=true RUN mv $(readlink -f target/rmlmapper-*-all.jar) /rmlmapper.jar # "Runtime" image -FROM eclipse-temurin:17-jre +FROM eclipse-temurin:25-jre COPY --from=buildimage /rmlmapper.jar /rmlmapper.jar WORKDIR /data diff --git a/README.md b/README.md index 357eefb0..74218ff9 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,8 @@ and see [Usage](#cli) on how to use the commandline interface! - [Including functions](#including-functions) - [Generating metadata](#generating-metadata) - [Testing](#testing) + - [Command line](#command-line) + - [IntelliJ](#intellij) - [RDBs](#rdbs) - [Dependencies](#dependencies) - [Commercial Support](#commercial-support) @@ -38,48 +40,65 @@ and see [Usage](#cli) on how to use the commandline interface! ## Features ### Supported + - local data sources: - Excel (.xlsx) - LibreOffice (.ods) - - CSV files (including CSVW) - - JSON files (JSONPath) + - CSV files + - including CSVW, for an overview of which parts of CSVW are supported, have a look at the [test cases, introduced in v4.4.0](https://github.com/RMLio/rmlmapper-java/tree/master/src/test/resources/test-cases-CSVW) + - JSON files (JSONPath (`@` can be used to select the current object.)) - XML files (XPath) - remote data sources: - relational databases (MySQL, PostgreSQL, Oracle, and SQLServer) - - Web APIs with W3C Web of Things + - Web APIs with W3C Web of Things, see [an exemplary test case, introduced in v4.13.0](https://github.com/RMLio/rmlmapper-java/blob/master/src/test/resources/web-of-things/logical-target/sparql/mapping.ttl) - SPARQL endpoints - files via HTTP urls (via GET) - - CSV files + - CSV files, see [an exemplary test case, introduced in v0.1.0](https://github.com/RMLio/rmlmapper-java/blob/master/src/test/resources/test-cases/RMLTC1003-CSV/mapping.ttl) - JSON files (JSONPath (`@` can be used to select the current object.)) - XML files (XPath) - functions (most cases) - For examples on how to use functions within RML mapping documents, you can have a look at the [RML+FnO test cases](https://github.com/RMLio/rml-fno-test-cases) + - Notable function examples include + - SHA1 and MD5 functions, see [this comment on issue 100](https://github.com/RMLio/rmlmapper-java/issues/100#issuecomment-826547387) + - Lookup function, see [this comment on issue 200](https://github.com/RMLio/rmlmapper-java/issues/220#issuecomment-1754422677) - configuration file - metadata generation -- output formats: nquads (default), turtle, trig, trix, jsonld, hdt - join conditions +- output formats: nquads (default), turtle, trig, trix, jsonld, hdt, [jelly](https://w3id.org/jelly) - targets: - local file - VoID dataset - SPARQL endpoint with SPARQL UPDATE + - [HTTP request access](https://rml.io/specs/access/httprequest/) + - [dynamic logical targets](https://rml.io/specs/target/dynamictarget/) + +All functionalities above refer to using RML as maintained at . +There is _some_ support for RML as developed within W3C's [Knowledge Graph Construction Community Group](https://www.w3.org/community/kg-construct/), for a recent view, see the [test cases, support introduced in v7.0.0](https://github.com/RMLio/rmlmapper-java/tree/master/src/test/resources/new-test-cases). ### Future + - functions (all cases) - conditions (all cases) +- logical views + - Currently, this can be mitigated: we maintain a preprocessor to support this: [RML-view-to-CSV](https://github.com/RMLio/rml-view-to-csv). - data sources: - NoSQL databases - TPF servers + - [HTTP request access](https://rml.io/specs/access/httprequest/) + - dynamic logical source + - Currently, this can be mitigated: RMLMapper allows to use the commandline interface to combine multiple mapping rules, so you could script it, for more info, see [issue 161](https://github.com/RMLio/rmlmapper-java/issues/161). ## Releases The standalone jar file (that has a [commandline interface](#cli)) for every release can be found on the release's page on GitHub. -You can find the latest release [here](https://github.com/RMLio/rmlmapper-java/releases/latest). +You can find the latest release on [the dedicated RMLMapper-JAVA Github release page](https://github.com/RMLio/rmlmapper-java/releases/latest). This is the recommended way to get started with RMLMapper. Do you want to build from source yourself? Check [Build](#build). ## Build + The RMLMapper is built using Maven. -As it is also tested against Oracle (check [here](#accessing-oracle-database) for details), +As it is also tested against Oracle (check [the RDB documentation below](#rdbs) for details), it needs a specific set-up to run all tests. That's why we recommend to build without testing: `mvn install -DskipTests=true`. If you want, you can install with tests, and just skip the Oracle tests: `mvn test -Dtest=!Mapper_OracleDB_Test`. @@ -89,19 +108,22 @@ A standalone jar can be found in `/target`. Two jars are found in `/target`: a slim jar without bundled dependencies, and a standalone jar (suffixed with `-all.jar`) with all dependencies bundled. Building with profile `no-buildnumber` disables using and updating `buildNumber.properties` (and uses `0` as build number), e.g.: -``` + +```bash mvn clean package -P no-buildnumber ``` + outputs for example `target/rmlmapper--r0.jar` ## Usage ### CLI + The following options are most common. - `-m, --mapping `: one or more mapping file paths and/or strings (multiple values are concatenated). - `-o, --output `: path to output file -- `-s,--serialization `: serialization format (nquads (default), trig, trix, jsonld, hdt) +- `-s,--serialization `: serialization format (nquads (default), trig, trix, jsonld, hdt, [jelly](https://w3id.org/jelly)) All options can be found when executing `java -jar rmlmapper.jar --help`, that output is found below. @@ -112,6 +134,9 @@ options: -b,--base-iri Base IRI used to expand relative IRIs in generated terms in the output. -c,--configfile path to configuration file + --convert-mapping Only convert the mapping to the + latest RML specification by the W3C + Community Group -d,--duplicates remove duplicates in the HDT, N-Triples, or N-Quads output --disable-automatic-eof-marker Setting this option assumes input @@ -142,7 +167,7 @@ options: passwords, certificates, etc. -s,--serialization serialization format (nquads (default), turtle, trig, trix, - jsonld, hdt) + jsonld, hdt, jelly) --strict Enable strict mode. In strict mode, the mapper will fail on invalid IRIs instead of skipping them. @@ -157,13 +182,13 @@ options: #### Accessing Web APIs with authentication The [W3C Web of Things Security Ontology](https://www.w3.org/2019/wot/security) -is used to describe how Web APIs authentication should be performed +is used to describe how Web APIs authentication should be performed but does not include the necessary credentials to access the Web API. These credentials can be supplied using the `-psd ` CLI argument. The `PATH` argument must point to one or more private security files which contain the necessary credentials to access the Web API. -An example can be found in the test cases +An example can be found in the test cases [src/test/resources/web-of-things](src/test/resources/web-of-things). ### Library @@ -191,13 +216,12 @@ The RMLMapper is executed in the `/data` folder in the Docker container. ### Including functions There are three ways to include (new) functions within the RML Mapper - * dynamic loading: you add links to java files or jar files, and those files are loaded dynamically at runtime - * preloading: you register functionality via code, and you need to rebuild the mapper to use that functionality - * add as dependency - -Registration of functions is done using a Turtle file, which you can find in `src/main/resources/functions.ttl` +- dynamic loading: you add links to java files or jar files, and those files are loaded dynamically at runtime +- preloading: you register functionality via code, and you need to rebuild the mapper to use that functionality +- add as dependency +Registration of functions is done using a Turtle file, which you can find in `src/main/resources/functions.ttl` #### Dynamic loading @@ -209,6 +233,7 @@ You can change the functions.ttl path (or use multiple functions.ttl paths) usin For example the snippets below dynamically link an fno:Function to a library, provided by a jar-file (`CustomFunctions.jar`). The example links a function that parses the latitude (`50.2`) out of the following string `"POINT (50.2 5.3)"`. `functions.ttl` contains the description of the function in Turtle: + ```turtle @prefix dcterms: . @prefix doap: . @@ -238,7 +263,9 @@ grelm:parsePointLat fno:methodMapping [ a fnom:Function ; fnom:method-name "parsePointLat" ] . ``` + The accompanying java file `CustomFunctions.java`: + ```java public class CustomFunctions { public static String parsePointLat(String s) { @@ -246,7 +273,9 @@ public class CustomFunctions { } } ``` + To dynamically include the custom function, compile the java-file and include `functions.ttl` with the `-f` option: + ```bash javac CustomFunctions.java && jar cvf CustomFunctions.jar CustomFunctions.class java -jar mapper.jar -f functions.ttl @@ -283,60 +312,68 @@ and up to which level metadata should be stored (dataset, triple, or term level ## Testing ### Command line -Run the tests via `test.sh`. + +Run the tests via `test.sh`. ### IntelliJ -Right-click `src/test/java` directory and select "Run 'All tests'". + +Right-click `src/test/java` directory and select "Run 'All tests'". #### 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. On Unix, others read-write permission (006) is required on `/var/run/docker.sock` in order to run the tests. -The tests will fail otherwise, as Testcontainers can't spin up the container. +The tests will fail otherwise, as Testcontainers can't spin up the container. #### Problems -* A problem with Docker (can't start the container) causes the SQLServer tests to fail locally. These tests will always succeed locally. -* A problem with Docker (can't start the container) causes the PostgreSQL tests to fail locally on Windows 7 machines. + +- A problem with Docker (can't start the container) causes the SQLServer tests to fail locally. These tests will always succeed locally. +- A problem with Docker (can't start the container) causes the PostgreSQL tests to fail locally on Windows 7 machines. ## Dependencies -| Dependency | License | -|:----------------------------------------------:|--------------------------------------------------------------------| -| ch.qos.logback logback-classic | Eclipse Public License 1.0 & GNU Lesser General Public License 2.1 | -| com.github.fnoio function-agent-java | MIT | -| com.github.fnoio grel-functions-java | MIT | -| com.github.fnoio idlab-functions-java | MIT | -| com.github.rdfhdt hdt-java | GNU Lesser General Public License v3.0 | -| com.github.tomakehurst:wiremock-jre8 | Apache License 2.0 | -| com.microsoft.sqlserver mssql-jdbc | MIT | -| com.mysql mysql-connector-java | GNU General Public License v2.0 | -| com.oracle.database.jdbc:ojdbc11 | Oracle Free Use Terms and Conditions | -| net.minidev json-smart | Apache License 2.0 | -| org.apache.jena fuseki-main | Apache License 2.0 | -| org.eclipse.rdf4j rdf4j-client | Eclipse Distribution License v1.0 | -| org.junit.jupiter junit-jupiter-api | Eclipse Public License v2.0 | -| org.junit.jupiter junit-jupiter-engine | Eclipse Public License v2.0 | -| org.junit.jupiter junit-jupiter-params | Eclipse Public License v2.0 | -| org.junit.vintage junit-vintage-engine | Eclipse Public License v2.0 | -| org.postgresql postgresql | BSD | -| org.testcontainers jdbc | MIT | -| org.testcontainers junit-jupiter | MIT | -| org.testcontainers mssqlserver | MIT | -| org.testcontainers mysql | MIT | -| org.testcontainers oracle-xe | MIT | -| org.testcontainers postgresql | MIT | +| Dependency | License | +|:--------------------------------------:|--------------------------------------------------------------------| +| ch.qos.logback logback-classic | Eclipse Public License 1.0 & GNU Lesser General Public License 2.1 | +| com.github.fnoio function-agent-java | MIT | +| com.github.fnoio grel-functions-java | MIT | +| com.github.fnoio idlab-functions-java | MIT | +| com.github.rdfhdt hdt-java | GNU Lesser General Public License v3.0 | +| com.github.tomakehurst:wiremock-jre8 | Apache License 2.0 | +| com.google.protobuf protobuf-java | BSD 3-clause | +| com.microsoft.sqlserver mssql-jdbc | MIT | +| com.mysql mysql-connector-java | GNU General Public License v2.0 | +| com.oracle.database.jdbc:ojdbc11 | Oracle Free Use Terms and Conditions | +| eu.neverblink.jelly jelly-core | Apache License 2.0 | +| eu.neverblink.jelly jelly-rdf4j | Apache License 2.0 | +| net.minidev json-smart | Apache License 2.0 | +| org.apache.jena fuseki-main | Apache License 2.0 | +| org.eclipse.rdf4j rdf4j-client | Eclipse Distribution License v1.0 | +| org.junit.jupiter junit-jupiter-api | Eclipse Public License v2.0 | +| org.junit.jupiter junit-jupiter-engine | Eclipse Public License v2.0 | +| org.junit.jupiter junit-jupiter-params | Eclipse Public License v2.0 | +| org.junit.vintage junit-vintage-engine | Eclipse Public License v2.0 | +| org.postgresql postgresql | BSD | +| org.testcontainers jdbc | MIT | +| org.testcontainers junit-jupiter | MIT | +| org.testcontainers mssqlserver | MIT | +| org.testcontainers mysql | MIT | +| org.testcontainers oracle-xe | MIT | +| org.testcontainers postgresql | MIT | ## Commercial Support Do you need... -- training? -- specific features? -- different integrations? -- bugfixes, on _your_ timeline? -- custom code, built by experts? -- commercial support and licensing? +- training? +- specific features? +- different integrations? +- bugfixes, on _your_ timeline? +- custom code, built by experts? +- commercial support and licensing? You're welcome to [contact us](mailto:info@rml.io) regarding on-premise, enterprise, and internal installations, integrations, and deployments. @@ -348,6 +385,7 @@ 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 @@ -365,40 +403,44 @@ The regex has no support for languages of length 5-8, but this currently only ap Performance depends on the serialization format (`--serialization `) and if duplicate removal is enabled (`--duplicates`). -Experimenting with various configurations may lead to better performance for +Experimenting with various configurations may lead to better performance for your use case. ### I have a question! Where can I get help? -Do you have any question related to writing RML mapping rules, -the RML specification, etc., feel free to ask them -here: https://github.com/kg-construct/rml-questions ! -If you have found a bug or need a feature for the RMLMapper itself, +Do you have any question related to writing RML mapping rules, +the RML specification, etc., feel free to ask them +here: ! +If you have found a bug or need a feature for the RMLMapper itself, you can make an issue in this repository. ## Documentation + Generate static files at /docs/apidocs with: -``` + +```bash mvn javadoc:javadoc ``` ### UML Diagrams #### Architecture UML Diagram + ##### How to generate with IntelliJ IDEA + (Requires Ultimate edition) -* Right click on package: "be.ugent.rml" -* Diagrams > Show Diagram > Java Class Diagrams -* Choose what properties of the classes you want to show in the upper left corner -* Export to file > .png | Save diagram > .uml +- Right click on package: "be.ugent.rml" +- Diagrams > Show Diagram > Java Class Diagrams +- Choose what properties of the classes you want to show in the upper left corner +- Export to file > .png | Save diagram > .uml #### Sequence Diagram + ##### Edit on [draw.io](https://www.draw.io) -* Go to [draw.io](https://www.draw.io) -* Click on 'Open Existing Diagram' and choose the .html file + +- Go to [draw.io](https://www.draw.io) +- Click on 'Open Existing Diagram' and choose the .html file [1]: A. Dimou, T. De Nies, R. Verborgh, E. Mannens, P. Mechant, and R. Van de Walle, “Automated metadata generation for linked data generation and publishing workflows,” in Proceedings of the 9th Workshop on Linked Data on the Web, Montreal, Canada, 2016, pp. 1–10. [PDF](http://events.linkeddata.org/ldow2016/papers/LDOW2016_paper_04.pdf) - - diff --git a/buildNumber.properties b/buildNumber.properties index c41a835d..a2d8f523 100644 --- a/buildNumber.properties +++ b/buildNumber.properties @@ -1,3 +1,3 @@ #maven.buildNumber.plugin properties file -#Fri Jun 07 09:38:54 GMT 2024 -buildNumber0=372 +#Tue Dec 23 11:40:14 CET 2025 +buildNumber0=380 diff --git a/pom.xml b/pom.xml index 7d0a5708..da672038 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ be.ugent.rml rmlmapper RMLMapper - 7.0.0 + 8.1.1-SNAPSHOT The RMLMapper executes RML rules to generate high quality Linked Data from multiple originally (semi-)structured data sources. @@ -36,10 +36,11 @@ UTF-8 5.10.0 - 17 - 17 - 4.9.0 - 1.18.3 + 21 + 21 + 5.2.0 + 3.2.0 + 2.0.2 @@ -58,13 +59,6 @@ - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - - no-buildnumber @@ -94,7 +88,7 @@ org.apache.maven.plugins maven-javadoc-plugin - 3.4.1 + 3.5.0 8 @@ -115,7 +109,7 @@ org.apache.maven.plugins maven-source-plugin - 3.2.1 + 3.3.0 attach-sources @@ -128,7 +122,7 @@ org.apache.maven.plugins maven-gpg-plugin - 1.5 + 3.1.0 sign-artifacts @@ -148,17 +142,52 @@ ch.qos.logback logback-classic - 1.4.14 + 1.5.16 + + + + + commons-io + commons-io + 2.18.0 + + + + org.apache.commons + commons-compress + 1.27.1 + + + + org.apache.commons + commons-lang3 + 3.18.0 + + + commons-cli + commons-cli + 1.10.0 + + + org.eclipse.rdf4j rdf4j-client - 4.3.8 + 5.1.0 pom - org.mapdb - * + commons-io + commons-io + + + commons-codec + commons-codec + + + com.opencsv + opencsv @@ -196,7 +225,7 @@ net.minidev json-smart - 2.5.0 + 2.5.2 javax.xml.parsers @@ -204,59 +233,22 @@ 1.4.5 - com.mysql - mysql-connector-j - 8.2.0 - provided - - - org.postgresql - postgresql - 42.6.0 - provided - - - - com.microsoft.sqlserver - mssql-jdbc - 12.4.2.jre11 - provided - - - com.oracle.database.jdbc - ojdbc11 - 23.3.0.23.09 - provided - - - com.github.tomakehurst - wiremock-jre8 - 2.35.1 + org.wiremock + wiremock-jetty12 + 3.9.1 test - - - commons-fileupload - commons-fileupload - - org.apache.jena jena-fuseki-main ${jena.version} test - org.rdfhdt hdt-java-core 3.0.10 - + org.apache.jena * @@ -265,12 +257,27 @@ junit * + + org.apache.commons + commons-compress + + + + + eu.neverblink.jelly + jelly-rdf4j + ${jelly.version} + + + org.eclipse.rdf4j + * + be.ugent.idlab.knows function-agent-java - 1.2.0 + 1.3.0 org.apache.jena @@ -281,55 +288,114 @@ com.github.fnoio grel-functions-java - v0.9.1 + v0.10.1 + + + org.apache.commons + commons-text + + + commons-codec + commons-codec + + be.ugent.idlab.knows idlab-functions-java - 1.3.2 + 1.4.0 + + + org.apache.commons + commons-lang3 + + + org.apache.commons + commons-text + + be.ugent.idlab.knows dataio - 1.3.0 + 2.2.0 + + + org.apache.commons + commons-lang3 + + + + + org.bitbucket.b_c + jose4j + 0.9.6 org.testcontainers - postgresql + testcontainers-postgresql ${testcontainers.version} test org.testcontainers - mysql + testcontainers-mysql ${testcontainers.version} test org.testcontainers - mssqlserver + testcontainers-mssqlserver ${testcontainers.version} test org.testcontainers - oracle-xe + testcontainers-oracle-xe ${testcontainers.version} test org.testcontainers - jdbc + testcontainers-jdbc ${testcontainers.version} test org.testcontainers - junit-jupiter + testcontainers-junit-jupiter ${testcontainers.version} test + + + org.json + json + 20240303 + + + + org.testcontainers + testcontainers + ${testcontainers.version} + compile + + + org.apache.commons + commons-compress + + + commons-io + commons-io + + + org.apache.commons + commons-lang3 + + + + @@ -344,7 +410,7 @@ ${maven.compiler.source} ${maven.compiler.source} - 3.8.1 + 3.13.0 org.apache.maven.plugins @@ -390,7 +456,7 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.2 + 3.3.1 true false @@ -421,14 +487,13 @@ - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.13 + org.sonatype.central + central-publishing-maven-plugin + 0.9.0 true - ossrh - https://oss.sonatype.org/ - true + central + true diff --git a/pom.xml.versionsBackup b/pom.xml.versionsBackup new file mode 100644 index 00000000..a13886d9 --- /dev/null +++ b/pom.xml.versionsBackup @@ -0,0 +1,436 @@ + + 4.0.0 + be.ugent.rml + rmlmapper + RMLMapper + 7.1.0 + + The RMLMapper executes RML rules to generate high quality Linked Data from multiple originally (semi-)structured data sources. + + https://github.com/RMLio/rmlmapper-java + + + The MIT License + https://raw.githubusercontent.com/RMLio/rmlmapper-java/master/LICENSE + repo + + + + + pheyvaer + Pieter Heyvaert + pieter.heyvaert@ugent.be + + + bjdmeest + Ben De Meester + ben.demeester@ugent.be + + + andimou + Anastasia Dimou + anastasia.dimou@ugent.be + + + + + UTF-8 + 5.10.0 + 17 + 17 + 4.9.0 + 1.18.3 + + + + scm:git:ssh://git@github.com:RMLio/rmlmapper-java.git + https://github.com/RMLio/rmlmapper-java + + + + + repo.maven.apache.org + https://repo.maven.apache.org/maven2/ + + + jitpack.io + https://jitpack.io + + + + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + + + + no-buildnumber + + 0 + + + + + org.codehaus.mojo + buildnumber-maven-plugin + 1.4 + + + buildnumber-generation + none + + + + + + + + release + + + + org.apache.maven.plugins + maven-javadoc-plugin + 3.4.1 + + 8 + + + + attach-javadocs + + jar + + + public + false + none + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + + + + + + + + + ch.qos.logback + logback-classic + 1.4.14 + + + org.eclipse.rdf4j + rdf4j-client + 4.3.8 + pom + + + org.mapdb + * + + + + + org.junit.jupiter + junit-jupiter-engine + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-api + ${junit.version} + test + + + org.junit.jupiter + junit-jupiter-params + ${junit.version} + test + + + org.junit.vintage + junit-vintage-engine + ${junit.version} + test + + + com.jayway.jsonpath + json-path + 2.9.0 + runtime + + + + net.minidev + json-smart + 2.5.0 + + + javax.xml.parsers + jaxp-api + 1.4.5 + + + com.mysql + mysql-connector-j + 8.2.0 + provided + + + org.postgresql + postgresql + 42.6.0 + provided + + + + com.microsoft.sqlserver + mssql-jdbc + 12.4.2.jre11 + provided + + + com.oracle.database.jdbc + ojdbc11 + 23.3.0.23.09 + provided + + + com.github.tomakehurst + wiremock-jre8 + 2.35.1 + test + + + commons-fileupload + commons-fileupload + + + + + org.apache.jena + jena-fuseki-main + ${jena.version} + test + + + + org.rdfhdt + hdt-java-core + 3.0.10 + + + org.apache.jena + * + + + junit + * + + + + + be.ugent.idlab.knows + function-agent-java + 1.2.0 + + + org.apache.jena + * + + + + + com.github.fnoio + grel-functions-java + v0.9.1 + + + be.ugent.idlab.knows + idlab-functions-java + 1.3.3 + + + be.ugent.idlab.knows + dataio + 1.3.1 + + + + org.testcontainers + postgresql + ${testcontainers.version} + test + + + org.testcontainers + mysql + ${testcontainers.version} + test + + + org.testcontainers + mssqlserver + ${testcontainers.version} + test + + + org.testcontainers + oracle-xe + ${testcontainers.version} + test + + + org.testcontainers + jdbc + ${testcontainers.version} + test + + + org.testcontainers + junit-jupiter + ${testcontainers.version} + test + + + + + src/main/java + src/test/java + ${project.artifactId}-${project.version}-r${buildNumber} + + + org.apache.maven.plugins + maven-compiler-plugin + + ${maven.compiler.source} + ${maven.compiler.source} + + 3.8.1 + + + org.apache.maven.plugins + maven-shade-plugin + 3.2.1 + + true + r${buildNumber}-all + + + be.ugent.rml.cli.Main + + + + + false + + + + + *:* + + + META-INF/*.SF + META-INF/*.DSA + META-INF/*.RSA + + + + + + + make-assembly + package + + shade + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.2 + + true + false + 1 + false + + + + + + org.codehaus.mojo + buildnumber-maven-plugin + 1.4 + + + buildnumber-generation + validate + + create + + + + + {0,number} + + buildNumber0 + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.13 + true + + ossrh + https://oss.sonatype.org/ + true + + + + + diff --git a/release.sh b/release.sh new file mode 100755 index 00000000..fb082c38 --- /dev/null +++ b/release.sh @@ -0,0 +1,46 @@ +#!/bin/bash +set -e + +TAG=$1 +DEV_BRANCH="development" +RELEASE_BRANCH="master" + +if [ -z "$1" ]; then + echo "Supply release tag as 'X.Y.Z'. For example: ./release.sh 1.0.0" + exit 1 +fi + +# Dependencies and branch +echo "Installing dependencies and branch..." + +if ! changefrog --help > /dev/null; then + npm install -g changefrog > /dev/null +fi +git checkout "$DEV_BRANCH" + +# Update CHANGELOG.md +echo "Updating CHANGELOG.md" +changefrog -n "$TAG" > /dev/null + +# Update project version in pom.xml +mvn versions:set -DnewVersion=$TAG + +# Create release commit +echo "Creating git commit and tag" +git add . +git commit -m "release v$TAG" +git tag "v$TAG" + +# Add release commit to master branch +echo "Rebasing $DEV_BRANCH upon $RELEASE_BRANCH" +git checkout "$RELEASE_BRANCH" +git rebase "$DEV_BRANCH" + +# Push to branches +echo "Pushing branches..." +git push origin "$DEV_BRANCH" +git push origin "$RELEASE_BRANCH" +git push --tags origin "$RELEASE_BRANCH" +git checkout "$DEV_BRANCH" + +echo "Done!" diff --git a/src/main/java/be/ugent/rml/Executor.java b/src/main/java/be/ugent/rml/Executor.java index 2dd340f6..7abfc8f9 100644 --- a/src/main/java/be/ugent/rml/Executor.java +++ b/src/main/java/be/ugent/rml/Executor.java @@ -117,9 +117,12 @@ public Executor(QuadStore rmlStore, RecordsFactory recordsFactory, QuadStore res if(pog.getObjectMappingInfo() != null) { targets.addAll(pog.getObjectMappingInfo().getTargets()); } + if(pog.getGraphMappingInfo() != null) { + targets.addAll(pog.getGraphMappingInfo().getTargets()); + } } - // Graph Map + // Graph Map (only subjectGraphMap...) for(MappingInfo g: mapping.getGraphMappingInfos()) { targets.addAll(g.getTargets()); } @@ -184,9 +187,9 @@ public Map executeWithFunction(List triplesMaps, boolean List nodes = generator.generate(record); if (!nodes.isEmpty()) { - List targets = mapping.getSubjectMappingInfo().getTargets(); + List subjectTargets = getAllTargets(mapping.getSubjectMappingInfo(), record); for (Term node : nodes) { - subjects.add(new ProvenancedTerm(node, null, targets)); + subjects.add(new ProvenancedTerm(node, null, subjectTargets)); } } // TODO this only works for the constants in the triples map! @@ -299,7 +302,8 @@ private List getIRIsWithTrueCondition(Record child, Term triple if (Boolean.TRUE.equals(expectedBoolean)) { List subjects = this.getSubject(triplesMap, mapping, parent, i); - iris.addAll(subjects); + if (subjects != null) + iris.addAll(subjects); } else { logger.warn("The used condition with the Parent Triples Map does not return a boolean."); } @@ -318,13 +322,13 @@ private List getSubject(Term triplesMap, Mapping mapping, Recor List nodes = generator.generate(record); if (!nodes.isEmpty()) { - List targets = mapping.getSubjectMappingInfo().getTargets(); + List subjectTargets = getAllTargets(mapping.getSubjectMappingInfo(), record); List terms = new ArrayList<>(); Metadata meta = new Metadata(triplesMap, mapping.getSubjectMappingInfo().getTerm()); // TODO: only create metadata when it's required for (Term node : nodes) { - terms.add(new ProvenancedTerm(node, meta, targets)); + terms.add(new ProvenancedTerm(node, meta, subjectTargets)); } this.subjectCache.get(triplesMap).put(i, terms); return terms; @@ -368,7 +372,13 @@ private List combineMultiplePOGs(List pre predicates.forEach( p -> objects.forEach( o -> graphs.forEach( - g -> results.add(new PredicateObjectGraph(p, o, g)) + g -> { + if (g != null && g.getTerm().equals(new NamedNode(NAMESPACES.RML2 + "defaultGraph"))) { + results.add(new PredicateObjectGraph(p, o, null)); + } else { + results.add(new PredicateObjectGraph(p, o, g)); + } + } ) ) ); @@ -402,7 +412,6 @@ public Map getTargets(){ return this.targetStores; } - public void verifySources(String basepath, String mappingPath) throws Exception { for (Term triplesMap : this.getTriplesMaps()) { List logicalSources = Utils.getObjectsFromQuads(rmlStore.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); @@ -450,7 +459,8 @@ private void generatePredicateObjectsForSubjects(final List sub if (terms != null) { terms.forEach(term -> { if (!term.equals(new NamedNode(NAMESPACES.RML2 + "defaultGraph"))) { - subjectGraphs.add(new ProvenancedTerm(term)); + List subjectGraphTargets = getAllTargets(mappingInfo, record); + subjectGraphs.add(new ProvenancedTerm(term, null, subjectGraphTargets)); } }); } @@ -471,18 +481,20 @@ private void generatePredicateObjectsForSubjects(final List sub TermGenerator pogGraphGenerator = pogGraphMappingInfo.getTermGenerator(); if (pogGraphGenerator != null) { pogGraphGenerator.generate(record).forEach(term -> { - if (!term.equals(new NamedNode(NAMESPACES.RML2 + "defaultGraph"))) { - poGraphs.add(new ProvenancedTerm(term)); - } + List graphTargets = getAllTargets(pogGraphMappingInfo, record); + poGraphs.add(new ProvenancedTerm(term, null, graphTargets)); }); } } - /* Predicates */ if (pogPredicateMappingInfo != null) { TermGenerator pogPredicateGenerator = pogPredicateMappingInfo.getTermGenerator(); - pogPredicateGenerator.generate(record).forEach(p -> predicates.add(new ProvenancedTerm(p, pogPredicateMappingInfo))); + List predicateTargets = getAllTargets(pogPredicateMappingInfo, record); + pogPredicateGenerator.generate(record).forEach(p -> { + Metadata meta = new ProvenancedTerm(p, pogPredicateMappingInfo).getMetadata(); + predicates.add(new ProvenancedTerm(p, meta, predicateTargets)); + }); } /* Objects */ @@ -490,9 +502,12 @@ private void generatePredicateObjectsForSubjects(final List sub TermGenerator pogObjectGenerator = pogObjectMappingInfo.getTermGenerator(); if (pogObjectGenerator != null) { List objects = pogObjectGenerator.generate(record); + List objectTargets = getAllTargets(pogObjectMappingInfo, record); List provenancedObjects = new ArrayList<>(); - - objects.forEach(object -> provenancedObjects.add(new ProvenancedTerm(object, pogObjectMappingInfo))); + objects.forEach(object -> { + Metadata meta = new ProvenancedTerm(object, pogObjectMappingInfo).getMetadata(); + provenancedObjects.add(new ProvenancedTerm(object, meta, objectTargets)); + }); if (!objects.isEmpty()) { //add pogs @@ -514,7 +529,16 @@ private void generatePredicateObjectsForSubjects(final List sub objects = this.getAllIRIs(pogMapping.getParentTriplesMap()); } - pogs.addAll(combineMultiplePOGs(predicates, objects, poGraphs)); + // Remove targets from objects because they come from another triples map! + // They need to be "cloned" because they are terms that might be cached to use as subject, + // in which case the targets must NOT be removed. + final List objectsWithoutTargets = objects.stream().map(provenancedTerm -> { + List noTargets = Collections.emptyList(); + return new ProvenancedTerm( + provenancedTerm.getTerm(), provenancedTerm.getMetadata(), noTargets); + }).toList(); + + pogs.addAll(combineMultiplePOGs(predicates, objectsWithoutTargets, poGraphs)); } } @@ -522,4 +546,30 @@ private void generatePredicateObjectsForSubjects(final List sub } } } + + private List getAllTargets(MappingInfo mappingInfo, Record record) { + List allTargets = new ArrayList<>(); + allTargets.addAll(generateTargetsAndAddToTargetStore(mappingInfo, record)); + allTargets.addAll(mappingInfo.getTargets()); + return allTargets; + } + + private List generateTargetsAndAddToTargetStore(MappingInfo mappingInfo, Record record) { + List targetGenerators = mappingInfo.getTargetGenerators(); + List generatedTargets = new ArrayList<>(); + for (TermGenerator targetGenerator : targetGenerators) { + try { + generatedTargets.addAll(targetGenerator.generate(record)); + } catch (Exception e) { + logger.error("Error occurred when generating target", e); + } + } + for (Term generatedTarget : generatedTargets){ + if(!targetStores.containsKey(generatedTarget)){ + targetStores.put(generatedTarget, new RDF4JStore()); + } + } + return generatedTargets; + } + } diff --git a/src/main/java/be/ugent/rml/MappingFactory.java b/src/main/java/be/ugent/rml/MappingFactory.java index be0f3fa9..fe7631d2 100644 --- a/src/main/java/be/ugent/rml/MappingFactory.java +++ b/src/main/java/be/ugent/rml/MappingFactory.java @@ -5,6 +5,7 @@ import be.ugent.rml.extractor.HashExtractor; import be.ugent.rml.extractor.ReferenceExtractor; import be.ugent.rml.functions.*; +import be.ugent.rml.store.Quad; import be.ugent.rml.store.QuadStore; import be.ugent.rml.term.Literal; import be.ugent.rml.term.NamedNode; @@ -23,6 +24,7 @@ import java.util.Map; import java.util.function.BiConsumer; +import static be.ugent.rml.Utils.getObjectsFromQuads; import static be.ugent.rml.Utils.isValidrrLanguage; public class MappingFactory { @@ -39,6 +41,9 @@ public class MappingFactory { // Base IRI to prepend to a relative IRI to make it absolute. private final String baseIRI; + // check on logical source is need on more than one place, so better store it + private Term logicalSource; + // StrictMode determines RMLMapper's behaviour when an IRI for a NamedNode is invalid. // If set to BEST_EFFORT, RMLMapper will not generate a NamedNode and go on. // If set to STRICT, RMLMapper will stop execution with an exception. @@ -59,21 +64,27 @@ public Mapping createMapping(Term triplesMap, QuadStore store) throws Exception this.predicateObjectGraphMappings = new ArrayList<>(); this.graphMappingInfos = null; this.ignoreDoubleQuotes = this.areDoubleQuotesIgnored(store, triplesMap); + String triplesMapBaseIRI = this.baseIRI; + + /* Override base IRI if specified by the rml:baseIRI predicate in a RML TriplesMap */ + if (!this.store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "baseIRI"), null).isEmpty()) { + triplesMapBaseIRI = this.store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "baseIRI"), null).get(0).getObject().getValue(); + } - parseSubjectMap(); - parsePredicateObjectMaps(); - graphMappingInfos = parseGraphMapsAndShortcuts(subjectMappingInfo.getTerm()); + parseSubjectMap(triplesMapBaseIRI); + parsePredicateObjectMaps(triplesMapBaseIRI); + graphMappingInfos = parseGraphMapsAndShortcuts(subjectMappingInfo.getTerm(), triplesMapBaseIRI); //return the mapping return new Mapping(subjectMappingInfo, predicateObjectGraphMappings, graphMappingInfos); } - private void parseSubjectMap() throws Exception { + private void parseSubjectMap(String triplesMapBaseIRI) throws Exception { if (this.subjectMappingInfo == null) { TermGenerator generator; - List subjectmaps = Utils.getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "subject"), null)); - subjectmaps.addAll(Utils.getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "subjectMap"), null))); + List subjectmaps = getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "subject"), null)); + subjectmaps.addAll(getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "subjectMap"), null))); if (!subjectmaps.isEmpty()) { if (subjectmaps.size() > 1) { @@ -81,8 +92,8 @@ private void parseSubjectMap() throws Exception { } Term subjectmap = subjectmaps.get(0); - List functionValues = Utils.getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); - List termTypes = Utils.getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.RML2 + "termType"), null)); + List functionValues = getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); + List termTypes = getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.RML2 + "termType"), null)); if (termTypes.contains(new NamedNode(NAMESPACES.RML2 + "Literal"))) { throw new Exception(triplesMap + " is a Literal Term Map. Accepted term types for Subject Maps are: IRI, Blank Node"); @@ -93,7 +104,7 @@ private void parseSubjectMap() throws Exception { if (functionValues.isEmpty()) { //checking if we are dealing with a Blank Node as subject if (isBlankNode) { - SingleRecordFunctionExecutor executor = RecordFunctionExecutorFactory.generate(store, subjectmap, true, ignoreDoubleQuotes); + SingleRecordFunctionExecutor executor = RecordFunctionExecutorFactory.generate(store, subjectmap, true, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)); if (executor != null) { generator = new BlankNodeGenerator(executor); @@ -102,25 +113,26 @@ private void parseSubjectMap() throws Exception { } } else { //we are not dealing with a Blank Node, so we create the template - generator = new NamedNodeGenerator(RecordFunctionExecutorFactory.generate(store, subjectmap, true, ignoreDoubleQuotes), baseIRI, strictMode); + generator = new NamedNodeGenerator(RecordFunctionExecutorFactory.generate(store, subjectmap, true, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)), triplesMapBaseIRI, strictMode); } } else { - SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0)); + SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0), triplesMapBaseIRI); if (isBlankNode) { generator = new BlankNodeGenerator(functionExecutor); } else { - generator = new NamedNodeGenerator(functionExecutor, baseIRI, strictMode); + generator = new NamedNodeGenerator(functionExecutor, triplesMapBaseIRI, strictMode); } } // get targets for subject - List targets = Utils.getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); - - this.subjectMappingInfo = new MappingInfo(subjectmap, generator, targets); + // get Target Generators for subject + List targets = getTargets(subjectmap); + List targetGenerators = getTargetGenerators(subjectmap, strictMode, triplesMapBaseIRI); + this.subjectMappingInfo = new MappingInfo(subjectmap, generator, targets, targetGenerators); //get classes - List classes = Utils.getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.RML2 + "class"), null)); + List classes = getObjectsFromQuads(store.getQuads(subjectmap, new NamedNode(NAMESPACES.RML2 + "class"), null)); //we create predicateobjects for the classes for (Term c : classes) { @@ -128,8 +140,8 @@ private void parseSubjectMap() throws Exception { * Don't put in graph for rr:class, subject is already put in graph, otherwise double export. * Same holds for targets, the rdf:type triple will be exported to the subject target already. */ - NamedNodeGenerator predicateGenerator = new NamedNodeGenerator(new ConstantExtractor(NAMESPACES.RDF + "type"), baseIRI, strictMode); - NamedNodeGenerator objectGenerator = new NamedNodeGenerator(new ConstantExtractor(c.getValue()), baseIRI, strictMode); + NamedNodeGenerator predicateGenerator = new NamedNodeGenerator(new ConstantExtractor(NAMESPACES.RDF + "type"), triplesMapBaseIRI, strictMode); + NamedNodeGenerator objectGenerator = new NamedNodeGenerator(new ConstantExtractor(c.getValue()), triplesMapBaseIRI, strictMode); predicateObjectGraphMappings.add(new PredicateObjectGraphMapping( new MappingInfo(subjectmap, predicateGenerator), new MappingInfo(subjectmap, objectGenerator), @@ -141,20 +153,20 @@ private void parseSubjectMap() throws Exception { } } - private void parsePredicateObjectMaps() throws Exception { - List predicateobjectmaps = Utils.getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), null)); + private void parsePredicateObjectMaps(String triplesMapBaseIRI) throws Exception { + List predicateobjectmaps = getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), null)); for (Term pom : predicateobjectmaps) { - List predicateMappingInfos = parsePredicateMapsAndShortcuts(pom); - List graphMappingInfos = parseGraphMapsAndShortcuts(pom); + List predicateMappingInfos = parsePredicateMapsAndShortcuts(pom, triplesMapBaseIRI); + List graphMappingInfos = parseGraphMapsAndShortcuts(pom, triplesMapBaseIRI); - parseObjectMapsAndShortcutsAndGeneratePOGGenerators(pom, predicateMappingInfos, graphMappingInfos); + parseObjectMapsAndShortcutsAndGeneratePOGGenerators(pom, predicateMappingInfos, graphMappingInfos, triplesMapBaseIRI); } } - private void parseObjectMapsAndShortcutsAndGeneratePOGGenerators(Term termMap, List predicateMappingInfos, List graphMappingInfos) throws IOException { + private void parseObjectMapsAndShortcutsAndGeneratePOGGenerators(Term termMap, List predicateMappingInfos, List graphMappingInfos, String triplesMapBaseIRI) throws IOException { parseObjectMapsAndShortcutsWithCallback(termMap, (oMappingInfo, childOrParent) -> { - MappingInfo lMappingInfo = parseLanguageMappingInfo(oMappingInfo.getTerm()); + MappingInfo lMappingInfo = parseLanguageMappingInfo(oMappingInfo.getTerm(), triplesMapBaseIRI); predicateMappingInfos.forEach(pMappingInfo -> { if (graphMappingInfos.isEmpty()) { @@ -167,7 +179,7 @@ private void parseObjectMapsAndShortcutsAndGeneratePOGGenerators(Term termMap, L }); }, (parentTriplesMap, joinConditionFunctionExecutors) -> { predicateMappingInfos.forEach(pMappingInfo -> { - List pos = getPredicateObjectGraphMappingFromMultipleGraphMappingInfos(pMappingInfo, null, graphMappingInfos); + List pos = getPredicateObjectGraphMappingFromMultipleGraphMappingInfos(pMappingInfo, null, graphMappingInfos, triplesMapBaseIRI); pos.forEach(pogMappingInfo -> { pogMappingInfo.setParentTriplesMap(parentTriplesMap); @@ -179,27 +191,36 @@ private void parseObjectMapsAndShortcutsAndGeneratePOGGenerators(Term termMap, L predicateObjectGraphMappings.add(pogMappingInfo); }); }); - }); + }, triplesMapBaseIRI); } - private void parseObjectMapsAndShortcutsWithCallback(Term termMap, BiConsumer objectMapCallback, BiConsumer> refObjectMapCallback) throws IOException { - List objectmaps = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "objectMap"), null)); + private void parseObjectMapsAndShortcutsWithCallback(Term termMap, BiConsumer objectMapCallback, BiConsumer> refObjectMapCallback, String triplesMapBaseIRI) throws IOException { + List objectmaps = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "objectMap"), null)); for (Term objectmap : objectmaps) { - parseObjectMapWithCallback(objectmap, objectMapCallback, refObjectMapCallback); + parseObjectMapWithCallback(objectmap, objectMapCallback, refObjectMapCallback, triplesMapBaseIRI); } //dealing with rr:object - List objectsConstants = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "object"), null)); + List objectsConstants = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "object"), null)); for (Term o : objectsConstants) { TermGenerator gen; SingleRecordFunctionExecutor fn = new ConstantExtractor(o.getValue()); if (o instanceof Literal) { - gen = new LiteralGenerator(fn); + if (((Literal) o).getDatatype() != null) { + Term datatype = new NamedNode(((Literal) o).getDatatype().toString()); + gen = new LiteralGenerator(fn, datatype); + } else if (((Literal) o).getLanguage().isPresent()) { + SingleRecordFunctionExecutor executor = new ConstantExtractor(((Literal) o).getLanguage().get()); + gen = new LiteralGenerator(fn, executor); + } else { + gen = new LiteralGenerator(fn); + } + } else { - gen = new NamedNodeGenerator(fn, baseIRI, strictMode); + gen = new NamedNodeGenerator(fn, triplesMapBaseIRI, strictMode); } // rr:object shortcut can never have targets @@ -207,19 +228,19 @@ private void parseObjectMapsAndShortcutsWithCallback(Term termMap, BiConsumer objectMapCallback, BiConsumer> refObjectMapCallback) throws IOException { - List functionValues = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); + private void parseObjectMapWithCallback(Term objectmap, BiConsumer objectMapCallback, BiConsumer> refObjectMapCallback, String triplesMapBaseIRI) throws IOException { + List functionValues = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); Term termType = getTermType(objectmap, true); - List datatypes = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "datatype"), null)); - List parentTriplesMaps = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "parentTriplesMap"), null)); - List parentTermMaps = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "parentTermMap"), null)); + List datatypes = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "datatype"), null)); + List parentTriplesMaps = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "parentTriplesMap"), null)); + List parentTermMaps = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "parentTermMap"), null)); - List languages = getLanguageExecutorsForObjectMap(objectmap); + List languages = getLanguageExecutorsForObjectMap(objectmap, triplesMapBaseIRI); if (functionValues.isEmpty()) { boolean encodeIRI = termType != null && termType.getValue().equals(NAMESPACES.RML2 + "IRI"); - SingleRecordFunctionExecutor executor = RecordFunctionExecutorFactory.generate(store, objectmap, encodeIRI, ignoreDoubleQuotes); + SingleRecordFunctionExecutor executor = RecordFunctionExecutorFactory.generate(store, objectmap, encodeIRI, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)); if (parentTriplesMaps.isEmpty() && parentTermMaps.isEmpty()) { TermGenerator oGen; @@ -235,7 +256,7 @@ private void parseObjectMapWithCallback(Term objectmap, BiConsumer languageMaps = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)); + List languageMaps = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)); - // get targets for object map - List oTargets = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); + // get targets and targetGenerators for object map + List oTargets = getTargets(objectmap); + List oTargetGenerators = getTargetGenerators(objectmap, strictMode, triplesMapBaseIRI); - objectMapCallback.accept(new MappingInfo(objectmap, oGen, oTargets), "child"); + objectMapCallback.accept(new MappingInfo(objectmap, oGen, oTargets, oTargetGenerators), "child"); } else if (!parentTriplesMaps.isEmpty()) { if (parentTriplesMaps.size() > 1) { logger.warn("{} has {} Parent Triples Maps. You can only have one. A random one is taken.", triplesMap, parentTriplesMaps.size()); @@ -261,10 +283,10 @@ private void parseObjectMapWithCallback(Term objectmap, BiConsumer rmljoinConditions = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML + "joinCondition"), null)); + List rmljoinConditions = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML + "joinCondition"), null)); List joinConditionFunctionExecutors = new ArrayList<>(); - List joinConditions = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "joinCondition"), null)); + List joinConditions = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "joinCondition"), null)); for (Term joinCondition : joinConditions) { @@ -279,11 +301,11 @@ private void parseObjectMapWithCallback(Term objectmap, BiConsumer parameters = new HashMap<>(); boolean ignoreDoubleQuotesInParent = this.areDoubleQuotesIgnored(store, parentTriplesMap); - SingleRecordFunctionExecutor parent = new ReferenceExtractor(parents.get(0), ignoreDoubleQuotesInParent); + SingleRecordFunctionExecutor parent = new ReferenceExtractor(parents.get(0), ignoreDoubleQuotesInParent, strictMode.equals(StrictMode.STRICT)); Object[] detailsParent = {"parent", parent}; parameters.put("http://users.ugent.be/~bjdmeest/function/grel.ttl#valueParameter", detailsParent); - SingleRecordFunctionExecutor child = new ReferenceExtractor(childs.get(0), ignoreDoubleQuotes); + SingleRecordFunctionExecutor child = new ReferenceExtractor(childs.get(0), ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)); Object[] detailsChild = {"child", child}; parameters.put("http://users.ugent.be/~bjdmeest/function/grel.ttl#valueParameter2", detailsChild); @@ -293,18 +315,18 @@ private void parseObjectMapWithCallback(Term objectmap, BiConsumer logicalSources = Utils.getObjectsFromQuads(store.getQuads(this.triplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); + List logicalSources = getObjectsFromQuads(store.getQuads(this.triplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); Term logicalSource = null; if (!logicalSources.isEmpty()) { logicalSource = logicalSources.get(0); } - List parentLogicalSources = Utils.getObjectsFromQuads(store.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); + List parentLogicalSources = getObjectsFromQuads(store.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); Term parentLogicalSource = null; if (!parentLogicalSources.isEmpty()) { parentLogicalSource = parentLogicalSources.get(0); @@ -316,10 +338,10 @@ private void parseObjectMapWithCallback(Term objectmap, BiConsumer { objectMapCallback.accept(objectGenerator, "parent"); - }, null); + }, null, triplesMapBaseIRI); } } else { - SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0)); + SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0), triplesMapBaseIRI); TermGenerator gen; //TODO is literal the default? @@ -334,24 +356,26 @@ private void parseObjectMapWithCallback(Term objectmap, BiConsumer targets = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); + // get targets and targetGenerators for object map + List targets = getTargets(objectmap); + List targetGenerators = getTargetGenerators(objectmap, strictMode, triplesMapBaseIRI); + + objectMapCallback.accept(new MappingInfo(objectmap, gen, targets, targetGenerators), "child"); - objectMapCallback.accept(new MappingInfo(objectmap, gen, targets), "child"); } } - private List parseGraphMapsAndShortcuts(Term termMap) throws Exception { + private List parseGraphMapsAndShortcuts(Term termMap, String triplesMapBaseIRI) throws Exception { List graphMappingInfos = new ArrayList<>(); - List graphMaps = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "graphMap"), null)); + List graphMaps = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "graphMap"), null)); for (Term graphMap : graphMaps) { - List functionValues = Utils.getObjectsFromQuads(store.getQuads(graphMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); - List termTypes = Utils.getObjectsFromQuads(store.getQuads(graphMap, new NamedNode(NAMESPACES.RML2 + "termType"), null)); + List functionValues = getObjectsFromQuads(store.getQuads(graphMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); + List termTypes = getObjectsFromQuads(store.getQuads(graphMap, new NamedNode(NAMESPACES.RML2 + "termType"), null)); Term termType = null; if (!termTypes.isEmpty()) { @@ -365,10 +389,10 @@ private List parseGraphMapsAndShortcuts(Term termMap) throws Except TermGenerator generator; if (functionValues.isEmpty()) { - SingleRecordFunctionExecutor executor = RecordFunctionExecutorFactory.generate(store, graphMap, true, ignoreDoubleQuotes); + SingleRecordFunctionExecutor executor = RecordFunctionExecutorFactory.generate(store, graphMap, true, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)); if (termType == null || termType.equals(new NamedNode(NAMESPACES.RML2 + "IRI"))) { - generator = new NamedNodeGenerator(executor, baseIRI, strictMode); + generator = new NamedNodeGenerator(executor, triplesMapBaseIRI, strictMode); } else { if (executor == null) { generator = new BlankNodeGenerator(); @@ -377,73 +401,76 @@ private List parseGraphMapsAndShortcuts(Term termMap) throws Except } } } else { - SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0)); + SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0), triplesMapBaseIRI); if (termType == null || termType.equals(new NamedNode(NAMESPACES.RML2 + "IRI"))) { - generator = new NamedNodeGenerator(functionExecutor, baseIRI, strictMode); + generator = new NamedNodeGenerator(functionExecutor, triplesMapBaseIRI, strictMode); } else { generator = new BlankNodeGenerator(functionExecutor); } } - // get targets for graph maps - List targets = Utils.getObjectsFromQuads(store.getQuads(graphMap, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); + // get targets and target generators for graph map + List targets = getTargets(graphMap); + List targetGenerators = getTargetGenerators(graphMap, strictMode, triplesMapBaseIRI); + + graphMappingInfos.add(new MappingInfo(termMap, generator, targets, targetGenerators)); - graphMappingInfos.add(new MappingInfo(termMap, generator, targets)); } - List graphShortcuts = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "graph"), null)); + List graphShortcuts = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "graph"), null)); for (Term graph : graphShortcuts) { String gStr = graph.getValue(); // rr:graph shortcut can never have targets - graphMappingInfos.add(new MappingInfo(termMap, new NamedNodeGenerator(new ConstantExtractor(gStr), baseIRI, strictMode))); + graphMappingInfos.add(new MappingInfo(termMap, new NamedNodeGenerator(new ConstantExtractor(gStr), triplesMapBaseIRI, strictMode))); } return graphMappingInfos; } - private List parsePredicateMapsAndShortcuts(Term termMap) throws IOException { + private List parsePredicateMapsAndShortcuts(Term termMap, String triplesMapBaseIRI) throws IOException { List predicateMappingInfos = new ArrayList<>(); - List predicateMaps = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "predicateMap"), null)); + List predicateMaps = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "predicateMap"), null)); for (Term predicateMap : predicateMaps) { // get functionValue for predicate maps - List functionValues = Utils.getObjectsFromQuads(store.getQuads(predicateMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); + List functionValues = getObjectsFromQuads(store.getQuads(predicateMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); - // get targets for predicate maps - List targets = Utils.getObjectsFromQuads(store.getQuads(predicateMap, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); + // get target generators for predicate maps + List targets = getTargets(predicateMap); + List targetGenerators = getTargetGenerators(predicateMap, strictMode, triplesMapBaseIRI); if (functionValues.isEmpty()) { predicateMappingInfos.add(new MappingInfo(predicateMap, - new NamedNodeGenerator(RecordFunctionExecutorFactory.generate(store, predicateMap, false, ignoreDoubleQuotes), baseIRI, strictMode), - targets)); + new NamedNodeGenerator(RecordFunctionExecutorFactory.generate(store, predicateMap, false, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)), triplesMapBaseIRI, strictMode), + targets, targetGenerators)); } else { - SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0)); + SingleRecordFunctionExecutor functionExecutor = parseFunctionTermMap(functionValues.get(0), triplesMapBaseIRI); - predicateMappingInfos.add(new MappingInfo(predicateMap, new NamedNodeGenerator(functionExecutor, baseIRI, strictMode), targets)); + predicateMappingInfos.add(new MappingInfo(predicateMap, new NamedNodeGenerator(functionExecutor, triplesMapBaseIRI, strictMode), targets, targetGenerators)); } } - List predicateShortcuts = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "predicate"), null)); + List predicateShortcuts = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "predicate"), null)); for (Term predicate : predicateShortcuts) { String pStr = predicate.getValue(); // rr:predicate shortcut can never have targets - predicateMappingInfos.add(new MappingInfo(termMap, new NamedNodeGenerator(new ConstantExtractor(pStr), baseIRI, strictMode))); + predicateMappingInfos.add(new MappingInfo(termMap, new NamedNodeGenerator(new ConstantExtractor(pStr), triplesMapBaseIRI, strictMode))); } return predicateMappingInfos; } - private SingleRecordFunctionExecutor parseFunctionTermMap(Term functionValue) throws IOException { - List functionPOMs = Utils.getObjectsFromQuads(store.getQuads(functionValue, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), null)); + private SingleRecordFunctionExecutor parseFunctionTermMap(Term functionValue, String triplesMapBaseIRI) throws IOException { + List functionPOMs = getObjectsFromQuads(store.getQuads(functionValue, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), null)); ArrayList params = new ArrayList<>(); for (Term pom : functionPOMs) { - List pMappingInfos = parsePredicateMapsAndShortcuts(pom); - List oMappingInfos = parseObjectMapsAndShortcuts(pom); + List pMappingInfos = parsePredicateMapsAndShortcuts(pom, triplesMapBaseIRI); + List oMappingInfos = parseObjectMapsAndShortcuts(pom, triplesMapBaseIRI); List pGenerators = new ArrayList<>(); pMappingInfos.forEach(mappingInfo -> { @@ -461,12 +488,12 @@ private SingleRecordFunctionExecutor parseFunctionTermMap(Term functionValue) th return new DynamicSingleRecordFunctionExecutor(params, functionAgent); } - private MultipleRecordsFunctionExecutor parseJoinConditionFunctionTermMap(Term functionValue) throws IOException { - List functionPOMs = Utils.getObjectsFromQuads(store.getQuads(functionValue, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), null)); + private MultipleRecordsFunctionExecutor parseJoinConditionFunctionTermMap(Term functionValue, String triplesMapBaseIRI) throws IOException { + List functionPOMs = getObjectsFromQuads(store.getQuads(functionValue, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), null)); ArrayList params = new ArrayList<>(); for (Term pom : functionPOMs) { - List pMappingInfos = parsePredicateMapsAndShortcuts(pom); + List pMappingInfos = parsePredicateMapsAndShortcuts(pom, triplesMapBaseIRI); List pGenerators = new ArrayList<>(); pMappingInfos.forEach(mappingInfo -> { @@ -476,7 +503,7 @@ private MultipleRecordsFunctionExecutor parseJoinConditionFunctionTermMap(Term f ArrayList objectGeneratorOriginPairs = new ArrayList<>(); parseObjectMapsAndShortcutsWithCallback(pom, (oGen, childOrParent) -> { objectGeneratorOriginPairs.add(new TermGeneratorOriginPair(oGen.getTermGenerator(), childOrParent)); - }, null); + }, null, triplesMapBaseIRI); params.add(new ParameterValueOriginPair(pGenerators, objectGeneratorOriginPairs)); } @@ -503,13 +530,13 @@ private MultipleRecordsFunctionExecutor generateSameLogicalSourceJoinConditionFu return new StaticMultipleRecordsFunctionExecutor(parameters, functionAgent, "https://w3id.org/imec/idlab/function#equal"); } - private List parseObjectMapsAndShortcuts(Term pom) throws IOException { + private List parseObjectMapsAndShortcuts(Term pom, String triplesMapBaseIRI) throws IOException { List mappingInfos = new ArrayList<>(); parseObjectMapsAndShortcutsWithCallback(pom, (mappingInfo, childOrParent) -> { mappingInfos.add(mappingInfo); }, (term, joinConditionFunctions) -> { - }); + }, triplesMapBaseIRI); return mappingInfos; } @@ -517,13 +544,14 @@ private List parseObjectMapsAndShortcuts(Term pom) throws IOExcepti /** * This method returns all executors for the languages of an Object Map. * @param objectmap the object for which the executors need to be determined. + * @param triplesMapBaseIRI the base IRI to use for this Triples Map. * @return a list of executors that return language tags. */ - private List getLanguageExecutorsForObjectMap(Term objectmap) throws IOException { + private List getLanguageExecutorsForObjectMap(Term objectmap, String triplesMapBaseIRI) throws IOException { ArrayList executors = new ArrayList<>(); // Parse rr:language - List languages = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "language"), null)); + List languages = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "language"), null)); // Validate languages. languages.stream().map(Term::getValue).forEach(language -> {if (! isValidrrLanguage(language)) { @@ -535,22 +563,22 @@ private List getLanguageExecutorsForObjectMap(Term } // Parse rml:languageMap - List languageMaps = Utils.getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)); + List languageMaps = getObjectsFromQuads(store.getQuads(objectmap, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)); for (Term languageMap : languageMaps) { - List functionValues = Utils.getObjectsFromQuads(store.getQuads(languageMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); + List functionValues = getObjectsFromQuads(store.getQuads(languageMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); if (functionValues.isEmpty()) { - executors.add(RecordFunctionExecutorFactory.generate(store, languageMap, false, ignoreDoubleQuotes)); + executors.add(RecordFunctionExecutorFactory.generate(store, languageMap, false, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT))); } else { - executors.add(parseFunctionTermMap(functionValues.get(0))); + executors.add(parseFunctionTermMap(functionValues.get(0), triplesMapBaseIRI)); } } return executors; } - private MappingInfo parseLanguageMappingInfo(Term objectMap) { + private MappingInfo parseLanguageMappingInfo(Term objectMap, String triplesMapBaseIRI) { // get optional language map targets for object map MappingInfo mappingInfo = null; @@ -558,11 +586,12 @@ private MappingInfo parseLanguageMappingInfo(Term objectMap) { return mappingInfo; } - List languageMaps = Utils.getObjectsFromQuads(store.getQuads(objectMap, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)); + List languageMaps = getObjectsFromQuads(store.getQuads(objectMap, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)); if (languageMaps.size() == 1) { Term l = languageMaps.get(0); - List lTargets = Utils.getObjectsFromQuads(store.getQuads(l, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); - mappingInfo = new MappingInfo(l, lTargets); + List lTargets = getTargets(l); + List lTargetGenerators = getTargetGenerators(l, strictMode, triplesMapBaseIRI); + mappingInfo = new MappingInfo(l, lTargets, lTargetGenerators); } else if (languageMaps.size() > 1) { logger.warn("Multiple language maps found, a random language map is used"); @@ -575,14 +604,14 @@ else if (languageMaps.size() > 1) { * If no Term Type is found, a default Term Type is return based on the R2RML specification. **/ private Term getTermType(Term map, boolean isObjectMap) { - List termTypes = Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "termType"), null)); + List termTypes = getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "termType"), null)); Term termType = null; if (!termTypes.isEmpty()) { termType = termTypes.get(0); } else { - List constants = Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "constant"), null)); + List constants = getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "constant"), null)); if (!constants.isEmpty()) { Term constant = constants.get(0); @@ -595,11 +624,11 @@ private Term getTermType(Term map, boolean isObjectMap) { termType = new NamedNode(NAMESPACES.RML2 + "BlankNode"); } } else if (isObjectMap) { - boolean hasReference = !Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "reference"), null)).isEmpty(); - boolean hasFunctionValues = !Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.FNML + "functionValue"), null)).isEmpty(); - boolean hasLanguage = !Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "language"), null)).isEmpty() || - !Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)).isEmpty(); - boolean hasDatatype = !Utils.getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "datatype"), null)).isEmpty(); + boolean hasReference = !getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "reference"), null)).isEmpty(); + boolean hasFunctionValues = !getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.FNML + "functionValue"), null)).isEmpty(); + boolean hasLanguage = !getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "language"), null)).isEmpty() || + !getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "languageMap"), null)).isEmpty(); + boolean hasDatatype = !getObjectsFromQuads(store.getQuads(map, new NamedNode(NAMESPACES.RML2 + "datatype"), null)).isEmpty(); if (hasReference || hasLanguage || hasDatatype || hasFunctionValues) { termType = new NamedNode(NAMESPACES.RML2 + "Literal"); @@ -614,11 +643,11 @@ private Term getTermType(Term map, boolean isObjectMap) { return termType; } - private List getPredicateObjectGraphMappingFromMultipleGraphMappingInfos(MappingInfo pMappingInfo, MappingInfo oMappingInfo, List gMappingInfos) { + private List getPredicateObjectGraphMappingFromMultipleGraphMappingInfos(MappingInfo pMappingInfo, MappingInfo oMappingInfo, List gMappingInfos, String triplesMapBaseIRI) { ArrayList list = new ArrayList<>(); MappingInfo lMappingInfo = null; if(oMappingInfo != null) { - lMappingInfo = parseLanguageMappingInfo(oMappingInfo.getTerm()); + lMappingInfo = parseLanguageMappingInfo(oMappingInfo.getTerm(), triplesMapBaseIRI); } for(MappingInfo gMappingInfo: gMappingInfos) { @@ -639,18 +668,18 @@ private List getPredicateObjectGraphMappingFromMult * @return true if double quotes should be ignored in references, else false. */ private boolean areDoubleQuotesIgnored(QuadStore store, Term triplesMap) { - List logicalSources = Utils.getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); + List logicalSources = getObjectsFromQuads(store.getQuads(triplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)); if (!logicalSources.isEmpty()) { Term logicalSource = logicalSources.get(0); - List sources = Utils.getObjectsFromQuads(store.getQuads(logicalSource, new NamedNode(NAMESPACES.RML2 + "source"), null)); + List sources = getObjectsFromQuads(store.getQuads(logicalSource, new NamedNode(NAMESPACES.RML2 + "source"), null)); if (!sources.isEmpty()) { Term source = sources.get(0); if (! (sources.get(0) instanceof Literal)) { - List sourceType = Utils.getObjectsFromQuads(store.getQuads(source, new NamedNode(NAMESPACES.RDF + "type"), null)); + List sourceType = getObjectsFromQuads(store.getQuads(source, new NamedNode(NAMESPACES.RDF + "type"), null)); return sourceType.get(0).getValue().equals(NAMESPACES.D2RQ + "Database"); } @@ -659,4 +688,35 @@ private boolean areDoubleQuotesIgnored(QuadStore store, Term triplesMap) { return false; } + + private List getTargetGenerators(Term termMap, StrictMode strictMode, String triplesMapBaseIRI) { + List targetGenerators = new ArrayList<>(); + List logicalTargetMaps = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RMLE + "logicalTargetMap"), null)); + for (Term logicalTargetMap : logicalTargetMaps) { + SingleRecordFunctionExecutor functionExecutor = null; + List functionValues = getObjectsFromQuads(store.getQuads(logicalTargetMap, new NamedNode(NAMESPACES.FNML + "functionValue"), null)); + if (functionValues.isEmpty()) { + //similar to subjects, dynamic targets should always be uri + functionExecutor = RecordFunctionExecutorFactory.generate(store, logicalTargetMap, true, ignoreDoubleQuotes, strictMode.equals(StrictMode.STRICT)); + } else { + try { + functionExecutor = parseFunctionTermMap(functionValues.get(0), triplesMapBaseIRI); + } catch (IOException e) { + logger.error("Parsing function term map failed:" + e); + } + } + if (functionValues != null) { + targetGenerators.add(new NamedNodeGenerator(functionExecutor, triplesMapBaseIRI, strictMode)); + } + } + return targetGenerators; + } + + private List getTargets(Term termMap){ + List targets = new ArrayList<>(); + List logicalTargets = getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "logicalTarget"), null)); + targets.addAll(logicalTargets); + return targets; + } + } diff --git a/src/main/java/be/ugent/rml/MappingInfo.java b/src/main/java/be/ugent/rml/MappingInfo.java index 71441454..506e6c34 100644 --- a/src/main/java/be/ugent/rml/MappingInfo.java +++ b/src/main/java/be/ugent/rml/MappingInfo.java @@ -3,7 +3,6 @@ import be.ugent.rml.term.Term; import be.ugent.rml.termgenerator.TermGenerator; -import javax.annotation.Nonnull; import java.util.Collections; import java.util.List; @@ -11,23 +10,21 @@ public class MappingInfo { private final Term term; private final TermGenerator termGenerator; private final List targets; + private final List targetGenerators; - public MappingInfo(@Nonnull Term term, @Nonnull TermGenerator termGenerator, @Nonnull List targets) { + public MappingInfo(Term term, TermGenerator termGenerator, List targets, List targetGenerators) { this.term = term; this.termGenerator = termGenerator; this.targets = targets; + this.targetGenerators = targetGenerators; } - public MappingInfo(@Nonnull Term term, @Nonnull TermGenerator termGenerator) { - this.term = term; - this.termGenerator = termGenerator; - this.targets = Collections.emptyList(); + public MappingInfo(Term term, TermGenerator termGenerator) { + this(term, termGenerator, Collections.emptyList(), Collections.emptyList()); } - public MappingInfo(@Nonnull Term term, @Nonnull List targets) { - this.term = term; - this.termGenerator = null; - this.targets = targets; + public MappingInfo(Term term, List targets, List targetGenerators) { + this(term, null, targets, targetGenerators); } public Term getTerm() { @@ -42,7 +39,15 @@ public List getTargets() { return targets; } + public List getTargetGenerators() { + return this.targetGenerators; + } + public void addTargets(List targets) { this.targets.addAll(targets); } + + public void addTargetGenerators(List targetGenerators) { + getTargetGenerators().addAll(targetGenerators); + } } diff --git a/src/main/java/be/ugent/rml/MappingOptimizer.java b/src/main/java/be/ugent/rml/MappingOptimizer.java index 1057b2a9..3b4b9ac2 100644 --- a/src/main/java/be/ugent/rml/MappingOptimizer.java +++ b/src/main/java/be/ugent/rml/MappingOptimizer.java @@ -64,88 +64,94 @@ private void eliminateSelfJoins() { for (Quad refObjectMapQuad : refObjectMapsQuads) { Term parentTriplesMap = refObjectMapQuad.getObject(); Term childObjectMap = refObjectMapQuad.getSubject(); - Term parentLogicalSource = Utils.getObjectsFromQuads(rmlStore.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)).get(0); - Term childPredicateObjectMap = Utils.getSubjectsFromQuads(rmlStore.getQuads(null, new NamedNode(NAMESPACES.RML2 + "objectMap"), childObjectMap)).get(0); - Term childTriplesMap = Utils.getSubjectsFromQuads(rmlStore.getQuads(null, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), childPredicateObjectMap)).get(0); - Term childLogicalSource = Utils.getObjectsFromQuads(rmlStore.getQuads(childTriplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)).get(0); - // check if the logical sources are the same - if (childLogicalSource.equals(parentLogicalSource)) { - List joinConditions = Utils.getObjectsFromQuads(rmlStore.getQuads(childObjectMap, new NamedNode(NAMESPACES.RML2 + "joinCondition"), null)); + try { + Term parentLogicalSource = Utils.getObjectsFromQuads(rmlStore.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)).get(0); + Term childPredicateObjectMap = Utils.getSubjectsFromQuads(rmlStore.getQuads(null, new NamedNode(NAMESPACES.RML2 + "objectMap"), childObjectMap)).get(0); + Term childTriplesMap = Utils.getSubjectsFromQuads(rmlStore.getQuads(null, new NamedNode(NAMESPACES.RML2 + "predicateObjectMap"), childPredicateObjectMap)).get(0); + Term childLogicalSource = Utils.getObjectsFromQuads(rmlStore.getQuads(childTriplesMap, new NamedNode(NAMESPACES.RML2 + "logicalSource"), null)).get(0); - List parentSubjectMaps = Utils.getObjectsFromQuads(rmlStore.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "subjectMap"), null)); - Term parentSubjectMap = null; - if (!parentSubjectMaps.isEmpty()) { - parentSubjectMap = parentSubjectMaps.get(0); - } + // check if the logical sources are the same + if (childLogicalSource.equals(parentLogicalSource)) { - boolean safeSelfJoinElimination = true; - - // if no join condition, we can safely eliminate the self-join - // else we need more checks - if (parentSubjectMap != null && !joinConditions.isEmpty()) { - // we can eliminate a self-join when all join conditions have equal references and all references for the parent subject or all reference for the related child triple come back in the join conditions - // 1. check if all join references are equal - List joinReferences = new ArrayList<>(); - for (Term joinCondition : joinConditions) { - String parent = getObjectsFromQuads(rmlStore.getQuads(joinCondition, new NamedNode(NAMESPACES.RML2 + "parent"), null)).get(0).getValue(); - String child = getObjectsFromQuads(rmlStore.getQuads(joinCondition, new NamedNode(NAMESPACES.RML2 + "child"), null)).get(0).getValue(); - if (child.equals(parent)) { - joinReferences.add(child); - } else { - safeSelfJoinElimination = false; - } + List joinConditions = Utils.getObjectsFromQuads(rmlStore.getQuads(childObjectMap, new NamedNode(NAMESPACES.RML2 + "joinCondition"), null)); + + List parentSubjectMaps = Utils.getObjectsFromQuads(rmlStore.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "subjectMap"), null)); + Term parentSubjectMap = null; + if (!parentSubjectMaps.isEmpty()) { + parentSubjectMap = parentSubjectMaps.get(0); } - if (safeSelfJoinElimination) { - // 2. check if all references for the parent subject come back in the join conditions - boolean safeTerms = hasSafeReferences(parentSubjectMap, joinReferences); - if(!safeTerms) { - // if not all references for the parent subject come back in the join conditions, - // 3. check if all references for the related child terms come back in the join conditions - // 3.1 check child subject - List childSubjectMaps = Utils.getObjectsFromQuads(rmlStore.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "subjectMap"), null)); - if(!childSubjectMaps.isEmpty()) { - safeTerms = hasSafeReferences(childSubjectMaps.get(0), joinReferences); + + boolean safeSelfJoinElimination = true; + + // if no join condition, we can safely eliminate the self-join + // else we need more checks + if (parentSubjectMap != null && !joinConditions.isEmpty()) { + // we can eliminate a self-join when all join conditions have equal references and all references for the parent subject or all reference for the related child triple come back in the join conditions + // 1. check if all join references are equal + List joinReferences = new ArrayList<>(); + for (Term joinCondition : joinConditions) { + String parent = getObjectsFromQuads(rmlStore.getQuads(joinCondition, new NamedNode(NAMESPACES.RML2 + "parent"), null)).get(0).getValue(); + String child = getObjectsFromQuads(rmlStore.getQuads(joinCondition, new NamedNode(NAMESPACES.RML2 + "child"), null)).get(0).getValue(); + if (child.equals(parent)) { + joinReferences.add(child); } else { - safeTerms = true; + safeSelfJoinElimination = false; } - //3.2 check child predicate (only make sense if the child subject was safe, otherwise we cannot eliminate the-self join) - if (safeTerms) { - List childPredicateMaps = Utils.getObjectsFromQuads(rmlStore.getQuads(childPredicateObjectMap, new NamedNode(NAMESPACES.RML2 + "predicateMap"), null)); - if(!childPredicateMaps.isEmpty()) { - safeTerms = hasSafeReferences(childPredicateMaps.get(0), joinReferences); + } + if (safeSelfJoinElimination) { + // 2. check if all references for the parent subject come back in the join conditions + boolean safeTerms = hasSafeReferences(parentSubjectMap, joinReferences); + if (!safeTerms) { + // if not all references for the parent subject come back in the join conditions, + // 3. check if all references for the related child terms come back in the join conditions + // 3.1 check child subject + List childSubjectMaps = Utils.getObjectsFromQuads(rmlStore.getQuads(parentTriplesMap, new NamedNode(NAMESPACES.RML2 + "subjectMap"), null)); + if (!childSubjectMaps.isEmpty()) { + safeTerms = hasSafeReferences(childSubjectMaps.get(0), joinReferences); + } else { + safeTerms = true; + } + //3.2 check child predicate (only make sense if the child subject was safe, otherwise we cannot eliminate the-self join) + if (safeTerms) { + List childPredicateMaps = Utils.getObjectsFromQuads(rmlStore.getQuads(childPredicateObjectMap, new NamedNode(NAMESPACES.RML2 + "predicateMap"), null)); + if (!childPredicateMaps.isEmpty()) { + safeTerms = hasSafeReferences(childPredicateMaps.get(0), joinReferences); + } } } - } - // 4. if parent subject or all child terms are safe, the self join can be eliminated, else not - if (!safeTerms) { - safeSelfJoinElimination = false; + // 4. if parent subject or all child terms are safe, the self join can be eliminated, else not + if (!safeTerms) { + safeSelfJoinElimination = false; + } } } - } - if (safeSelfJoinElimination) { - // now we rewrite the mapping file to eliminate the self-join - boolean termTypeAdded = false; - List parentSubjectMapQuads = rmlStore.getQuads(parentSubjectMap, null, null); - for (Quad parentSubjectMapQuad : parentSubjectMapQuads) { - Term predicate = parentSubjectMapQuad.getPredicate(); - if (predicate.equals(new NamedNode(NAMESPACES.FNML + "functionValue")) - || predicate.equals(new NamedNode(NAMESPACES.RML2 + "termType")) - || predicate.equals(new NamedNode(NAMESPACES.RML2 + "reference")) - || predicate.equals(new NamedNode(NAMESPACES.RML2 + "template")) - || predicate.equals(new NamedNode(NAMESPACES.RML2 + "constant"))) { - rmlStore.addQuad(childObjectMap, predicate, parentSubjectMapQuad.getObject()); + if (safeSelfJoinElimination) { + // now we rewrite the mapping file to eliminate the self-join + boolean termTypeAdded = false; + List parentSubjectMapQuads = rmlStore.getQuads(parentSubjectMap, null, null); + for (Quad parentSubjectMapQuad : parentSubjectMapQuads) { + Term predicate = parentSubjectMapQuad.getPredicate(); + if (predicate.equals(new NamedNode(NAMESPACES.FNML + "functionValue")) + || predicate.equals(new NamedNode(NAMESPACES.RML2 + "termType")) + || predicate.equals(new NamedNode(NAMESPACES.RML2 + "reference")) + || predicate.equals(new NamedNode(NAMESPACES.RML2 + "template")) + || predicate.equals(new NamedNode(NAMESPACES.RML2 + "constant"))) { + rmlStore.addQuad(childObjectMap, predicate, parentSubjectMapQuad.getObject()); + } + if (predicate.equals(new NamedNode(NAMESPACES.RML2 + "termType"))) { + termTypeAdded = true; + } } - if (predicate.equals(new NamedNode(NAMESPACES.RML2 + "termType"))) { - termTypeAdded = true; + rmlStore.removeQuads(childObjectMap, new NamedNode(NAMESPACES.RML2 + "parentTriplesMap"), parentTriplesMap); + if (!termTypeAdded) { + rmlStore.addQuad(childObjectMap, new NamedNode(NAMESPACES.RML2 + "termType"), new NamedNode(NAMESPACES.RML2 + "IRI")); } } - rmlStore.removeQuads(childObjectMap, new NamedNode(NAMESPACES.RML2 + "parentTriplesMap"), parentTriplesMap); - if (!termTypeAdded) { - rmlStore.addQuad(childObjectMap, new NamedNode(NAMESPACES.RML2 + "termType"), new NamedNode(NAMESPACES.RML2 + "IRI")); - } } + } catch (java.lang.IndexOutOfBoundsException e) { + continue; } } } @@ -163,7 +169,7 @@ private Set getAllLinkedReferences(Term term){ references.add(linkedQuad.getObject().getValue()); } else if (predicate.equals(new NamedNode(NAMESPACES.RML2 + "template"))) { String template = linkedQuad.getObject().getValue(); - List extractors = Utils.parseTemplate(template, false); + List extractors = Utils.parseTemplate(template, false, false); for (Extractor extractor : extractors) { if (extractor instanceof ReferenceExtractor) { references.add(((ReferenceExtractor) extractor).getReference()); diff --git a/src/main/java/be/ugent/rml/NAMESPACES.java b/src/main/java/be/ugent/rml/NAMESPACES.java index 0e725872..bb8900f9 100644 --- a/src/main/java/be/ugent/rml/NAMESPACES.java +++ b/src/main/java/be/ugent/rml/NAMESPACES.java @@ -34,4 +34,6 @@ public class NAMESPACES { public static final String COMP = "http://semweb.mmlab.be/ns/rml-compression#"; public static final String LDES = "https://w3id.org/ldes#"; public static final String TREE = "https://w3id.org/tree#"; + public static final String RMLE = "https://w3id.org/imec/rml/ns/extensions#"; + } diff --git a/src/main/java/be/ugent/rml/PredicateObjectGraphMapping.java b/src/main/java/be/ugent/rml/PredicateObjectGraphMapping.java index 79929a01..c49fd0be 100644 --- a/src/main/java/be/ugent/rml/PredicateObjectGraphMapping.java +++ b/src/main/java/be/ugent/rml/PredicateObjectGraphMapping.java @@ -25,6 +25,7 @@ public PredicateObjectGraphMapping(MappingInfo predicateMappingInfo, MappingInfo // Language Maps are tightly connected to the object, merge the target lists if(this.languageMappingInfo != null) { + this.objectMappingInfo.addTargetGenerators(this.languageMappingInfo.getTargetGenerators()); this.objectMappingInfo.addTargets(this.languageMappingInfo.getTargets()); } } diff --git a/src/main/java/be/ugent/rml/RecordFunctionExecutorFactory.java b/src/main/java/be/ugent/rml/RecordFunctionExecutorFactory.java index c6b7b462..7420b6b3 100644 --- a/src/main/java/be/ugent/rml/RecordFunctionExecutorFactory.java +++ b/src/main/java/be/ugent/rml/RecordFunctionExecutorFactory.java @@ -12,18 +12,23 @@ public class RecordFunctionExecutorFactory { - public static SingleRecordFunctionExecutor generate(QuadStore store, Term termMap, boolean encodeURI, boolean ignoreDoubleQuotes) { + public static SingleRecordFunctionExecutor generate(QuadStore store, Term termMap, boolean encodeURI, boolean ignoreDoubleQuotes, boolean strictReferenceResolution) { List references = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "reference"), null)); List templates = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "template"), null)); List constants = Utils.getObjectsFromQuads(store.getQuads(termMap, new NamedNode(NAMESPACES.RML2 + "constant"), null)); - if (!references.isEmpty()) { - return new ReferenceExtractor(references.get(0).getValue(), ignoreDoubleQuotes); - } else if (!templates.isEmpty()) { - return new ConcatFunction(Utils.parseTemplate(templates.get(0).getValue(), ignoreDoubleQuotes), encodeURI); - } else if (!constants.isEmpty()) { - return new ConstantExtractor(constants.get(0).getValue()); - } else { + try { + if (!references.isEmpty()) { + return new ReferenceExtractor(references.get(0).getValue(), ignoreDoubleQuotes, strictReferenceResolution); + } else if (!templates.isEmpty()) { + return new ConcatFunction(Utils.parseTemplate(templates.get(0).getValue(), ignoreDoubleQuotes, strictReferenceResolution), encodeURI); + } else if (!constants.isEmpty()) { + return new ConstantExtractor(constants.get(0).getValue()); + } else { + return null; + } + } catch (Exception e) { + System.err.println("Extracting constant or references failed: " + e.getMessage()); return null; } } diff --git a/src/main/java/be/ugent/rml/Utils.java b/src/main/java/be/ugent/rml/Utils.java index 292c5bec..f1723e73 100644 --- a/src/main/java/be/ugent/rml/Utils.java +++ b/src/main/java/be/ugent/rml/Utils.java @@ -480,7 +480,7 @@ public static int getFreePortNumber() throws IOException { * @param template template string * @return list of extractors **/ - public static List parseTemplate(String template, boolean ignoreDoubleQuotes) { + public static List parseTemplate(String template, boolean ignoreDoubleQuotes, boolean strictReferenceResolution) { List extractors = new ArrayList<>(); String current = ""; boolean previousWasBackslash = false; @@ -509,7 +509,7 @@ public static List parseTemplate(String template, boolean ignoreDoubl current += c; previousWasBackslash = false; } else if (variableBusy) { - extractors.add(new ReferenceExtractor(current, ignoreDoubleQuotes)); + extractors.add(new ReferenceExtractor(current, ignoreDoubleQuotes, strictReferenceResolution)); current = ""; variableBusy = false; } else { diff --git a/src/main/java/be/ugent/rml/access/AccessFactory.java b/src/main/java/be/ugent/rml/access/AccessFactory.java index d14d2929..0af68240 100644 --- a/src/main/java/be/ugent/rml/access/AccessFactory.java +++ b/src/main/java/be/ugent/rml/access/AccessFactory.java @@ -5,6 +5,7 @@ import be.ugent.rml.Utils; import be.ugent.rml.records.ReferenceFormulation; import be.ugent.rml.records.SPARQLResultFormat; +import be.ugent.rml.store.Quad; import be.ugent.rml.store.QuadStore; import be.ugent.rml.term.Literal; import be.ugent.rml.term.NamedNode; @@ -78,12 +79,18 @@ public Access getAccess(Term logicalSource, QuadStore rmlStore) { switch(sourceType.get(0).getValue()) { case NAMESPACES.RML2 + "RelativePathSource": + case NAMESPACES.RML2 + "FilePath": String path = Utils.getObjectsFromQuads(rmlStore.getQuads(source, new NamedNode(NAMESPACES.RML2 + "path"), null)).get(0).getValue(); - String root = Utils.getObjectsFromQuads(rmlStore.getQuads(source, new NamedNode(NAMESPACES.RML2 + "root"), null)).get(0).getValue(); - if (root.equals(NAMESPACES.RML2 + "MappingDirectory")) { - access = new LocalFileAccess(path, this.mappingPath); + List rootNodes = rmlStore.getQuads(source, new NamedNode(NAMESPACES.RML2 + "root"), null); + if (rootNodes.isEmpty()) { + access = new LocalFileAccess(path, null); } else { - access = new LocalFileAccess(path, this.basePath); + String root = Utils.getObjectsFromQuads(rootNodes).get(0).getValue(); + if (root.equals(NAMESPACES.RML2 + "MappingDirectory")) { + access = new LocalFileAccess(path, this.mappingPath); + } else { + access = new LocalFileAccess(path, this.basePath); + } } break; diff --git a/src/main/java/be/ugent/rml/cli/Main.java b/src/main/java/be/ugent/rml/cli/Main.java index 2c641205..7faf67c7 100644 --- a/src/main/java/be/ugent/rml/cli/Main.java +++ b/src/main/java/be/ugent/rml/cli/Main.java @@ -4,8 +4,10 @@ import be.ugent.idlab.knows.functions.agent.AgentFactory; import be.ugent.knows.idlabFunctions.IDLabFunctions; import be.ugent.rml.Executor; +import be.ugent.rml.NAMESPACES; import be.ugent.rml.StrictMode; import be.ugent.rml.Utils; +import be.ugent.rml.conformer.MappingConformer; import be.ugent.rml.metadata.MetadataGenerator; import be.ugent.rml.records.RecordsFactory; import be.ugent.rml.store.Quad; @@ -64,6 +66,7 @@ public static void run(String[] args) throws Exception { */ public static void run(String[] args, String basePath) throws Exception { Options options = new Options(); + boolean onlyConvertMapping = false; Option mappingdocOption = Option.builder("m") .longOpt("mappingfile") .hasArg() @@ -124,7 +127,7 @@ public static void run(String[] args, String basePath) throws Exception { .build(); Option serializationFormatOption = Option.builder("s") .longOpt("serialization") - .desc("serialization format (nquads (default), turtle, trig, trix, jsonld, hdt)") + .desc("serialization format (nquads (default), turtle, trig, trix, jsonld, hdt, jelly)") .hasArg() .build(); Option jdbcDSNOption = Option.builder("dsn") @@ -156,6 +159,10 @@ public static void run(String[] args, String basePath) throws Exception { .desc("Setting this option assumes input data has a kind of End-of-File marker. " + "Don't use unless you're absolutely sure what you're doing!") .build(); + Option convertMapping = Option.builder() + .longOpt("convert-mapping") + .desc("Only convert the mapping to the latest RML specification by the W3C Community Group") + .build(); options.addOption(mappingdocOption); options.addOption(privateSecurityDataOption); @@ -175,6 +182,7 @@ public static void run(String[] args, String basePath) throws Exception { options.addOption(strictModeOption); options.addOption(baseIriOption); options.addOption(provideOwnEOFMarkerOption); + options.addOption(convertMapping); CommandLineParser parser = new DefaultParser(); try { @@ -201,6 +209,10 @@ public static void run(String[] args, String basePath) throws Exception { setLoggerLevel(Level.ERROR); } + if (checkOptionPresence(convertMapping, lineArgs, configFile)) { + onlyConvertMapping = true; + } + String[] mOptionValue = getOptionValues(mappingdocOption, lineArgs, configFile); List lis = new ArrayList<>(); @@ -400,8 +412,15 @@ public static void run(String[] args, String basePath) throws Exception { System.arraycopy(fOptionValue, 0, optionWithIDLabFunctionArgs, 4, fOptionValue.length); functionAgent = AgentFactory.createFromFnO(optionWithIDLabFunctionArgs); } + executor = new Executor(rmlStore, factory, outputStore, baseIRI, strictMode, functionAgent, mappingOptions); + if (onlyConvertMapping) { + logger.debug("Outputting converted mapping following the latest RML specification"); + writeOutput(rmlStore, outputFile, "turtle"); + System.exit(0); + } + if (checkOptionPresence(provideOwnEOFMarkerOption, lineArgs, configFile)) { logger.warn("Automatic EOF marker disabled!"); executor.setEOFProvidedInData(); @@ -437,7 +456,8 @@ public static void run(String[] args, String basePath) throws Exception { IDLabFunctions.saveState(); - writeOutputTargets(targets, rmlStore, basePath, outputFile, outputFormat); + writeOutputTargets(targets, rmlStore, basePath, outputFile, outputFormat, mappingPath); + } // Get stop timestamp for post mapping metadata String stopTimestamp = Instant.now().toString(); @@ -460,11 +480,30 @@ public static void run(String[] args, String basePath) throws Exception { } } - private static void writeOutputTargets(Map targets, QuadStore rmlStore, String basePath, String outputFileDefault, String outputFormatDefault) throws Exception { + private static void writeOutputTargets(Map targets, QuadStore rmlStore, String basePath, String outputFileDefault, String outputFormatDefault, String mappingPath) throws Exception { boolean hasNoResults = true; logger.debug("Writing to Targets: {}", targets.keySet()); - TargetFactory targetFactory = new TargetFactory(basePath); + TargetFactory targetFactory = new TargetFactory(basePath, mappingPath); + + // check if anything needs to be added to the rmlstore (e.g. dynamic targets) + if (targets.containsKey(new NamedNode(NAMESPACES.RMLE + "ThisMapping"))){ + rmlStore.addQuads(targets.get(new NamedNode(NAMESPACES.RMLE + "ThisMapping")).getQuads(null, null, null)); + // The generated dynamic logical targets have been added to the RML store. + // It is possible that they are written using the old RML terminology. + // Therefore, the mapping conformer needs to conform the RML store again. + MappingConformer conformer = new MappingConformer(rmlStore, null); + try { + boolean conversionNeeded = conformer.conform(); + + if (conversionNeeded) { + logger.info("Conversion to RML was needed."); + } + } catch (Exception e) { + logger.error("Failed to make dynamic targets conformant to RML spec.", e); + } + targets.remove(new NamedNode(NAMESPACES.RMLE + "ThisMapping")); + } // Go over each term and export to the Target if needed for (Map.Entry termTargetMapping: targets.entrySet()) { @@ -496,24 +535,20 @@ private static void writeOutputTargets(Map targets, QuadStore r } else { logger.debug("Exporting to Target: {}", term); + Target target = targetFactory.getTarget(term, rmlStore, store); if (store.size() > 1) { - logger.info("{} quads were generated for {} Target", store.size(), term); + logger.info("{} quads were generated for {} Target", store.size(), target); } else { - logger.info("{} quad was generated {} Target", store.size(), term); + logger.info("{} quad was generated {} Target", store.size(), target); } - Target target = targetFactory.getTarget(term, rmlStore, store); String serializationFormat = target.getSerializationFormat(); OutputStream output = target.getOutputStream(); store.addQuads(target.getMetadata()); - - // Set character encoding - try (Writer out = new BufferedWriter(new OutputStreamWriter(output, Charset.defaultCharset()))) { - // Write store to target - store.write(out, serializationFormat); - } + store.write(output, serializationFormat); // Close OS resources target.close(); + logger.debug("Exporting to Target: {}", target); } } @@ -597,7 +632,7 @@ private static File writeOutputUncompressed(QuadStore store, String outputFile, logger.info("{} quad was generated for default Target", store.size()); } - Writer out = null; + OutputStream out = null; try { String doneMessage = null; @@ -613,11 +648,11 @@ private static File writeOutputUncompressed(QuadStore store, String outputFile, doneMessage = "Writing to " + targetFile.getPath() + " is done."; - out = Files.newBufferedWriter(targetFile.toPath(), StandardCharsets.UTF_8); + out = Files.newOutputStream(targetFile.toPath()); } else { isSystemOut = true; - out = new BufferedWriter(new OutputStreamWriter(System.out, StandardCharsets.UTF_8)); + out = System.out; } store.write(out, format); diff --git a/src/main/java/be/ugent/rml/conformer/RMLConverterNew.java b/src/main/java/be/ugent/rml/conformer/RMLConverterNew.java index 51827132..1fadaec4 100644 --- a/src/main/java/be/ugent/rml/conformer/RMLConverterNew.java +++ b/src/main/java/be/ugent/rml/conformer/RMLConverterNew.java @@ -17,7 +17,7 @@ public class RMLConverterNew implements Converter { - private static Logger logger = LoggerFactory.getLogger(RMLConverterNew.class); + private final static Logger logger = LoggerFactory.getLogger(RMLConverterNew.class); private final Map replacementsObjects = new HashMap<>() {{ /* Old RML */ @@ -46,6 +46,7 @@ public class RMLConverterNew implements Converter { put(QL + "JSONPath", ReferenceFormulation.JSONPath); put(QL + "XPath", ReferenceFormulation.XPath); put(RML + "LogicalSource", RML2 + "LogicalSource"); + put(RR + "Literal", RML2 + "Literal"); put(RML + "TriplesMap", RML2 + "TriplesMap"); put(RR + "BlankNode", RML2 + "BlankNode"); put(RR + "IRI", RML2 + "IRI"); @@ -61,7 +62,6 @@ public class RMLConverterNew implements Converter { put(RR + "defaultGraph", RML2 + "defaultGraph"); put(RML + "LanguageMap", RML2 + "LanguageMap"); put(RMLT + "LogicalTarget", RML2 + "LogicalTarget"); - put(RR + "GraphMap", RML2 + "GraphMap"); put(RMLT + "Target", RML2 + "Target"); }}; @@ -124,7 +124,7 @@ private static void processTableName(Quad tableName, QuadStore store) { /** * Replace a logical table quad with a proper logical source - * @param quad + * @param logicalTableQuad * @param quadStore */ private void processLogicalTable(Quad logicalTableQuad, QuadStore quadStore) { @@ -283,6 +283,12 @@ public void convert(Map mappingOptions) throws Exception { this.store.renameAllObjects(new NamedNode(old), new NamedNode(_new)); } + /* Replace namespaces */ + this.store.removeNameSpace("rml"); + this.store.removeNameSpace("rr"); + this.store.removeNameSpace("ql"); + this.store.addNameSpace("rml", "http://w3id.org/rml/"); + dropObsolete(); } @@ -301,7 +307,6 @@ private void processSources(Quad source, QuadStore store) { private void processQueries(Quad query, QuadStore store) throws Exception { Term source = store.getQuad(query.getSubject(), new NamedNode(RML2 + "source"), null).getObject(); - System.out.println("processQueries: " + source.getValue()); if (store.contains(source, new NamedNode(SD + "resultFormat"), null)) { Term supportedLanguage = store.getQuad(source, new NamedNode(SD + "resultFormat"), null).getObject(); store.addQuad(query.getSubject(), new NamedNode(RML2 + "referenceFormulation"), supportedLanguage); diff --git a/src/main/java/be/ugent/rml/extractor/ReferenceExtractor.java b/src/main/java/be/ugent/rml/extractor/ReferenceExtractor.java index 31877cfe..a2baa185 100644 --- a/src/main/java/be/ugent/rml/extractor/ReferenceExtractor.java +++ b/src/main/java/be/ugent/rml/extractor/ReferenceExtractor.java @@ -1,23 +1,24 @@ package be.ugent.rml.extractor; import be.ugent.idlab.knows.dataio.record.Record; +import be.ugent.idlab.knows.dataio.record.RecordValue; import be.ugent.rml.functions.SingleRecordFunctionExecutor; import java.io.IOException; +import java.util.ArrayList; +import java.util.Collection; import java.util.List; public class ReferenceExtractor implements Extractor, SingleRecordFunctionExecutor { public String reference; - private boolean ignoreDoubleQuotes; + private final boolean ignoreDoubleQuotes; + private final boolean strictReferenceResolution; - public ReferenceExtractor(String reference, boolean ignoreDoubleQuotes) { + public ReferenceExtractor(String reference, boolean ignoreDoubleQuotes, boolean strictReferenceResolution) { this.reference = reference; this.ignoreDoubleQuotes = ignoreDoubleQuotes; - } - - public ReferenceExtractor(String reference) { - this(reference, false); + this.strictReferenceResolution = strictReferenceResolution; } @Override @@ -28,7 +29,21 @@ public List extract(Record record) { temp = temp.substring(1, temp.length() - 1); } - return record.get(temp); + RecordValue recordValue = record.get(temp); + + if (recordValue.isOk()) { // This means no error occurred during reference resolving and the value is not a null value + Object value = recordValue.getValue(); + if (value instanceof Iterable) { + return new ArrayList<>((Collection) value); + } else { + return List.of(value); + } + } else if (recordValue.isEmpty() || // The record has a null value + recordValue.isNotFound() && !strictReferenceResolution) { // The reference has not been found (e.g. nu field with that name) + return List.of(); + } else { + throw new IllegalArgumentException(recordValue.getMessage()); + } } @Override diff --git a/src/main/java/be/ugent/rml/records/IteratorFormat.java b/src/main/java/be/ugent/rml/records/IteratorFormat.java index 7e96858d..5a6263a3 100644 --- a/src/main/java/be/ugent/rml/records/IteratorFormat.java +++ b/src/main/java/be/ugent/rml/records/IteratorFormat.java @@ -17,6 +17,8 @@ import java.util.List; import java.util.Map; +import static be.ugent.rml.StrictMode.STRICT; + public abstract class IteratorFormat implements ReferenceFormulationRecordFactory { protected Logger logger = LoggerFactory.getLogger(this.getClass()); protected Map cache; diff --git a/src/main/java/be/ugent/rml/records/JSONRecordFactory.java b/src/main/java/be/ugent/rml/records/JSONRecordFactory.java index caaea890..28785110 100644 --- a/src/main/java/be/ugent/rml/records/JSONRecordFactory.java +++ b/src/main/java/be/ugent/rml/records/JSONRecordFactory.java @@ -10,7 +10,10 @@ public class JSONRecordFactory extends IteratorFormat { @Override protected SourceIterator getIterator(Access access, String iterator) throws Exception { String contentType = access.getContentType(); - if (contentType.equals("jsonl") || contentType.equals("application/jsonl")) { + if (contentType.equals("jsonl") + || contentType.equals("application/jsonl") + || contentType.equals("x-ld+ndjson") + || contentType.equals("application/x-ld+ndjson")) { return new JSONLinesSourceIterator(access, iterator); } return new JSONSourceIterator(access, iterator); diff --git a/src/main/java/be/ugent/rml/records/MarkerRecord.java b/src/main/java/be/ugent/rml/records/MarkerRecord.java index 6f96c776..5a31d36e 100644 --- a/src/main/java/be/ugent/rml/records/MarkerRecord.java +++ b/src/main/java/be/ugent/rml/records/MarkerRecord.java @@ -1,6 +1,7 @@ package be.ugent.rml.records; import be.ugent.idlab.knows.dataio.record.Record; +import be.ugent.idlab.knows.dataio.record.RecordValue; import be.ugent.knows.idlabFunctions.IDLabFunctions; import java.util.Collections; @@ -19,7 +20,7 @@ public class MarkerRecord extends Record { * @return a list of objects for the column. */ @Override - public List get(String value) { - return marker; + public RecordValue get(String value) { + return RecordValue.ok(marker); } } diff --git a/src/main/java/be/ugent/rml/records/RecordsFactory.java b/src/main/java/be/ugent/rml/records/RecordsFactory.java index 736eacb5..a61bb6d2 100644 --- a/src/main/java/be/ugent/rml/records/RecordsFactory.java +++ b/src/main/java/be/ugent/rml/records/RecordsFactory.java @@ -73,7 +73,8 @@ public List createRecords(Term triplesMap, QuadStore rmlStore) throws Ex return getRecords(access, logicalSource, referenceFormulation, rmlStore); } else { - throw new Error("No Logical Source is found for " + triplesMap + ". Exactly one Logical Source is required per Triples Map."); + logger.error("No Logical Source is found for " + triplesMap + ". Exactly one Logical Source is required per Triples Map."); + return new ArrayList<>(); } } @@ -137,6 +138,7 @@ private List getRecords(Access access, Term logicalSource, String refere // Select the Record Factory based on the reference formulation. if (!referenceFormulationRecordFactoryMap.containsKey(referenceFormulation)) { logger.error("Referenceformulation {} is unsupported!", referenceFormulation); + return List.of(); } ReferenceFormulationRecordFactory factory = referenceFormulationRecordFactoryMap.get(referenceFormulation); records = factory.getRecords(access, logicalSource, rmlStore); diff --git a/src/main/java/be/ugent/rml/store/QuadStore.java b/src/main/java/be/ugent/rml/store/QuadStore.java index 9eabac6b..47ad391c 100644 --- a/src/main/java/be/ugent/rml/store/QuadStore.java +++ b/src/main/java/be/ugent/rml/store/QuadStore.java @@ -85,6 +85,23 @@ public abstract class QuadStore { */ public abstract void copyNameSpaces(QuadStore store); + /** + * Add namespace to store. + * TODO define general Namespace class to use between QuadStore instances + * + * @param prefix String with the prefix of the namespace. + * @param IRI String with the IRI of the namespace. + */ + public abstract void addNameSpace(String prefix, String IRI); + + /** + * Remove namespace from store by prefix. + * TODO define general Namespace class to use between QuadStore instances + * + * @param prefix String with the prefix of the namespace. + */ + public abstract void removeNameSpace(String prefix); + /** * True if RDF quads present is 0 * @@ -110,39 +127,19 @@ public abstract class QuadStore { public abstract void read(InputStream is, String base, RDFFormat format) throws Exception; /** - * Write out the QuadStore in given format + * Write out the QuadStore in given format, using a binary output stream. + * Override this method if you want to support binary formats like Jelly. * TODO use class or enum for output format * - * @param out Writer output location + * @param out OutputStream to write to * @param format QuadStore format (.TTL) * @throws Exception */ - public abstract void write(Writer out, String format) throws Exception; + public abstract void write(OutputStream out, String format) throws Exception; // END OF ABSTRACT METHODS // following final methods use the abstract methods to provide additional functionality or helper functions - /** - * Helper function - * - * @param out - * @param format - * @throws Exception - */ - public final void write(ByteArrayOutputStream out, String format) throws Exception { - write(new BufferedWriter(new OutputStreamWriter(out)), format); - } - - /** - * Helper function - * - * @param out - * @param format - * @throws Exception - */ - public final void write(PrintStream out, String format) throws Exception { - write(new PrintWriter(out), format); - } /** * Helper function diff --git a/src/main/java/be/ugent/rml/store/RDF4JStore.java b/src/main/java/be/ugent/rml/store/RDF4JStore.java index cbff34f1..6793fb1a 100644 --- a/src/main/java/be/ugent/rml/store/RDF4JStore.java +++ b/src/main/java/be/ugent/rml/store/RDF4JStore.java @@ -4,6 +4,9 @@ import be.ugent.rml.term.Literal; import be.ugent.rml.term.NamedNode; import be.ugent.rml.term.Term; +import eu.neverblink.jelly.convert.rdf4j.rio.JellyFormat; +import eu.neverblink.jelly.convert.rdf4j.rio.JellyWriterSettings; +import eu.neverblink.jelly.core.JellyOptions; import org.eclipse.rdf4j.model.*; import org.eclipse.rdf4j.model.impl.*; import org.eclipse.rdf4j.model.util.Models; @@ -15,11 +18,11 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.InputStream; -import java.io.Writer; +import java.io.*; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -120,6 +123,17 @@ public void copyNameSpaces(QuadStore store) { } } + @Override + public void addNameSpace(String prefix, String IRI) { + this.getModel().getNamespaces().add(new SimpleNamespace(prefix, IRI)); + } + + @Override + public void removeNameSpace(String prefix) { + Set namespaces = this.getModel().getNamespaces(); + namespaces.removeIf(namespace -> namespace.getPrefix().equals(prefix)); + } + @Override public void read(InputStream is, String base, RDFFormat format) throws Exception { if (base == null) { @@ -137,7 +151,7 @@ public void read(InputStream is, String base, RDFFormat format) throws Exception } @Override - public void write(Writer out, String format) throws Exception { + public void write(OutputStream out, String format) throws Exception { switch (format) { case "turtle": Rio.write(model, out, RDFFormat.TURTLE); @@ -160,6 +174,14 @@ public void write(Writer out, String format) throws Exception { case "ntriples": Rio.write(model, out, RDFFormat.NTRIPLES); break; + case "jelly": + var settings = JellyWriterSettings.empty(); + // Mark RDF-star as not used + settings.setJellyOptions(JellyOptions.BIG_STRICT); + Rio.write(model, out, JellyFormat.JELLY, settings); + throw new UnsupportedOperationException( + "Writing Jelly format to a Writer is not supported. Use OutputStream instead." + ); default: throw new Exception("Serialization " + format + " not supported"); } diff --git a/src/main/java/be/ugent/rml/store/SimpleQuadStore.java b/src/main/java/be/ugent/rml/store/SimpleQuadStore.java index 7a621703..8bc6ddff 100644 --- a/src/main/java/be/ugent/rml/store/SimpleQuadStore.java +++ b/src/main/java/be/ugent/rml/store/SimpleQuadStore.java @@ -1,9 +1,11 @@ package be.ugent.rml.store; +import be.ugent.rml.Utils; import be.ugent.rml.term.Term; import org.eclipse.rdf4j.rio.RDFFormat; import java.io.*; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -46,13 +48,7 @@ public void removeDuplicates() { @Override public List getSubjects() { - List terms = new ArrayList<>(); - - for (Quad q : quads) { - terms.add(q.getSubject()); - } - - return terms; + return Utils.getSubjectsFromQuads(quads); } @Override @@ -82,6 +78,16 @@ public void copyNameSpaces(QuadStore store) { // Namespace passing is not needed for .nquads and .hdt } + @Override + public void addNameSpace(String prefix, String IRI) { + // Namespace passing is not needed for .nquads and .hdt + } + + @Override + public void removeNameSpace(String prefix) { + // Namespace passing is not needed for .nquads and .hdt + } + @Override public boolean isEmpty() { return quads.isEmpty(); @@ -98,13 +104,11 @@ public void read(InputStream is, String base, RDFFormat format) { } @Override - public void write(Writer out, String format) throws IOException { - switch (format) { - case "nquads": - toNQuads(out); - break; - default: - throw new Error("Serialization " + format + " not supported"); + public void write(OutputStream out, String format) throws IOException { + if (format.equals("nquads")) { + toNQuads(out); + } else { + throw new Error("Serialization " + format + " not supported"); } } @@ -134,9 +138,11 @@ public boolean isSubset(QuadStore store) { throw new UnsupportedOperationException("Method not implemented."); } - private void toNQuads(Writer out) throws IOException { - for (Quad q : quads) { - out.write(getNQuadOfQuad(q) + "\n"); + private void toNQuads(OutputStream out) throws IOException { + try (Writer writer = new OutputStreamWriter(out, StandardCharsets.UTF_8)) { + for (Quad q : quads) { + writer.write(getNQuadOfQuad(q) + "\n"); + } } } diff --git a/src/main/java/be/ugent/rml/target/DirectHttpRequestTarget.java b/src/main/java/be/ugent/rml/target/DirectHttpRequestTarget.java new file mode 100644 index 00000000..e5855485 --- /dev/null +++ b/src/main/java/be/ugent/rml/target/DirectHttpRequestTarget.java @@ -0,0 +1,42 @@ +package be.ugent.rml.target; + +import be.ugent.rml.store.Quad; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + + +public class DirectHttpRequestTarget extends HttpRequestTarget { + + public DirectHttpRequestTarget(Map httpRequestInfo, Map httpRequestHeaders, String serializationFormat, List metadata, HttpRequestTargetHelper httpRequestTargetHelper) throws IOException { + super(httpRequestInfo, httpRequestHeaders, serializationFormat, metadata, httpRequestTargetHelper); + } + + @Override + public boolean equals(Object o) { + if (o instanceof DirectHttpRequestTarget) { + DirectHttpRequestTarget target = (DirectHttpRequestTarget) o; + return this.httpRequestInfo.get("absoluteURI").equals(target.getHttpRequestInfo().get("absoluteURI")); + } else { + return false; + } + } + + @Override + public String toString() { + return "http request for " + this.httpRequestInfo.get("absoluteURI").toString(); + } + + @Override + public void close() { + super.close(); + try { + this.httpRequestTargetHelper.executeHttpRequest(httpRequestInfo, httpRequestHeaders); + } catch (Exception e) { + logger.error("Failed to close http request target for {}: {}", + this.httpRequestInfo.get("absoluteURI"), e.getMessage()); + } + } +} + diff --git a/src/main/java/be/ugent/rml/target/HttpMethod.java b/src/main/java/be/ugent/rml/target/HttpMethod.java new file mode 100644 index 00000000..f631aa2f --- /dev/null +++ b/src/main/java/be/ugent/rml/target/HttpMethod.java @@ -0,0 +1,12 @@ +package be.ugent.rml.target; + +public enum HttpMethod { + GET, + HEAD, + POST, + PUT, + DELETE, + CONNECT, + TRACE, + PATCH +} diff --git a/src/main/java/be/ugent/rml/target/HttpRequestTarget.java b/src/main/java/be/ugent/rml/target/HttpRequestTarget.java new file mode 100644 index 00000000..b8e71f26 --- /dev/null +++ b/src/main/java/be/ugent/rml/target/HttpRequestTarget.java @@ -0,0 +1,105 @@ +package be.ugent.rml.target; + +import be.ugent.rml.store.Quad; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; + +public abstract class HttpRequestTarget implements Target { + + protected final Map httpRequestInfo; + protected final Map httpRequestHeaders; + private final List metadata; + private final ByteArrayOutputStream byteArrayOutputStream; + protected final Logger logger; + private final String serializationFormat; + protected HttpRequestTargetHelper httpRequestTargetHelper; + + private static final Map serializationFormats = Map.of( + "ntriples","application/n-triples", + "turtle", "text/turtle", + "jsonld", "application/ld+json", + "trix", "text/xml", + "trig", "application/trig", + "nquads", "application/n-quads" + ); + + /** + * This constructor takes a map with the http request info, a map with the http request headers, the serialization format and the metadata as argument. + * @param httpRequestInfo Map with all the target info + * @param httpRequestHeaders Map with HTTP request headers + * @param serializationFormat String with the serialization format + * @param metadata a list of Quads containing metadata + */ + public HttpRequestTarget(Map httpRequestInfo, Map httpRequestHeaders, String serializationFormat, List metadata, + HttpRequestTargetHelper httpRequestTargetHelper) { + this.httpRequestInfo = httpRequestInfo; + this.httpRequestHeaders = httpRequestHeaders; + this.metadata = metadata; + this.serializationFormat = serializationFormat; + byteArrayOutputStream = new ByteArrayOutputStream(); + this.logger = LoggerFactory.getLogger(HttpRequestTarget.class); + this.httpRequestTargetHelper = httpRequestTargetHelper; + } + + /** + * This method returns an OutputStream for the target. + * @return the OutputStream corresponding to the target. + * @throws IOException + */ + public OutputStream getOutputStream() throws IOException { + return byteArrayOutputStream; + } + + /** + * This method returns the serialization format of the target. + * @return serialization format. + */ + @Override + public String getSerializationFormat() { + return this.serializationFormat; + } + + /** + * This method returns the http request info + * @return map with http request info. + */ + public Map getHttpRequestInfo() { + return this.httpRequestInfo; + } + + /** + * This method closes the target. + * When closing a http request target, the content of the tempFile is added to the http request as body + * and the http request is executed. + */ + @Override + public void close() { + /* + Read the temporary file containing the exported triples. + The rest of the method is handled in the subclass + */ + logger.debug("Closing target"); + this.httpRequestInfo.put("data", this.byteArrayOutputStream.toString(StandardCharsets.UTF_8)); + // reset the output stream to empty memory + this.byteArrayOutputStream.reset(); + // add default values + if (!httpRequestInfo.containsKey("methodName")){ + this.httpRequestInfo.put("methodName", HttpMethod.PUT.name()); + } + if (!httpRequestHeaders.containsKey("content-type")){ + this.httpRequestHeaders.put("content-type", serializationFormats.get(this.serializationFormat)); + } + } + + @Override + public List getMetadata() { + return this.metadata; + } +} diff --git a/src/main/java/be/ugent/rml/target/HttpRequestTargetHelper.java b/src/main/java/be/ugent/rml/target/HttpRequestTargetHelper.java new file mode 100644 index 00000000..14084dde --- /dev/null +++ b/src/main/java/be/ugent/rml/target/HttpRequestTargetHelper.java @@ -0,0 +1,334 @@ +package be.ugent.rml.target; + + +import be.ugent.rml.NAMESPACES; +import org.apache.http.HttpStatus; +import org.jose4j.jwk.EcJwkGenerator; +import org.jose4j.jwk.EllipticCurveJsonWebKey; +import org.jose4j.jws.AlgorithmIdentifiers; +import org.jose4j.jws.JsonWebSignature; +import org.jose4j.jwt.JwtClaims; +import org.jose4j.keys.EllipticCurves; +import org.jose4j.lang.JoseException; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.net.URI; +import java.net.http.HttpClient; +import java.net.http.HttpRequest; +import java.net.http.HttpResponse; +import java.nio.charset.StandardCharsets; +import java.util.*; + +public class HttpRequestTargetHelper { + private static final Logger log = LoggerFactory.getLogger(HttpRequestTargetHelper.class); + private final EllipticCurveJsonWebKey jwk; + + private final HttpClient httpClient; + + private Map clientCredentialsStore; + private Map oidcAccessTokenStore; + /** + * + * Constructs a new HttpRequestTargetHelper instance. A new private + public key pair + * gets generated which is used for communication with the Solid server, more + * specifically for Distributed Proof of Possession (DPoP). + * @throws JoseException Generating the private/public key pair goes wrong. + */ + public HttpRequestTargetHelper() throws JoseException { + jwk = EcJwkGenerator.generateJwk(EllipticCurves.P256); + this.clientCredentialsStore = new HashMap<>(); + // Initialize a HTTP client + httpClient = HttpClient.newBuilder() + .version(HttpClient.Version.HTTP_1_1) // The Community Solid Server only accepts HTTP 1.1 and complains about upgrade headers if you don't specify this. + .build(); + this.oidcAccessTokenStore = new HashMap<>(); + } + + /** + * Retrieves the Dpop Access Token for CSS authentication using client credentials + * @param httpRequestInfo A map with all necessary data. The map should contain following keys: + * oidcIssuer, webId, email, password + * @return The Dpop Access Token. + * @throws Exception Something goes wrong. + */ + private String getDpopAccessToken(Map httpRequestInfo) throws Exception { + + // See https://blog.stackademic.com/how-dpop-works-a-guide-to-proof-of-possession-for-web-tokens-cbeac2d4e43c + // for a simple and clear description of how DPoP works. + + try { + // TODO: this implementation is tailored to the Community Solid Server and thus uses one URL for authorization server and solid server. + String oidcIssuer = httpRequestInfo.get("oidcIssuer"); + String webId = httpRequestInfo.get("webId"); + String email = httpRequestInfo.get("email"); + String password = httpRequestInfo.get("password"); + + String clientCredentialsStr; + if (clientCredentialsStore.containsKey(webId)) { + clientCredentialsStr = clientCredentialsStore.get(webId); + } else { + /* Get account controls and retrieve login URL */ + HttpRequest accountInfoRequest = HttpRequest.newBuilder(URI.create(oidcIssuer + ".account/")) + .GET().build(); + HttpResponse accountInfoResponse = httpClient.send(accountInfoRequest, HttpResponse.BodyHandlers.ofString()); + String accountInfoStr = accountInfoResponse.body(); + if (accountInfoResponse.statusCode() != HttpStatus.SC_OK) { + log.error("Could not get account info: {}", accountInfoStr); + throw new Exception("Could not get account info: " + accountInfoStr); + } + JSONObject accountInfo = new JSONObject(accountInfoStr); + String passwordLoginURL = accountInfo.getJSONObject("controls").getJSONObject("password").getString("login"); + log.debug("Found login URL: {}", passwordLoginURL); + + + /* Log in using e-mail and password and get authorization token */ + String loginMessage = "{\"email\": \"" + email + "\",\"password\":\"" + password + "\"}"; + HttpRequest loginRequest = HttpRequest.newBuilder(URI.create(passwordLoginURL)) + .POST(HttpRequest.BodyPublishers.ofString(loginMessage, StandardCharsets.UTF_8)) + .setHeader("Content-Type", "application/json") + .build(); + HttpResponse loginResponse = httpClient.send(loginRequest, HttpResponse.BodyHandlers.ofString()); + String loginInfoStr = loginResponse.body(); + if (loginResponse.statusCode() != HttpStatus.SC_OK) { + log.error("Could not log in: {}", loginInfoStr); + throw new Exception("Could not get log in: " + loginInfoStr); + } + JSONObject loginInfo = new JSONObject(loginInfoStr); + String authorizationToken = loginInfo.getString("authorization"); + log.debug("Found authorization token."); + + + /* Use authorization token to get client credentials URL, added to account info */ + HttpRequest authorizedAccountInfoRequest = HttpRequest.newBuilder(URI.create(oidcIssuer + ".account/")) + .GET() + .setHeader("Authorization", "CSS-Account-Token " + authorizationToken) + .build(); + HttpResponse authorizedAccountInfoResponse = httpClient.send(authorizedAccountInfoRequest, HttpResponse.BodyHandlers.ofString()); + String authorizedAccountInfoStr = authorizedAccountInfoResponse.body(); + if (authorizedAccountInfoResponse.statusCode() != HttpStatus.SC_OK) { + log.error("Could not get account info: {}", authorizedAccountInfoStr); + throw new Exception("Could not get account info: " + authorizedAccountInfoStr); + } + JSONObject authorizedAccountInfo = new JSONObject(authorizedAccountInfoStr); + String clientCredentialsURL = authorizedAccountInfo.getJSONObject("controls").getJSONObject("account").getString("clientCredentials"); + log.debug("Found client credentials URL: {}", clientCredentialsURL); + + + /* Post WebID and token prefix to client credentials URL to get client credentials, to be used at oidc endpoint later on */ + String webIdAndTokenMessage = "{\"name\": \"my-token\",\"webId\":\"" + webId + "\"}"; + HttpRequest getOIDCTokenRequest = HttpRequest.newBuilder(URI.create(clientCredentialsURL)) + .POST(HttpRequest.BodyPublishers.ofString(webIdAndTokenMessage, StandardCharsets.UTF_8)) + .setHeader("Authorization", "CSS-Account-Token " + authorizationToken) + .setHeader("Content-Type", "application/json") + .build(); + HttpResponse getOIDCTokenResponse = httpClient.send(getOIDCTokenRequest, HttpResponse.BodyHandlers.ofString()); + clientCredentialsStr = getOIDCTokenResponse.body(); + clientCredentialsStore.put(webId, clientCredentialsStr); + if (getOIDCTokenResponse.statusCode() != HttpStatus.SC_OK) { + log.error("Could not get OpenID Connect token info: {}", clientCredentialsStr); + throw new Exception("Could not get OpenID Connect token info: " + clientCredentialsStr); + } + } + String accessTokenStr = null; + Boolean validAccessToken = false; + if (oidcAccessTokenStore.containsKey(webId)) { + JSONObject oidcAccessToken = oidcAccessTokenStore.get(webId); + Long expiresOn = oidcAccessToken.getLong("expires_on"); + Long now = ((new Date().getTime()) / 1000) + 10; //adding some safety margin; + if (now < expiresOn) { + accessTokenStr = oidcAccessToken.getString("access_token"); + validAccessToken = true; + } + } + if (!validAccessToken){ + JSONObject clientCredentials = new JSONObject(clientCredentialsStr); + String clientCredentialsId = clientCredentials.getString("id"); + log.debug("Found Client credentials. id: {}", clientCredentialsId); + String clientCredentialsSecret = clientCredentials.getString("secret"); + + + /* Get oidc info, used to obtain oidc token endpoints */ + // GET /.well-known/openid-configuration HTTP/1.1 + HttpRequest oidcInfoRequest = HttpRequest.newBuilder(URI.create(oidcIssuer + ".well-known/openid-configuration")) + .GET().build(); + HttpResponse oidcInfoResponse = httpClient.send(oidcInfoRequest, HttpResponse.BodyHandlers.ofString()); + String oidcInfoStr = oidcInfoResponse.body(); + if (oidcInfoResponse.statusCode() != HttpStatus.SC_OK) { + log.error("Could not get OpenID Connect info: {}", oidcInfoStr); + throw new Exception("Could not get OpenID Connect info: " + oidcInfoStr); + } + JSONObject oidcInfo = new JSONObject(oidcInfoStr); + String oidcTokenEndpoint = oidcInfo.getString("token_endpoint"); + log.debug("Found oidc token endpoint: {}", oidcTokenEndpoint); + + String dpopJWT = generateJWT(oidcTokenEndpoint, "POST"); + + /* POST a request to oidc token endpoint with client credentials to obtain an oidc access token */ + + // Generate base64 string of client credentials + String clientCredentialsConcatenated = clientCredentialsId + ':' + clientCredentialsSecret; + String base64clientCredentials = Base64.getEncoder().encodeToString(clientCredentialsConcatenated.getBytes(StandardCharsets.UTF_8)); + + HttpRequest getOidcAccessTokenRequest = HttpRequest.newBuilder(URI.create(oidcTokenEndpoint)) + .POST(HttpRequest.BodyPublishers.ofString("grant_type=client_credentials&scope=webid", StandardCharsets.UTF_8)) + .setHeader("Authorization", "Basic " + base64clientCredentials) + .setHeader("Content-Type", "application/x-www-form-urlencoded") + .setHeader("DPoP", dpopJWT) + .build(); + HttpResponse oidcAccessTokenResponse = httpClient.send(getOidcAccessTokenRequest, HttpResponse.BodyHandlers.ofString()); + String oidcAccessTokenStr = oidcAccessTokenResponse.body(); + if (oidcAccessTokenResponse.statusCode() != HttpStatus.SC_OK) { + log.error("Could not get OpenID Connect access token: {}", oidcAccessTokenStr); + throw new Exception("Could not get OpenID Connect info: " + oidcAccessTokenStr); + } + //oidcAccessToken has keys "access_token" and "expires_in". + // "expires_in is an integer expressed in seconds e.g. 600 + long startDate = ((new Date().getTime()) / 1000); + JSONObject oidcAccessToken = new JSONObject(oidcAccessTokenStr); + oidcAccessToken.put("expires_on", startDate + oidcAccessToken.getInt("expires_in")); + oidcAccessTokenStore.put(webId, oidcAccessToken); + accessTokenStr = oidcAccessToken.getString("access_token"); + // token_type should be 'DPoP' + } + return accessTokenStr; + } catch (Throwable e) { // This is to catch runtime exceptions as well. + throw new Exception(e); + } + } + + /** + * Generates a JSON Web Token for a given URL and HTTP method. + * @param url The endpoint of the request using this token. + * @param method The HTTP method of the request using this token. + * @return The signed and serialized generated JWT. + * @throws JoseException Olé José: something goes wrong generating the token. + */ + private String generateJWT(final String url, final String method) throws JoseException { + // set claims + JwtClaims claims = new JwtClaims(); + claims.setGeneratedJwtId(); // jti claim + claims.setClaim("htm", method); + claims.setClaim("htu", url); + claims.setIssuedAtToNow(); // iat claim + + // create jws + JsonWebSignature jws = new JsonWebSignature(); + jws.setPayload(claims.toJson()); + jws.setKey(jwk.getPrivateKey()); + jws.setAlgorithmHeaderValue(AlgorithmIdentifiers.ECDSA_USING_P256_CURVE_AND_SHA256); // alg header + jws.setHeader("typ", "dpop+jwt"); + jws.setJwkHeader(jwk); + jws.sign(); + return jws.getCompactSerialization(); + } + + /** Executes a HTTP request to a web resource, optionally using authentication with CSS client credentials. + * @param httpRequestInfo A map with all necessary data except headers. The map should contain following keys: absoluteURI, methodName. + * The map may contain following keys: data, authenticationType, email, password, oidcIssuer, webId + * @param httpRequestHeaders A map with all headers + * @return response body + * @throws Exception Something goes wrong. + */ + public String executeHttpRequest(Map httpRequestInfo, Map httpRequestHeaders) throws Exception{ + try { + String absoluteURI = httpRequestInfo.get("absoluteURI"); + String methodName = httpRequestInfo.get("methodName"); + + HttpRequest.Builder RequestBuilder = HttpRequest.newBuilder(URI.create(absoluteURI)); + + if (httpRequestInfo.containsKey("data")){ + RequestBuilder.method(methodName, + HttpRequest.BodyPublishers.ofString(httpRequestInfo.get("data"), StandardCharsets.UTF_8)); + } else { + RequestBuilder.method(methodName, HttpRequest.BodyPublishers.noBody()); + } + + for (Map.Entry entry : httpRequestHeaders.entrySet()) { + RequestBuilder.setHeader(entry.getKey(), entry.getValue()); + } + + addAuthentication(RequestBuilder, httpRequestInfo); + HttpRequest httpRequest = RequestBuilder.build(); + + HttpResponse httpResponse = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + if (isNotSuccessful(httpResponse.statusCode())) { + log.error("Could not successfully execute HTTP request for URI {} and method {}: {}", absoluteURI, methodName, httpResponse.statusCode()); + throw new Exception("Could not successfully execute HTTP request for URI " + absoluteURI + " and method " + methodName+ ": " + httpResponse.statusCode()); + } + return httpResponse.body(); + } catch (Throwable e) { // This is to catch runtime exceptions as well. + throw new Exception(e); + } + } + + /** Executes a HTTP request to a linked web resource, optionally using authentication with CSS client credentials. + * @param httpRequestInfo A map with all necessary data. The map should contain following keys: + * linkingAbsoluteURI, linkRelation, methodName. + * The map may contain following keys: data, authenticationType, email, password, oidcIssuer, webId + * @param httpRequestHeaders A map with all headers + * @return response body + * @throws Exception Something goes wrong. + */ + public String executeLinkedHttpRequest(Map httpRequestInfo, Map httpRequestHeaders) throws Exception{ + try { + String linkingAbsoluteURI = httpRequestInfo.get("linkingAbsoluteURI"); + String linkRelation = httpRequestInfo.get("linkRelation"); + /* HEAD request to retrieve the linked absolute URI via a link relation */ + HttpRequest.Builder RequestBuilder = HttpRequest.newBuilder(URI.create(linkingAbsoluteURI)) + .method(HttpMethod.HEAD.name(), HttpRequest.BodyPublishers.noBody()); + addAuthentication(RequestBuilder, httpRequestInfo); + HttpRequest httpRequest = RequestBuilder.build(); + + HttpResponse headResponse = httpClient.send(httpRequest, HttpResponse.BodyHandlers.ofString()); + + List links = headResponse.headers().map().get("link"); + boolean foundLink = false; + int index = 0; + String absoluteURI = null; + String responseBody = null; + while (!foundLink && index < links.size() ){ + String link = links.get(index); + // a better method to parse the link header in Java would be welcome ... + if (link.contains("rel=\"" + linkRelation + "\"")) { + absoluteURI = link.substring(link.indexOf("<") + 1, link.indexOf(">")); + httpRequestInfo.put("absoluteURI", absoluteURI); + responseBody = executeHttpRequest(httpRequestInfo, httpRequestHeaders); + foundLink = true; + } + index += 1; + } + + if (!foundLink) { + String message = "Could not get linked absolute URI for link relation " + linkRelation + + " and linking absolute URI " + linkingAbsoluteURI; + log.error(message); + throw new Exception(message); + } else { + return responseBody; + } + + } catch (Throwable e) { // This is to catch runtime exceptions as well. + throw new Exception(e); + } + } + + private void addAuthentication(HttpRequest.Builder RequestBuilder, Map httpRequestInfo) throws Exception { + if (httpRequestInfo.containsKey("authenticationType") && + // only authentication with CSS Client Credentials implemented until now + httpRequestInfo.get("authenticationType").equals(NAMESPACES.RMLE + "CssClientCredentialsAuthentication")) { + // Get dpop access token + String dpopAccessToken = getDpopAccessToken(httpRequestInfo); + RequestBuilder.setHeader("Authorization", "DPoP " + dpopAccessToken); + // Generate new JWT token for this request + String dataJWT = generateJWT(httpRequestInfo.get("absoluteURI"), httpRequestInfo.get("methodName")); + RequestBuilder.setHeader("DPoP", dataJWT); + } + } + + + private boolean isNotSuccessful(int statusCode){ + return (statusCode < 200) || (statusCode > 299) ; + } +} diff --git a/src/main/java/be/ugent/rml/target/LinkedHttpRequestTarget.java b/src/main/java/be/ugent/rml/target/LinkedHttpRequestTarget.java new file mode 100644 index 00000000..77434dcf --- /dev/null +++ b/src/main/java/be/ugent/rml/target/LinkedHttpRequestTarget.java @@ -0,0 +1,44 @@ +package be.ugent.rml.target; + +import be.ugent.rml.store.Quad; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + + +public class LinkedHttpRequestTarget extends HttpRequestTarget { + + public LinkedHttpRequestTarget(Map httpRequestInfo, Map httpRequestHeaders, String serializationFormat, List metadata, HttpRequestTargetHelper httpRequestTargetHelper) throws IOException { + super(httpRequestInfo, httpRequestHeaders, serializationFormat, metadata, httpRequestTargetHelper); + } + + @Override + public boolean equals(Object o) { + if (o instanceof LinkedHttpRequestTarget) { + LinkedHttpRequestTarget target = (LinkedHttpRequestTarget) o; + return this.httpRequestInfo.get("linkingAbsoluteURI").equals(target.getHttpRequestInfo().get("linkingAbsoluteURI")) & + this.httpRequestInfo.get("linkRelation").equals(target.getHttpRequestInfo().get("linkRelation")); + } else { + return false; + } + } + + @Override + public String toString() { + return "resource linked to " + this.httpRequestInfo.get("linkingAbsoluteURI") + + " with link relation " + this.httpRequestInfo.get("linkRelation"); + } + + @Override + public void close() { + super.close(); + try { + this.httpRequestTargetHelper.executeLinkedHttpRequest(httpRequestInfo, httpRequestHeaders); + } catch (Exception e) { + logger.error("Failed to close http request target linked to {} with link relation {}: {}", + this.httpRequestInfo.get("linkingAbsoluteURI"), this.httpRequestInfo.get("linkRelation"), e.getMessage()); + } + } +} + diff --git a/src/main/java/be/ugent/rml/target/LocalFileTarget.java b/src/main/java/be/ugent/rml/target/LocalFileTarget.java index c2223d5b..be6f9841 100644 --- a/src/main/java/be/ugent/rml/target/LocalFileTarget.java +++ b/src/main/java/be/ugent/rml/target/LocalFileTarget.java @@ -9,7 +9,9 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; +import java.nio.file.Path; import java.util.List; +import java.util.Objects; import java.util.zip.GZIPOutputStream; import static org.apache.commons.io.FileUtils.getFile; @@ -37,7 +39,7 @@ public class LocalFileTarget implements Target { */ public LocalFileTarget(String path, String basePath, String serializationFormat, String compression, List metadata) { this.path = path; - this.basePath = basePath; + this.basePath = Objects.requireNonNullElseGet(basePath, () -> Path.of(path).toAbsolutePath().getParent().toString()); this.serializationFormat = serializationFormat; this.compression = compression; this.metadata = metadata; diff --git a/src/main/java/be/ugent/rml/target/Target.java b/src/main/java/be/ugent/rml/target/Target.java index 7945af6f..94d53335 100644 --- a/src/main/java/be/ugent/rml/target/Target.java +++ b/src/main/java/be/ugent/rml/target/Target.java @@ -10,7 +10,7 @@ * This interface represents the target of a knowledge graph. * For example, a local file, a SOLID pod, a Triple Store, and so on. */ -public interface Target { +public interface Target extends AutoCloseable { /** * This method returns an OutputStream for the target. diff --git a/src/main/java/be/ugent/rml/target/TargetFactory.java b/src/main/java/be/ugent/rml/target/TargetFactory.java index 71f5ff1e..bd590db4 100644 --- a/src/main/java/be/ugent/rml/target/TargetFactory.java +++ b/src/main/java/be/ugent/rml/target/TargetFactory.java @@ -7,27 +7,35 @@ import be.ugent.rml.term.Literal; import be.ugent.rml.term.NamedNode; import be.ugent.rml.term.Term; +import org.jose4j.lang.JoseException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; import java.time.Instant; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; public class TargetFactory { // The path used when local paths are not absolute. private final String basePath; private static final Logger logger = LoggerFactory.getLogger(TargetFactory.class); + private final String mappingPath; + // the HttpRequestTargetHelper is instantiated once, in the TargetFactory, because it stores reusable client credentials and access tokens + // it is used only for targets of the type HttpRequest + private HttpRequestTargetHelper httpRequestTargetHelper; /** * The constructor of the TargetFactory. */ - public TargetFactory(String basePath) { + public TargetFactory(String basePath, String mappingPath) { this.basePath = basePath; + this.mappingPath = mappingPath; + try { + this.httpRequestTargetHelper = new HttpRequestTargetHelper(); + } catch (JoseException e) { + logger.error("Failed to initialize new HttpRequestTargetHelper: {}", e.getMessage()); + } } private void detectLDESEventStreamTarget(Term logicalTarget, List metadata, QuadStore rmlStore, QuadStore outputStore) { @@ -57,7 +65,7 @@ private void detectLDESEventStreamTarget(Term logicalTarget, List metadata // LDES RDF type EventStream metadata.add(new Quad(ldes_iri, new NamedNode(NAMESPACES.RDF + "type"), - new NamedNode(NAMESPACES.LDES + "EventStream"))); + new NamedNode(NAMESPACES.LDES + "EventStream"))); } catch (IndexOutOfBoundsException e) { logger.debug("No LDES metadata will be generated since no LDES base IRI was specified"); @@ -76,7 +84,7 @@ private void detectLDESEventStreamTarget(Term logicalTarget, List metadata if (ldes_iri != null) { try { Term shape = Utils.getObjectsFromQuads(rmlStore.getQuads(ldes, - new NamedNode(NAMESPACES.TREE + "shape"), null)).get(0); + new NamedNode(NAMESPACES.TREE + "shape"), null)).get(0); logger.debug("SHACL shape: {}", shape.getValue()); // TODO: Handle embedded SHACL shapes in RML mapping rules as well. metadata.add(new Quad(ldes_iri, new NamedNode(NAMESPACES.TREE + "shape"), shape)); @@ -84,7 +92,7 @@ private void detectLDESEventStreamTarget(Term logicalTarget, List metadata logger.debug("No TREE SHACL shape specified for LDES."); } } - + // Optional versionOf path try { versionOfPathObj = Utils.getObjectsFromQuads(rmlStore.getQuads(ldes, @@ -182,7 +190,7 @@ private void detectLDESEventStreamTarget(Term logicalTarget, List metadata List timestampObj = Utils.getObjectsFromQuads(outputStore.getQuads(m, timestampPathObj, null)); if (timestampObj.isEmpty()) { outputStore.addQuad(new Quad(memberIRI, timestampPathObj, - new Literal(Instant.ofEpochMilli(currentTime).toString(), new NamedNode(NAMESPACES.XSD + "dateTime")))); + new Literal(Instant.ofEpochMilli(currentTime).toString(), new NamedNode(NAMESPACES.XSD + "dateTime")))); } else { for (Term v : timestampObj) { outputStore.addQuad(new Quad(memberIRI, timestampPathObj, v)); @@ -254,6 +262,7 @@ else if (location.endsWith(".jsonld")) { case NAMESPACES.FORMATS + "N-Quads" -> "nquads"; case NAMESPACES.FORMATS + "JSON-LD" -> "jsonld"; case NAMESPACES.FORMATS + "Turtle" -> "turtle"; + case NAMESPACES.FORMATS + "TriG" -> "trig"; default -> throw new UnsupportedOperationException("Serialization format " + sf + " not implemented!"); }; } @@ -328,6 +337,22 @@ else if (location.endsWith(".jsonld")) { target = new LocalFileTarget(location, this.basePath, serializationFormat, compression, metadata); break; } + case NAMESPACES.RML2 + "FilePath": { // rml:FilePath + logger.debug("Target is a RML2 FilePath"); + String path = Utils.getObjectsFromQuads(rmlStore.getQuads(t, new NamedNode(NAMESPACES.RML2 + "path"), null)).get(0).getValue(); + List rootNodes = rmlStore.getQuads(t, new NamedNode(NAMESPACES.RML2 + "root"), null); + if (rootNodes.isEmpty()) { + target = new LocalFileTarget(path, null, serializationFormat, compression, metadata); + } else { + String root = Utils.getObjectsFromQuads(rootNodes).get(0).getValue(); + if (root.equals(NAMESPACES.RML2 + "MappingDirectory")) { + target = new LocalFileTarget(path, this.mappingPath, serializationFormat, compression, metadata); + } else { + target = new LocalFileTarget(path, this.basePath, serializationFormat, compression, metadata); + } + } + break; + } case NAMESPACES.SD + "Service": { // SPARQL Service logger.debug("Target is a SD Service"); String endpoint = Utils.getObjectsFromQuads(rmlStore.getQuads(t, @@ -346,15 +371,96 @@ else if (location.endsWith(".jsonld")) { target = new SPARQLEndpointTarget(endpoint, metadata); break; } + case NAMESPACES.RMLE + "DirectHttpRequest": { + logger.debug("Target is a direct HTTP request"); + Map httpRequestInfo = parseHttpRequest(rmlStore, t); + String absoluteURI = getRequiredValue(t,new NamedNode(NAMESPACES.HTV + "absoluteURI"), rmlStore); + httpRequestInfo.put("absoluteURI", absoluteURI); + Map httpRequestHeaders = parseHttpRequestHeaders(rmlStore, t); + target = new DirectHttpRequestTarget(httpRequestInfo, httpRequestHeaders, serializationFormat, metadata, httpRequestTargetHelper); + break; + } + case NAMESPACES.RMLE + "LinkedHttpRequest": { + logger.debug("Target is a linked HTTP request"); + Map httpRequestInfo = parseHttpRequest(rmlStore, t); + String linkingAbsoluteURI = getRequiredValue(t,new NamedNode(NAMESPACES.RMLE + "linkingAbsoluteURI"), rmlStore); + String linkRelation = getRequiredValue(t,new NamedNode(NAMESPACES.RMLE + "linkRelation"), rmlStore); + httpRequestInfo.put("linkingAbsoluteURI", linkingAbsoluteURI); + httpRequestInfo.put("linkRelation", linkRelation); + Map httpRequestHeaders = parseHttpRequestHeaders(rmlStore, t); + target = new LinkedHttpRequestTarget(httpRequestInfo, httpRequestHeaders, serializationFormat, metadata, httpRequestTargetHelper); + break; + } default: { - throw new UnsupportedOperationException("Not implemented"); + throw new UnsupportedOperationException("Not implemented: " + targetType); } } logger.debug("Target created: {}", target); return target; } else { - throw new Error("The Target does not have target."); + throw new Error("Logical Target " + logicalTarget.getValue() + " does not have target."); + } + } + + private Map parseHttpRequest(QuadStore rmlStore, Term t){ + HashMap httpRequestInfo= new HashMap<>(); + putOptionalValue(t, new NamedNode(NAMESPACES.HTV + "methodName"), rmlStore, httpRequestInfo, "methodName"); + List authentications = Utils.getObjectsFromQuads(rmlStore.getQuads(t, new NamedNode(NAMESPACES.RMLE + "userAuthentication"), null)); + if (!authentications.isEmpty()) { + Term userAuthentication = authentications.get(0); + String authenticationType = getRequiredValue(userAuthentication, new NamedNode(NAMESPACES.RDF + "type"), rmlStore); + httpRequestInfo.put("authenticationType", authenticationType); + switch (authenticationType) { + case NAMESPACES.RMLE + "CssClientCredentialsAuthentication": { + String email = getRequiredValue(userAuthentication, new NamedNode(NAMESPACES.RMLE + "authEmail"), rmlStore); + String password = getRequiredValue(userAuthentication, new NamedNode(NAMESPACES.RMLE + "authPassword"), rmlStore); + String oidcIssuer = getRequiredValue(userAuthentication, new NamedNode(NAMESPACES.RMLE + "authOidcIssuer"), rmlStore); + String webId = getRequiredValue(userAuthentication, new NamedNode(NAMESPACES.RMLE + "authWebId"), rmlStore); + httpRequestInfo.put("email", email); + httpRequestInfo.put("password", password); + httpRequestInfo.put("oidcIssuer", oidcIssuer); + httpRequestInfo.put("webId", webId); + break; + } + default: { + throw new UnsupportedOperationException("User authentication type " + authenticationType + "is not implemented"); + } + } + } + return httpRequestInfo; + } + + private Map parseHttpRequestHeaders(QuadStore rmlStore, Term t){ + HashMap httpRequestHeaders = new HashMap<>(); + List headersList = Utils.getObjectsFromQuads(rmlStore.getQuads(t, new NamedNode(NAMESPACES.HTV + "headers"), null)); + if (!headersList.isEmpty()) { + Term rest = headersList.get(0); + while (!rest.getValue().equals(NAMESPACES.RDF + "nil")) { + Term first = Utils.getObjectsFromQuads(rmlStore.getQuads(rest, new NamedNode(NAMESPACES.RDF + "first"), null)).get(0); + String headerName = getRequiredValue(first, new NamedNode(NAMESPACES.HTV + "fieldName"), rmlStore); + String headerValue = getRequiredValue(first, new NamedNode(NAMESPACES.HTV + "fieldValue"), rmlStore); + //convert header name to lower case because HTTP headers are case-insensitive: easer to retrieve specific header + httpRequestHeaders.put(headerName.toLowerCase(), headerValue); + rest = Utils.getObjectsFromQuads(rmlStore.getQuads(rest, new NamedNode(NAMESPACES.RDF + "rest"), null)).get(0); + } + } + return httpRequestHeaders; + } + + private String getRequiredValue(Term subject, Term predicate, QuadStore rmlStore) throws Error { + List terms = Utils.getObjectsFromQuads(rmlStore.getQuads(subject, predicate, null)); + if (terms.isEmpty()) { + throw new Error(subject + " has no value for predicate " + predicate); + } else { + return terms.get(0).getValue(); + } + } + + private void putOptionalValue(Term subject, Term predicate, QuadStore rmlStore, HashMap map, String key) { + List terms = Utils.getObjectsFromQuads(rmlStore.getQuads(subject, predicate, null)); + if (!terms.isEmpty()) { + map.put(key, terms.get(0).getValue()); } } } diff --git a/src/main/java/be/ugent/rml/term/ProvenancedTerm.java b/src/main/java/be/ugent/rml/term/ProvenancedTerm.java index 56724a27..87655d59 100644 --- a/src/main/java/be/ugent/rml/term/ProvenancedTerm.java +++ b/src/main/java/be/ugent/rml/term/ProvenancedTerm.java @@ -38,5 +38,7 @@ public Metadata getMetadata() { return metadata; } - public List getTargets() { return targets; }; + public List getTargets() { + return targets; + }; } diff --git a/src/main/resources/docker-compose.yml b/src/main/resources/docker-compose.yml new file mode 100644 index 00000000..fbb68e58 --- /dev/null +++ b/src/main/resources/docker-compose.yml @@ -0,0 +1,13 @@ +services: + solid-target-helper: + # TODO host docker image on imec account instead of personal account + image: elsdvlee/solid-target-helper-and-testpods:latest + ports: + - "8080:8080" + command: "npm start" + healthcheck: + test: "[ -e healthy.flag ] || if curl http://localhost:8080/; then touch healthy.flag; else false; fi" + interval: 1s + timeout: 30s + retries: 65 + start_period: 1s \ No newline at end of file diff --git a/src/main/resources/functions_grel.ttl b/src/main/resources/functions_grel.ttl index 8639dfc4..cc21f98c 100644 --- a/src/main/resources/functions_grel.ttl +++ b/src/main/resources/functions_grel.ttl @@ -113,7 +113,7 @@ grel:array_slice fno:name "slice" ; dcterms:description "slice" ; fno:expects ( grel:param_a grel:p_int_i_from grel:p_int_i_opt_to ) ; - fno:returns ( grel:output_number ) . + fno:returns ( grel:output_array ) . #REVERSE diff --git a/src/test/java/be/ugent/rml/ArgumentsTest.java b/src/test/java/be/ugent/rml/ArgumentsTest.java index 3f0e5490..787f203b 100644 --- a/src/test/java/be/ugent/rml/ArgumentsTest.java +++ b/src/test/java/be/ugent/rml/ArgumentsTest.java @@ -300,7 +300,7 @@ public void outputJSON() throws Exception { byte[] encoded = Files.readAllBytes(Paths.get(actualJSONPath)); String content = new String(encoded, StandardCharsets.UTF_8); - assertTrue(content.contains("\"http://xmlns.com/foaf/0.1/name\" : [")); + assertTrue(content.contains("\"http://xmlns.com/foaf/0.1/name\": [")); } catch (IOException e) { e.printStackTrace(); } @@ -378,6 +378,28 @@ public void outputHDT() throws Exception { } } + @Test + public void outputJelly() throws Exception { + String cwd = Utils.getFile("argument").getAbsolutePath(); + String mappingFilePath = (new File(cwd, "mapping.ttl")).getAbsolutePath(); + String actualJellyPath = (new File("./generated_output.jelly")).getAbsolutePath(); + String expectedJellyPath = Utils.getFile( "argument/output-jelly/target_output.jelly").getAbsolutePath(); + + Main.run(new String[]{"-m" , mappingFilePath , "-o" , actualJellyPath , "-s", "jelly"}, cwd); + compareFiles( + expectedJellyPath, + actualJellyPath, + false + ); + + try { + File outputFile = Utils.getFile(actualJellyPath); + assertTrue(outputFile.delete()); + } catch (Exception e) { + e.printStackTrace(); + } + } + @Test public void quoteInLiteral() throws Exception { diff --git a/src/test/java/be/ugent/rml/HttpRequestTargetTest.java b/src/test/java/be/ugent/rml/HttpRequestTargetTest.java new file mode 100644 index 00000000..69dd1e89 --- /dev/null +++ b/src/test/java/be/ugent/rml/HttpRequestTargetTest.java @@ -0,0 +1,180 @@ +package be.ugent.rml; + +import be.ugent.rml.cli.Main; +import be.ugent.rml.store.QuadStore; +import be.ugent.rml.store.QuadStoreFactory; +import be.ugent.rml.target.HttpRequestTargetHelper; +import org.eclipse.rdf4j.rio.RDFFormat; +import org.junit.jupiter.api.Test; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; + +public class HttpRequestTargetTest extends TestCore { + + //constant target in subject map + @Test + public void solid1() throws Exception { + doMappingSolid("solid-target/solid1/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/solid1/output1.nq", + "user1"); + } + + //constant target in predicate map + @Test + public void solid2() throws Exception { + doMappingSolid("solid-target/solid2/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/solid2/output1.nq", + "user1"); + } + + //constant target in object map + @Test + public void solid3() throws Exception { + doMappingSolid("solid-target/solid3/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/solid3/output1.nq", + "user1"); + } + + //constant target in subject graph + @Test + public void solid4() throws Exception { + doMappingSolid("solid-target/solid4/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/solid4/output1.nq", + "user1"); + } + + //constant target in po graph + @Test + public void solid5() throws Exception { + doMappingSolid("solid-target/solid5/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/solid5/output1.nq", + "user1"); + } + + //constant target with explicit method and headers + @Test + public void solid6() throws Exception { + doMappingSolid("./solid-target/solid6/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/solid6/output1.nq", + "user1"); + } + + // TODO text with 2 headers + + //acl for user2, absolute URI with .ttl + @Test + public void acl1() throws Exception{ + doMappingSolid("solid-target/acl1/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building.ttl", + "solid-target/acl1/output1.nq", + "user2"); + } + + //acl for user2, absolute URI without .ttl + @Test + public void acl2() throws Exception{ + doMappingSolid("solid-target/acl2/mapping.ttl", + "https://pod.playground.solidlab.be/user1/rmlmapper/building", + "solid-target/acl2/output1.nq", + "user2"); + } + + //dynamic target on subject + @Test + public void dynamic_solid1() throws Exception{ + doMappingSolid("solid-target/dynamic_solid1/mapping.ttl", + new String[]{"https://pod.playground.solidlab.be/user1/rmlmapper/building_user2", + "https://pod.playground.solidlab.be/user1/rmlmapper/building_user3"}, + new String[]{"solid-target/dynamic_solid1/output1.nq", + "solid-target/dynamic_solid1/output2.nq"}, + new String[]{"user1", "user1"}); + } + + // constant and dynamic target in object map + @Test + public void dynamic_solid2() throws Exception{ + doMappingSolid("solid-target/dynamic_solid2/mapping.ttl", + new String[]{"https://pod.playground.solidlab.be/user1/rmlmapper/building_user2", + "https://pod.playground.solidlab.be/user1/rmlmapper/building_user3", + "https://pod.playground.solidlab.be/user1/rmlmapper/floortile"}, + new String[]{"solid-target/dynamic_solid2/output1.nq", + "solid-target/dynamic_solid2/output2.nq", + "solid-target/dynamic_solid2/output3.nq"}, + new String[]{"user1", "user1", "user1"}); + } + + //2 dynamic targets in object map + @Test + public void dynamic_solid3() throws Exception { + doMappingSolid("solid-target/dynamic_solid3/mapping.ttl", + new String[]{"https://pod.playground.solidlab.be/user1/rmlmapper/building_user2", + "https://pod.playground.solidlab.be/user1/rmlmapper/building_user3", + "https://pod.playground.solidlab.be/user1/rmlmapper/floortile1", + "https://pod.playground.solidlab.be/user1/rmlmapper/floortile2"}, + new String[]{"solid-target/dynamic_solid3/output1.nq", + "solid-target/dynamic_solid3/output2.nq", + "solid-target/dynamic_solid3/output3.nq", + "solid-target/dynamic_solid3/output4.nq"}, + new String[]{"user1", "user1", "user1", "user1"}); + } + + //dynamic target in language map + @Test + public void dynamic_solid4() throws Exception { + doMappingSolid("solid-target/dynamic_solid4/mapping.ttl", + new String[]{"https://pod.playground.solidlab.be/user1/rmlmapper/student_en", + "https://pod.playground.solidlab.be/user1/rmlmapper/student_nl"}, + new String[]{"solid-target/dynamic_solid4/output1.nq", + "solid-target/dynamic_solid4/output2.nq"}, + new String[]{"user1", "user1"}); + } + + void doMappingSolid(String mapPath, String absoluteURI, String outPath, String user) throws Exception { + doMappingSolid(mapPath, new String[]{absoluteURI}, new String[]{outPath},new String[]{user}); + } + + void doMappingSolid(String mapPath, String[] absoluteURIs, String[] outPaths, String[] users) throws Exception { + Main.run(("-m " + mapPath).split(" ")); + HttpRequestTargetHelper helper = new HttpRequestTargetHelper(); + int i = 0; + while (i < absoluteURIs.length) { + Map solidTargetInfo = getHttpRequestInfo(users[i], absoluteURIs[i], "GET"); + compareResourceWithOutput(outPaths[i], solidTargetInfo, helper); + helper.executeHttpRequest(getHttpRequestInfo("user1", absoluteURIs[i], "DELETE"), Map.of()); + i++; + } + } + + // get httpRequestInfo including authentication details of testpods + private Map getHttpRequestInfo(String user, String absoluteURI, String method){ + Map httpRequestInfo = new HashMap<>(); + httpRequestInfo.put("methodName", method); + httpRequestInfo.put("email", user + "@pod.playground.solidlab.be"); + httpRequestInfo.put("password",user); + httpRequestInfo.put("oidcIssuer", "https://pod.playground.solidlab.be/"); + httpRequestInfo.put("webId", "https://pod.playground.solidlab.be/" + user + "/profile/card#me"); + httpRequestInfo.put("authenticationType", NAMESPACES.RMLE + "CssClientCredentialsAuthentication"); + httpRequestInfo.put("absoluteURI", absoluteURI); + return httpRequestInfo; + } + + private void compareResourceWithOutput(String outPath, Map httpRequestInfo, HttpRequestTargetHelper helper) throws Exception { + // retrieve resource from solid pod + httpRequestInfo.put("methodName", "GET"); + String response = helper.executeHttpRequest(httpRequestInfo, Map.of()); + InputStream responseStream = new ByteArrayInputStream(response.getBytes()); + QuadStore result = QuadStoreFactory.read(responseStream, RDFFormat.NQUADS); + // compare result to expected output + result.removeDuplicates(); + compareStores(filePathToStore(outPath), result); + } +} diff --git a/src/test/java/be/ugent/rml/MapperCSVTest.java b/src/test/java/be/ugent/rml/MapperCSVTest.java index 23530cdd..f8052a47 100644 --- a/src/test/java/be/ugent/rml/MapperCSVTest.java +++ b/src/test/java/be/ugent/rml/MapperCSVTest.java @@ -35,7 +35,7 @@ public void evaluate_0002b_CSV() { @Test public void evaluate_0002c_CSV() { - doMappingExpectError("./test-cases/RMLTC0002c-CSV/mapping.ttl"); + doMappingExpectError("./test-cases/RMLTC0002c-CSV/mapping.ttl", StrictMode.STRICT); } @Test @@ -355,4 +355,9 @@ public void evaluate_1043_CSV() { Assertions.fail(); } } + + @Test + public void evaluate_1044_CSV() { + doMapping("test-cases/RMLTC1044-CSV/mapping.ttl", "test-cases/RMLTC1044-CSV/output.nq"); + } } diff --git a/src/test/java/be/ugent/rml/MapperCrossConcatSequenceTest.java b/src/test/java/be/ugent/rml/MapperCrossConcatSequenceTest.java new file mode 100644 index 00000000..72ee3009 --- /dev/null +++ b/src/test/java/be/ugent/rml/MapperCrossConcatSequenceTest.java @@ -0,0 +1,11 @@ +package be.ugent.rml; + +import org.junit.jupiter.api.Test; + +public class MapperCrossConcatSequenceTest extends TestCore { + + @Test + public void testConcatIRI() { + doMapping("./cross-concat-sequence/mapping.rml.ttl", "./cross-concat-sequence/output.nq"); + } +} diff --git a/src/test/java/be/ugent/rml/MapperEXCELTest.java b/src/test/java/be/ugent/rml/MapperEXCELTest.java index 0c65b184..bb3c6ceb 100644 --- a/src/test/java/be/ugent/rml/MapperEXCELTest.java +++ b/src/test/java/be/ugent/rml/MapperEXCELTest.java @@ -30,7 +30,7 @@ public void evaluate_0002b_EXCEL() { @Test public void evaluate_0002c_EXCEL() { - doMapping("./test-cases/RMLTC0002c-EXCEL/mapping.ttl", "./test-cases/RMLTC0002c-EXCEL/output.nq"); + doMappingExpectError("./test-cases/RMLTC0002c-EXCEL/mapping.ttl", StrictMode.STRICT); } @Test @@ -100,7 +100,7 @@ public void evaluate_0007g_EXCEL() { @Test public void evaluate_0007h_EXCEL() { - doMapping("./test-cases/RMLTC0007h-EXCEL/mapping.ttl", "./test-cases/RMLTC0007h-EXCEL/output.nq"); + doMappingExpectError("./test-cases/RMLTC0007h-EXCEL/mapping.ttl"); } @Test diff --git a/src/test/java/be/ugent/rml/MapperJSONTest.java b/src/test/java/be/ugent/rml/MapperJSONTest.java index 3b1feb10..89a39e40 100644 --- a/src/test/java/be/ugent/rml/MapperJSONTest.java +++ b/src/test/java/be/ugent/rml/MapperJSONTest.java @@ -41,7 +41,7 @@ public void evaluate_0002b_JSON() { @Test public void evaluate_0002c_JSON() { - doMapping("./test-cases/RMLTC0002c-JSON/mapping.ttl", "./test-cases/RMLTC0002c-JSON/output.nq"); + doMappingExpectError("./test-cases/RMLTC0002c-JSON/mapping.ttl", StrictMode.STRICT); } @Test @@ -290,4 +290,19 @@ public void evaluate_1028_JSON() { public void evaluate_1028b_JSON() { doMapping("./test-cases/RMLTC1028b-JSON/mapping.ttl", "./test-cases/RMLTC1028b-JSON/output.nq"); } + + @Test + public void evaluate_1045_JSON() { + doMapping("./test-cases/RMLTC1045-JSON/mapping.ttl", "./test-cases/RMLTC1045-JSON/output.nq"); + } + + @Test + public void evaluate_1046_JSON() { + doMapping("./test-cases/RMLTC1046-JSON/mapping.ttl", "./test-cases/RMLTC1046-JSON/output.nq"); + } + + @Test + public void evaluate_1047_JSON() { + doMapping("./test-cases/RMLTC1047-JSON/mapping.ttl", "./test-cases/RMLTC1047-JSON/output.nq"); + } } diff --git a/src/test/java/be/ugent/rml/MapperJoinAndTargetsBugTest.java b/src/test/java/be/ugent/rml/MapperJoinAndTargetsBugTest.java new file mode 100644 index 00000000..4e0cedc0 --- /dev/null +++ b/src/test/java/be/ugent/rml/MapperJoinAndTargetsBugTest.java @@ -0,0 +1,19 @@ +package be.ugent.rml; + +import be.ugent.rml.term.NamedNode; +import be.ugent.rml.term.Term; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.util.HashMap; +import java.util.Map; + +public class MapperJoinAndTargetsBugTest extends TestCore { + @Test + public void evaluate_joins_and_targets() { + Map outPaths = new HashMap<>(); + outPaths.put(new NamedNode("http://example.com/base/StudentTarget"), "./joins-and-targets/students.ttl"); + outPaths.put(new NamedNode("http://example.com/base/SportTarget"), "./joins-and-targets/sports.ttl"); + doMapping("./joins-and-targets/mapping.rml.ttl", outPaths); + } +} diff --git a/src/test/java/be/ugent/rml/MapperLDESTest.java b/src/test/java/be/ugent/rml/MapperLDESTest.java index e27e4384..4647a298 100644 --- a/src/test/java/be/ugent/rml/MapperLDESTest.java +++ b/src/test/java/be/ugent/rml/MapperLDESTest.java @@ -23,7 +23,7 @@ public class MapperLDESTest extends TestCore { private static Agent functionAgent; private static NamedNode LDES_LOGICAL_TARGET_IRI = new NamedNode("http://example.com/rules/#LDESLogicalTarget"); - private static TargetFactory targetFactory = new TargetFactory(System.getProperty("user.dir")); + private static TargetFactory targetFactory = new TargetFactory(System.getProperty("user.dir"), System.getProperty("user.dir")); @AfterEach public void cleanUp() throws IOException { diff --git a/src/test/java/be/ugent/rml/MapperMySQLR2RMLTest.java b/src/test/java/be/ugent/rml/MapperMySQLR2RMLTest.java index b2ce20c2..fc851510 100644 --- a/src/test/java/be/ugent/rml/MapperMySQLR2RMLTest.java +++ b/src/test/java/be/ugent/rml/MapperMySQLR2RMLTest.java @@ -30,7 +30,7 @@ public static Stream data() { Arguments.of("R2RMLTC0001b", false, BOTH), Arguments.of("R2RMLTC0002a", false, BOTH), Arguments.of("R2RMLTC0002b", false, BOTH), - Arguments.of("R2RMLTC0002c", true, BOTH), + Arguments.of("R2RMLTC0002c", true, STRICT_ONLY), Arguments.of("R2RMLTC0002d", false, BOTH), Arguments.of("R2RMLTC0002e", true, BOTH), //Arguments.of("R2RMLTC0002f", true, BOTH), Issue #189: excluded due to non-compliance: diff --git a/src/test/java/be/ugent/rml/MapperMySQLTest.java b/src/test/java/be/ugent/rml/MapperMySQLTest.java index b852e569..c2eb4ab8 100644 --- a/src/test/java/be/ugent/rml/MapperMySQLTest.java +++ b/src/test/java/be/ugent/rml/MapperMySQLTest.java @@ -27,12 +27,12 @@ static Stream data() { Arguments.of("RMLTC0001b", false, BOTH), Arguments.of("RMLTC0002a", false, BOTH), Arguments.of("RMLTC0002b", false, BOTH), - Arguments.of("RMLTC0002c", true, BOTH), + Arguments.of("RMLTC0002c", true, STRICT_ONLY), Arguments.of("RMLTC0002d", false, BOTH), Arguments.of("RMLTC0002e", true, BOTH), //Arguments.of("RMLTC0002f", false, TestMode.BOTH), Arguments.of("RMLTC0002g", true, BOTH), - Arguments.of("RMLTC0002h", true, BOTH), + Arguments.of("RMLTC0002h", true, STRICT_ONLY), Arguments.of("RMLTC0002i", false, BOTH), Arguments.of("RMLTC0002j", false, BOTH), Arguments.of("RMLTC0002k", false, BOTH), diff --git a/src/test/java/be/ugent/rml/MapperNewRMLCoreCSVTest.java b/src/test/java/be/ugent/rml/MapperNewRMLCoreCSVTest.java deleted file mode 100644 index 9eb589e9..00000000 --- a/src/test/java/be/ugent/rml/MapperNewRMLCoreCSVTest.java +++ /dev/null @@ -1,215 +0,0 @@ -package be.ugent.rml; - -import org.junit.jupiter.api.Test; - -public class MapperNewRMLCoreCSVTest extends TestCore { - @Test - public void evaluate_new_0000_CSV() { - doMapping("./new-test-cases/core/RMLTC0000-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0000-CSV/output.nq"); - } - - @Test - public void evaluate_new_0001a_CSV() { - doMapping("./new-test-cases/core/RMLTC0001a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0001a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0001b_CSV() { - doMapping("./new-test-cases/core/RMLTC0001b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0001b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0002a_CSV() { - doMapping("./new-test-cases/core/RMLTC0002a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0002a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0002b_CSV() { - doMapping("./new-test-cases/core/RMLTC0002b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0002b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0002c_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0002c-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0002e_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0002e-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0003c_CSV() { - doMapping("./new-test-cases/core/RMLTC0003c-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0003c-CSV/output.nq"); - } - - @Test - public void evaluate_new_0004a_CSV() { - doMapping("./new-test-cases/core/RMLTC0004a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0004a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0004b_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0004b-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0005a_CSV() { - doMapping("./new-test-cases/core/RMLTC0005a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0005a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0006a_CSV() { - doMapping("./new-test-cases/core/RMLTC0006a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0006a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007a_CSV() { - doMapping("./new-test-cases/core/RMLTC0007a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007b_CSV() { - doMapping("./new-test-cases/core/RMLTC0007b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007c_CSV() { - doMapping("./new-test-cases/core/RMLTC0007c-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007c-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007d_CSV() { - doMapping("./new-test-cases/core/RMLTC0007d-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007d-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007e_CSV() { - doMapping("./new-test-cases/core/RMLTC0007e-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007e-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007f_CSV() { - doMapping("./new-test-cases/core/RMLTC0007f-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007f-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007g_CSV() { - doMapping("./new-test-cases/core/RMLTC0007g-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0007g-CSV/output.nq"); - } - - @Test - public void evaluate_new_0007h_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0007h-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0008a_CSV() { - doMapping("./new-test-cases/core/RMLTC0008a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0008a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0008b_CSV() { - doMapping("./new-test-cases/core/RMLTC0008b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0008b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0008c_CSV() { - doMapping("./new-test-cases/core/RMLTC0008c-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0008c-CSV/output.nq"); - } - - @Test - public void evaluate_new_0009a_CSV() { - doMapping("./new-test-cases/core/RMLTC0009a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0009a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0009b_CSV() { - doMapping("./new-test-cases/core/RMLTC0009b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0009b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0010a_CSV() { - doMapping("./new-test-cases/core/RMLTC0010a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0010a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0010b_CSV() { - doMapping("./new-test-cases/core/RMLTC0010b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0010b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0010c_CSV() { - doMapping("./new-test-cases/core/RMLTC0010c-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0010c-CSV/output.nq"); - } - - @Test - public void evaluate_new_0011b_CSV() { - doMapping("./new-test-cases/core/RMLTC0011b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0011b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0012a_CSV() { - doMapping("./new-test-cases/core/RMLTC0012a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0012a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0012b_CSV() { - doMapping("./new-test-cases/core/RMLTC0012b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0012b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0012c_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0012c-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0012d_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0012d-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0015a_CSV() { - doMapping("./new-test-cases/core/RMLTC0015a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0015a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0015b_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0015b-CSV/mapping.ttl"); - } - - @Test - public void evaluate_new_0019a_CSV() { - doMapping("./new-test-cases/core/RMLTC0019a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0019a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0019b_CSV() { - doMappingExpectError("./new-test-cases/core/RMLTC0019b-CSV/mapping.ttl", StrictMode.STRICT); - } - - @Test - public void evaluate_new_0020a_CSV() { - doMapping("./new-test-cases/core/RMLTC0020a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0020a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0021a_CSV() { - doMapping("./new-test-cases/core/RMLTC0021a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0021a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0022a_CSV() { - doMapping("./new-test-cases/core/RMLTC0022a-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0022a-CSV/output.nq"); - } - - @Test - public void evaluate_new_0022b_CSV() { - doMapping("./new-test-cases/core/RMLTC0022b-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0022b-CSV/output.nq"); - } - - @Test - public void evaluate_new_0022c_CSV() { - doMapping("./new-test-cases/core/RMLTC0022c-CSV/mapping.ttl", "./new-test-cases/core/RMLTC0022c-CSV/output.nq"); - } -} diff --git a/src/test/java/be/ugent/rml/MapperNewRMLCoreJSONTest.java b/src/test/java/be/ugent/rml/MapperNewRMLCoreJSONTest.java index a3c0f01c..4ca8b909 100644 --- a/src/test/java/be/ugent/rml/MapperNewRMLCoreJSONTest.java +++ b/src/test/java/be/ugent/rml/MapperNewRMLCoreJSONTest.java @@ -4,6 +4,11 @@ import org.junit.jupiter.api.Test; public class MapperNewRMLCoreJSONTest extends TestCore { + /* + - Total number of test cases: 61 + - Failures: 6 (9.8%) + - Passes: 55 (90.2%) + */ @Test public void evaluate_new_0000_JSON() { doMapping("./new-test-cases/core/RMLTC0000-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0000-JSON/output.nq"); @@ -34,6 +39,11 @@ public void evaluate_new_0002e_JSON() { doMappingExpectError("./new-test-cases/core/RMLTC0002e-JSON/mapping.ttl"); } + @Test + public void evaluate_new_0002g_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0002g-JSON/mapping.ttl"); + } + @Test public void evaluate_new_0003c_JSON() { doMapping("./new-test-cases/core/RMLTC0003c-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0003c-JSON/output.nq"); @@ -124,23 +134,20 @@ public void evaluate_new_0009b_JSON() { doMapping("./new-test-cases/core/RMLTC0009b-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0009b-JSON/output.nq"); } - // Needs latest JSONPath IETF support @Test - @Disabled + @Disabled("Needs latest JSONPath IETF support") public void evaluate_new_0010a_JSON() { doMapping("./new-test-cases/core/RMLTC0010a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0010a-JSON/output.nq"); } - // Needs latest JSONPath IETF support @Test - @Disabled + @Disabled("Needs latest JSONPath IETF support") public void evaluate_new_0010b_JSON() { doMapping("./new-test-cases/core/RMLTC0010b-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0010b-JSON/output.nq"); } - // Needs latest JSONPath IETF support @Test - @Disabled + @Disabled("Needs latest JSONPath IETF support") public void evaluate_new_0010c_JSON() { doMapping("./new-test-cases/core/RMLTC0010c-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0010c-JSON/output.nq"); } @@ -204,4 +211,123 @@ public void evaluate_new_0020a_JSON() { public void evaluate_new_0021a_JSON() { doMapping("./new-test-cases/core/RMLTC0021a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0021a-JSON/output.nq"); } + + @Test + public void evaluate_new_0022a_JSON() { + doMapping("./new-test-cases/core/RMLTC0022a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0022a-JSON/output.nq"); + } + + @Test + public void evaluate_new_0022b_JSON() { + doMapping("./new-test-cases/core/RMLTC0022b-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0022b-JSON/output.nq"); + } + + @Test + public void evaluate_new_0022c_JSON() { + doMapping("./new-test-cases/core/RMLTC0022c-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0022c-JSON/output.nq"); + } + + @Test + public void evaluate_new_0023a_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0023a-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + public void evaluate_new_0023b_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0023b-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + public void evaluate_new_0023c_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0023c-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + public void evaluate_new_0023d_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0023d-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + @Disabled("Invalid template should fail, but RMLMapper doesn't.") + public void evaluate_new_0023e_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0023e-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + public void evaluate_new_0023f_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0023f-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + @Disabled("RMLMapper cannot parse rml:subject correctly.") + public void evaluate_new_0025a_JSON() { + doMapping("./new-test-cases/core/RMLTC0025a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0025a-JSON/output.nq"); + } + + @Test + @Disabled("Should fail but doesn't.") + public void evaluate_new_0025b_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0025b-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + public void evaluate_new_0026a_JSON() { + doMapping("./new-test-cases/core/RMLTC0026a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0026a-JSON/output.nq"); + } + + @Test + @Disabled("Referencing to an array instead of elements or all elements should fail, but RMLMapper doesn't fail.") + public void evaluate_new_0026b_JSON() { + doMappingExpectError("./new-test-cases/core/RMLTC0026b-JSON/mapping.ttl", StrictMode.STRICT); + } + + @Test + public void evaluate_new_0027a_JSON() { + doMapping("./new-test-cases/core/RMLTC0027a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0027a-JSON/output.nq"); + } + + @Test + public void evaluate_new_0027b_JSON() { + doMapping("./new-test-cases/core/RMLTC0027b-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0027b-JSON/output.nq"); + } + + @Test + public void evaluate_new_0027c_JSON() { + doMapping("./new-test-cases/core/RMLTC0027c-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0027c-JSON/output.nq"); + } + + @Test + public void evaluate_new_0027d_JSON() { + doMapping("./new-test-cases/core/RMLTC0027d-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0027d-JSON/output.nq"); + } + + @Test + public void evaluate_new_0028a_JSON() { + doMapping("./new-test-cases/core/RMLTC0028a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0028a-JSON/output.nq"); + } + + @Test + public void evaluate_new_0028b_JSON() { + doMapping("./new-test-cases/core/RMLTC0028b-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0028b-JSON/output.nq"); + } + + @Test + public void evaluate_new_0028c_JSON() { + doMapping("./new-test-cases/core/RMLTC0028c-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0028c-JSON/output.nq"); + } + + @Test + public void evaluate_new_0029a_JSON() { + doMapping("./new-test-cases/core/RMLTC0029a-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0029a-JSON/output.nq"); + } + + @Test + public void evaluate_new_0029b_JSON() { + doMapping("./new-test-cases/core/RMLTC0029b-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0029b-JSON/output.nq"); + } + + @Test + public void evaluate_new_0029c_JSON() { + doMapping("./new-test-cases/core/RMLTC0029c-JSON/mapping.ttl", "./new-test-cases/core/RMLTC0029c-JSON/output.nq"); + } } diff --git a/src/test/java/be/ugent/rml/MapperNewRMLCoreMySQLTest.java b/src/test/java/be/ugent/rml/MapperNewRMLCoreMySQLTest.java deleted file mode 100644 index 7200c2b5..00000000 --- a/src/test/java/be/ugent/rml/MapperNewRMLCoreMySQLTest.java +++ /dev/null @@ -1,118 +0,0 @@ -package be.ugent.rml; - -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; -import org.slf4j.LoggerFactory; - -import java.util.stream.Stream; - -import static be.ugent.rml.MyFileUtils.getParentPath; -import static be.ugent.rml.TestStrictMode.*; - -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class MapperNewRMLCoreMySQLTest extends MySQLTestCore { - @BeforeAll - public static void beforeClass() { - logger = LoggerFactory.getLogger(MapperNewRMLCoreMySQLTest.class); - } - - static Stream data() { - return Stream.of( - // scenarios: - Arguments.of("RMLTC0000", false, BOTH), - Arguments.of("RMLTC0001a", false, BOTH), - Arguments.of("RMLTC0001b", false, BOTH), - Arguments.of("RMLTC0002a", false, BOTH), - Arguments.of("RMLTC0002b", false, BOTH), - Arguments.of("RMLTC0002c", true, BOTH), - Arguments.of("RMLTC0002d", false, BOTH), - Arguments.of("RMLTC0002e", true, BOTH), - Arguments.of("RMLTC0002g", true, BOTH), - Arguments.of("RMLTC0002h", true, BOTH), - Arguments.of("RMLTC0002i", true, BOTH), - Arguments.of("RMLTC0002j", true, BOTH), - Arguments.of("RMLTC0003a", true, BOTH), - Arguments.of("RMLTC0003b", false, BOTH), - Arguments.of("RMLTC0003c", false, BOTH), - Arguments.of("RMLTC0004a", false, BOTH), - Arguments.of("RMLTC0004b", true, BOTH), - Arguments.of("RMLTC0005a", false, BOTH), - Arguments.of("RMLTC0005b", false, BOTH), - Arguments.of("RMLTC0006a", false, BOTH), - Arguments.of("RMLTC0007a", false, BOTH), - Arguments.of("RMLTC0007b", false, BOTH), - Arguments.of("RMLTC0007c", false, BOTH), - Arguments.of("RMLTC0007d", false, BOTH), - Arguments.of("RMLTC0007e", false, BOTH), - Arguments.of("RMLTC0007f", false, BOTH), - Arguments.of("RMLTC0007g", false, BOTH), - Arguments.of("RMLTC0007h", true, BOTH), - Arguments.of("RMLTC0008a", false, BOTH), - Arguments.of("RMLTC0008b", false, BOTH), - Arguments.of("RMLTC0008c", false, BOTH), - Arguments.of("RMLTC0009a", false, BOTH), - Arguments.of("RMLTC0009b", false, BOTH), - Arguments.of("RMLTC0009c", false, BOTH), - Arguments.of("RMLTC0009d", false, BOTH), - Arguments.of("RMLTC0010a", false, BOTH), - Arguments.of("RMLTC0010b", false, BOTH), - Arguments.of("RMLTC0010c", false, BOTH), - Arguments.of("RMLTC0011b", false, BOTH), - Arguments.of("RMLTC0012a", false, BOTH), - Arguments.of("RMLTC0012b", false, BOTH), - Arguments.of("RMLTC0012c", true, BOTH), - Arguments.of("RMLTC0012d", true, BOTH), - Arguments.of("RMLTC0012e", false, BOTH), - Arguments.of("RMLTC0013a", false, BOTH), - Arguments.of("RMLTC0014d", false, BOTH), - Arguments.of("RMLTC0015b", true, BOTH), - Arguments.of("RMLTC0016a", false, BOTH), - Arguments.of("RMLTC0016b", false, BOTH), - Arguments.of("RMLTC0016c", false, BOTH), - Arguments.of("RMLTC0016d", false, BOTH), - Arguments.of("RMLTC0016e", false, BOTH), // Issue 184, resolved - Arguments.of("RMLTC0019a", false, BOTH), - Arguments.of("RMLTC0019b", true, STRICT_ONLY), - Arguments.of("RMLTC0020a", false, BOTH), - Arguments.of("RMLTC0021a", false, BOTH) - ); - } - - @ParameterizedTest(name = "{index}: NewRMLCore_MySQL_{0}") - @MethodSource("data") - public void doMapping(String testCaseName, boolean expectedException, TestStrictMode testStrictMode) throws Exception { - prepareDatabase(String.format("src/test/resources/new-test-cases/core/%s-MySQL/resource.sql", testCaseName), USERNAME, PASSWORD); - if (testStrictMode.equals(BOTH) || testStrictMode.equals(BEST_EFFORT_ONLY)) { - // test the best-effort mode of the mapper - mappingTest(testCaseName, expectedException, StrictMode.BEST_EFFORT); - } - if (testStrictMode.equals(BOTH) || testStrictMode.equals(STRICT_ONLY)) { - // test the mapper in strict mode - mappingTest(testCaseName, expectedException, StrictMode.STRICT); - } - } - - private void mappingTest(String testCaseName, boolean expectedException, StrictMode strictMode) { - String mappingPath = "./new-test-cases/core/" + testCaseName + "-MySQL/mapping.ttl"; - String outputPath = "new-test-cases/core/" + testCaseName + "-MySQL/output.nq"; - - System.out.println(mappingPath); - - // Create a temporary copy of the mapping file and replace source details - String tempMappingPath = CreateTempMappingFileAndReplaceDSN(mappingPath); - - // mapping - String parentPath = getParentPath(getClass(), outputPath); - - if (!expectedException) { - doMapping(tempMappingPath, outputPath, parentPath, strictMode); - } else { - doMappingExpectError(tempMappingPath, strictMode); - } - - deleteTempMappingFile(tempMappingPath); - } -} diff --git a/src/test/java/be/ugent/rml/MapperNewRMLCorePostgresTest.java b/src/test/java/be/ugent/rml/MapperNewRMLCorePostgresTest.java deleted file mode 100644 index f906522f..00000000 --- a/src/test/java/be/ugent/rml/MapperNewRMLCorePostgresTest.java +++ /dev/null @@ -1,122 +0,0 @@ -package be.ugent.rml; - -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.TestInstance; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.Arguments; -import org.junit.jupiter.params.provider.MethodSource; -import org.slf4j.LoggerFactory; - -import java.util.stream.Stream; - -import static be.ugent.rml.MyFileUtils.getParentPath; -import static be.ugent.rml.TestStrictMode.*; - -@TestInstance(TestInstance.Lifecycle.PER_CLASS) -public class MapperNewRMLCorePostgresTest extends PostgresTestCore { - - @BeforeAll - public static void beforeClass() { - logger = LoggerFactory.getLogger(MapperNewRMLCorePostgresTest.class); - } - - public static Stream data() { - return Stream.of( - // scenarios: - Arguments.of("RMLTC0000", false, BOTH), - Arguments.of("RMLTC0001a", false, BOTH), - Arguments.of("RMLTC0001b", false, BOTH), - Arguments.of("RMLTC0002a", false, BOTH), - Arguments.of("RMLTC0002b", false, BOTH), - Arguments.of("RMLTC0002c", true, BOTH), - Arguments.of("RMLTC0002d", false, BOTH), - Arguments.of("RMLTC0002e", true, BOTH), - Arguments.of("RMLTC0002g", true, BOTH), - Arguments.of("RMLTC0002h", true, BOTH), - Arguments.of("RMLTC0002i", true, BOTH), - Arguments.of("RMLTC0002j", true, BOTH), - Arguments.of("RMLTC0003a", true, BOTH), - Arguments.of("RMLTC0003b", false, BOTH), - Arguments.of("RMLTC0003c", false, BOTH), - Arguments.of("RMLTC0004a", false, BOTH), - Arguments.of("RMLTC0004b", true, BOTH), - Arguments.of("RMLTC0005a", false, BOTH), - Arguments.of("RMLTC0005b", false, BOTH), - Arguments.of("RMLTC0006a", false, BOTH), - Arguments.of("RMLTC0007a", false, BOTH), - Arguments.of("RMLTC0007b", false, BOTH), - Arguments.of("RMLTC0007c", false, BOTH), - Arguments.of("RMLTC0007d", false, BOTH), - Arguments.of("RMLTC0007e", false, BOTH), - Arguments.of("RMLTC0007f", false, BOTH), - Arguments.of("RMLTC0007g", false, BOTH), - Arguments.of("RMLTC0007h", true, BOTH), - Arguments.of("RMLTC0008a", false, BOTH), - Arguments.of("RMLTC0008b", false, BOTH), - Arguments.of("RMLTC0008c", false, BOTH), - Arguments.of("RMLTC0009a", false, BOTH), - Arguments.of("RMLTC0009b", false, BOTH), - Arguments.of("RMLTC0009c", false, BOTH), - Arguments.of("RMLTC0009d", false, BOTH), - Arguments.of("RMLTC0010a", false, BOTH), - Arguments.of("RMLTC0010b", false, BOTH), - Arguments.of("RMLTC0010c", false, BOTH), - Arguments.of("RMLTC0011b", false, BOTH), - Arguments.of("RMLTC0012a", false, BOTH), - Arguments.of("RMLTC0012b", false, BOTH), - Arguments.of("RMLTC0012c", true, BOTH), - Arguments.of("RMLTC0012d", true, BOTH), - Arguments.of("RMLTC0012e", false, BOTH), - Arguments.of("RMLTC0013a", false, BOTH), - Arguments.of("RMLTC0014d", false, BOTH), - Arguments.of("RMLTC0015b", true, BOTH), - Arguments.of("RMLTC0016a", false, BOTH), - Arguments.of("RMLTC0016c", false, BOTH), - Arguments.of("RMLTC0016d", false, BOTH), - Arguments.of("RMLTC0016e", false, BOTH), // Issue 184, resolved - Arguments.of("RMLTC0019a", false, BOTH), - /* - Expected output for RMLTC0019b is written for best-effort operation. - The case will fail in strict mode. - */ - Arguments.of("RMLTC0019b", true, STRICT_ONLY), - Arguments.of("RMLTC0020a", false, BOTH), - Arguments.of("RMLTC0021a", false, BOTH) - ); - } - - - @ParameterizedTest(name = "{index}: NewRMLCore_Postgres_CSV_Test_{0}") - @MethodSource("data") - public void doMapping(String testCaseName, boolean expectedException, TestStrictMode testStrictMode) throws Exception { - if (testStrictMode.equals(BOTH) || testStrictMode.equals(BEST_EFFORT_ONLY)) { - // test the best-effort mode of the mapper - mappingTest(testCaseName, expectedException, StrictMode.BEST_EFFORT); - } - if (testStrictMode.equals(BOTH) || testStrictMode.equals(STRICT_ONLY)) { - // test the mapper in strict mode - mappingTest(testCaseName, expectedException, StrictMode.STRICT); - } - } - - private void mappingTest(String testCaseName, boolean expectedException, StrictMode strictMode) { - prepareDatabase(String.format("src/test/resources/new-test-cases/core/%s-PostgreSQL/resource.sql", testCaseName), USERNAME, PASSWORD); - - String mappingPath = "./new-test-cases/core/" + testCaseName + "-PostgreSQL/mapping.ttl"; - String outputPath = "new-test-cases/core/" + testCaseName + "-PostgreSQL/output.nq"; - - // Create a temporary copy of the mapping file and replace source details - String tempMappingPath = CreateTempMappingFileAndReplaceDSN(mappingPath); - - // mapping - String parentPath = getParentPath(getClass(), outputPath); - - if (!expectedException) { - doMapping(tempMappingPath, outputPath, parentPath, strictMode); - } else { - doMappingExpectError(tempMappingPath, strictMode); - } - - deleteTempMappingFile(tempMappingPath); - } -} diff --git a/src/test/java/be/ugent/rml/MapperNewRMLCoreXMLTest.java b/src/test/java/be/ugent/rml/MapperNewRMLCoreXMLTest.java deleted file mode 100644 index 81ce58e8..00000000 --- a/src/test/java/be/ugent/rml/MapperNewRMLCoreXMLTest.java +++ /dev/null @@ -1,190 +0,0 @@ -package be.ugent.rml; - -import org.junit.jupiter.api.Test; - -public class MapperNewRMLCoreXMLTest extends TestCore { - @Test - public void evaluate_new_0000_XML() { - doMapping("./new-test-cases/core/RMLTC0000-XML/mapping.ttl", "./new-test-cases/core/RMLTC0000-XML/output.nq"); - } - - @Test - public void evaluate_new_0001a_XML() { - doMapping("./new-test-cases/core/RMLTC0001a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0001a-XML/output.nq"); - } - - @Test - public void evaluate_new_0001b_XML() { - doMapping("./new-test-cases/core/RMLTC0001b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0001b-XML/output.nq"); - } - - @Test - public void evaluate_new_0002a_XML() { - doMapping("./new-test-cases/core/RMLTC0002a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0002a-XML/output.nq"); - } - - @Test - public void evaluate_new_0002b_XML() { - doMapping("./new-test-cases/core/RMLTC0002b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0002b-XML/output.nq"); - } - - @Test - public void evaluate_new_0002e_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0002e-XML/mapping.ttl"); - } - - @Test - public void evaluate_new_0003c_XML() { - doMapping("./new-test-cases/core/RMLTC0003c-XML/mapping.ttl", "./new-test-cases/core/RMLTC0003c-XML/output.nq"); - } - - @Test - public void evaluate_new_0004a_XML() { - doMapping("./new-test-cases/core/RMLTC0004a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0004a-XML/output.nq"); - } - - @Test - public void evaluate_new_0004b_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0004b-XML/mapping.ttl"); - } - - @Test - public void evaluate_new_0005a_XML() { - doMapping("./new-test-cases/core/RMLTC0005a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0005a-XML/output.nq"); - } - - @Test - public void evaluate_new_0006a_XML() { - doMapping("./new-test-cases/core/RMLTC0006a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0006a-XML/output.nq"); - } - - @Test - public void evaluate_new_0007a_XML() { - doMapping("./new-test-cases/core/RMLTC0007a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007a-XML/output.nq"); - } - - @Test - public void evaluate_new_0007b_XML() { - doMapping("./new-test-cases/core/RMLTC0007b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007b-XML/output.nq"); - } - - @Test - public void evaluate_new_0007c_XML() { - doMapping("./new-test-cases/core/RMLTC0007c-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007c-XML/output.nq"); - } - - @Test - public void evaluate_new_0007d_XML() { - doMapping("./new-test-cases/core/RMLTC0007d-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007d-XML/output.nq"); - } - - @Test - public void evaluate_new_0007e_XML() { - doMapping("./new-test-cases/core/RMLTC0007e-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007e-XML/output.nq"); - } - - @Test - public void evaluate_new_0007f_XML() { - doMapping("./new-test-cases/core/RMLTC0007f-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007f-XML/output.nq"); - } - - @Test - public void evaluate_new_0007g_XML() { - doMapping("./new-test-cases/core/RMLTC0007g-XML/mapping.ttl", "./new-test-cases/core/RMLTC0007g-XML/output.nq"); - } - - @Test - public void evaluate_new_0007h_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0007h-XML/mapping.ttl"); - } - - @Test - public void evaluate_new_0008a_XML() { - doMapping("./new-test-cases/core/RMLTC0008a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0008a-XML/output.nq"); - } - - @Test - public void evaluate_new_0008b_XML() { - doMapping("./new-test-cases/core/RMLTC0008b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0008b-XML/output.nq"); - } - - @Test - public void evaluate_new_0008c_XML() { - doMapping("./new-test-cases/core/RMLTC0008c-XML/mapping.ttl", "./new-test-cases/core/RMLTC0008c-XML/output.nq"); - } - - @Test - public void evaluate_new_0009a_XML() { - doMapping("./new-test-cases/core/RMLTC0009a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0009a-XML/output.nq"); - } - - @Test - public void evaluate_new_0009b_XML() { - doMapping("./new-test-cases/core/RMLTC0009b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0009b-XML/output.nq"); - } - - @Test - public void evaluate_new_0010b_XML() { - doMapping("./new-test-cases/core/RMLTC0010b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0010b-XML/output.nq"); - } - - @Test - public void evaluate_new_0010c_XML() { - doMapping("./new-test-cases/core/RMLTC0010c-XML/mapping.ttl", "./new-test-cases/core/RMLTC0010c-XML/output.nq"); - } - - @Test - public void evaluate_new_0011b_XML() { - doMapping("./new-test-cases/core/RMLTC0011b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0011b-XML/output.nq"); - } - - @Test - public void evaluate_new_0012a_XML() { - doMapping("./new-test-cases/core/RMLTC0012a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0012a-XML/output.nq"); - } - - @Test - public void evaluate_new_0012b_XML() { - doMapping("./new-test-cases/core/RMLTC0012b-XML/mapping.ttl", "./new-test-cases/core/RMLTC0012b-XML/output.nq"); - } - - @Test - public void evaluate_new_0012c_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0012c-XML/mapping.ttl"); - } - - @Test - public void evaluate_new_0012d_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0012d-XML/mapping.ttl"); - } - - @Test - public void evaluate_new_0015a_XML() { - doMapping("./new-test-cases/core/RMLTC0015a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0015a-XML/output.nq"); - } - - @Test - public void evaluate_new_0015b_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0015b-XML/mapping.ttl"); - } - - @Test - public void evaluate_new_0019a_XML() { - doMapping("./new-test-cases/core/RMLTC0019a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0019a-XML/output.nq"); - } - - @Test - public void evaluate_new_0019b_XML() { - doMappingExpectError("./new-test-cases/core/RMLTC0019b-XML/mapping.ttl", StrictMode.STRICT); - } - - @Test - public void evaluate_new_0020a_XML() { - doMapping("./new-test-cases/core/RMLTC0020a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0020a-XML/output.nq"); - } - - @Test - public void evaluate_new_0021a_XML() { - doMapping("./new-test-cases/core/RMLTC0021a-XML/mapping.ttl", "./new-test-cases/core/RMLTC0021a-XML/output.nq"); - } -} diff --git a/src/test/java/be/ugent/rml/MapperNewRMLIOSourceTest.java b/src/test/java/be/ugent/rml/MapperNewRMLIOSourceTest.java index 90ce19d1..85db2596 100644 --- a/src/test/java/be/ugent/rml/MapperNewRMLIOSourceTest.java +++ b/src/test/java/be/ugent/rml/MapperNewRMLIOSourceTest.java @@ -4,6 +4,11 @@ import org.junit.jupiter.api.Test; public class MapperNewRMLIOSourceTest extends TestCore { + /* + - Total number of test cases: 32 + - Failures: 10 + - Passes: 22 + */ @Test public void evaluate_RMLSTC0001a() { doMapping("./new-test-cases/io/RMLSTC0001a/mapping.ttl", "./new-test-cases/io/RMLSTC0001a/default.nq"); @@ -44,13 +49,12 @@ public void evaluate_RMLSTC0002e() { } @Test - @Disabled("RML Logical Source cannot SPARQL local files yet") + @Disabled("RML Logical Source n-triples file not supported yet") public void evaluate_RMLSTC0003() { doMapping("./new-test-cases/io/RMLSTC0003/mapping.ttl", "./new-test-cases/io/RMLSTC0003/default.nq"); } @Test - @Disabled("RML Logical Source handles CSVW null values incorrect") public void evaluate_RMLSTC0004a() { doMapping("./new-test-cases/io/RMLSTC0004a/mapping.ttl", "./new-test-cases/io/RMLSTC0004a/default.nq"); } @@ -67,71 +71,111 @@ public void evaluate_RMLSTC0004c() { } @Test - @Disabled("RML Logical Source cannot find 'id', parsing CSV goes wrong") - public void evaluate_RMLSTC0005a() { - doMapping("./new-test-cases/io/RMLSTC0005a/mapping.ttl", "./new-test-cases/io/RMLSTC0005a/default.nq"); + @Disabled("Needs to configure SQL support") + public void evaluate_RMLSTC0006a() { + doMapping("./new-test-cases/io/RMLSTC0006a/mapping.ttl", "./new-test-cases/io/RMLSTC0006a/default.nq"); } @Test - @Disabled("RML Logical Source cannot find 'id', parsing CSV goes wrong") - public void evaluate_RMLSTC0005b() { - doMapping("./new-test-cases/io/RMLSTC0005b/mapping.ttl", "./new-test-cases/io/RMLSTC0005b/default.nq"); + public void evaluate_RMLSTC0006b() { + doMapping("./new-test-cases/io/RMLSTC0006b/mapping.ttl", "./new-test-cases/io/RMLSTC0006b/default.nq"); } @Test - public void evaluate_RMLSTC0006a() { - doMapping("./new-test-cases/io/RMLSTC0006a/mapping.ttl", "./new-test-cases/io/RMLSTC0006a/default.nq"); + public void evaluate_RMLSTC0007a() { + doMapping("./new-test-cases/io/RMLSTC0007a/mapping.ttl", "./new-test-cases/io/RMLSTC0007a/default.nq"); } @Test - @Disabled("RML Logical Source does not support VOID Dataset yet") - public void evaluate_RMLSTC0006b() { - doMapping("./new-test-cases/io/RMLSTC0006b/mapping.ttl", "./new-test-cases/io/RMLSTC0006b/default.nq"); + public void evaluate_RMLSTC0007b() { + doMapping("./new-test-cases/io/RMLSTC0007b/mapping.ttl", "./new-test-cases/io/RMLSTC0007b/default.nq"); } @Test - @Disabled("java.lang.Error: Unsupported rml:referenceFormulation for a SPARQL source.") - public void evaluate_RMLSTC0006c() { - doMapping("./new-test-cases/io/RMLSTC0006c/mapping.ttl", "./new-test-cases/io/RMLSTC0006c/default.nq"); + public void evaluate_RMLSTC0007c() { + doMapping("./new-test-cases/io/RMLSTC0007c/mapping.ttl", "./new-test-cases/io/RMLSTC0007c/default.nq"); } @Test - public void evaluate_RMLSTC0006d() { - doMapping("./new-test-cases/io/RMLSTC0006d/mapping.ttl", "./new-test-cases/io/RMLSTC0006d/default.nq"); + @Disabled("RML Logical Source does not support the XML reference formulation with namespaces") + public void evaluate_RMLSTC0007d() { + doMapping("./new-test-cases/io/RMLSTC0007d/mapping.ttl", "./new-test-cases/io/RMLSTC0007d/default.nq"); } @Test - public void evaluate_RMLSTC0006e() { - doMapping("./new-test-cases/io/RMLSTC0006e/mapping.ttl", "./new-test-cases/io/RMLSTC0006e/default.nq"); + public void evaluate_RMLSTC0008a() { + doMapping("./new-test-cases/io/RMLSTC0008a/mapping.ttl", "./new-test-cases/io/RMLSTC0008a/default.nq"); } @Test - @Disabled("Turtle parsing failure") - public void evaluate_RMLSTC0006f() { - // TODO: driver - doMapping("./new-test-cases/io/RMLSTC0006f/mapping.ttl", "./new-test-cases/io/RMLSTC0006f/default.nq"); + public void evaluate_RMLSTC0008b() { + doMapping("./new-test-cases/io/RMLSTC0008b/mapping.ttl", "./new-test-cases/io/RMLSTC0008b/default.nq"); } @Test - public void evaluate_RMLSTC0007a() { - doMapping("./new-test-cases/io/RMLSTC0007a/mapping.ttl", "./new-test-cases/io/RMLSTC0007a/default.nq"); + public void evaluate_RMLSTC0009a() { + doMapping("./new-test-cases/io/RMLSTC0009a/mapping.ttl", "./new-test-cases/io/RMLSTC0009a/output.nq"); } @Test - @Disabled("RML Logical Source fails parsing CSV with spaces in table, test case problem?") - public void evaluate_RMLSTC0007b() { - doMapping("./new-test-cases/io/RMLSTC0007b/mapping.ttl", "./new-test-cases/io/RMLSTC0007b/default.nq"); + @Disabled("Error expected but RMLMapper does not.") + public void evaluate_RMLSTC0010a() { + doMappingExpectError("./new-test-cases/io/RMLSTC0010a/mapping.ttl", StrictMode.STRICT); } @Test - @Disabled("RML Logical Source fails parsing XML") - public void evaluate_RMLSTC0007c() { - doMapping("./new-test-cases/io/RMLSTC0007c/mapping.ttl", "./new-test-cases/io/RMLSTC0007c/default.nq"); + @Disabled("Error expected but RMLMapper does not.") + public void evaluate_RMLSTC0010b() { + doMappingExpectError("./new-test-cases/io/RMLSTC0010b/mapping.ttl", StrictMode.STRICT); } @Test - @Disabled("RML Logical Source does not support the XML reference formulation with namespaces") - public void evaluate_RMLSTC0007d() { - doMapping("./new-test-cases/io/RMLSTC0007d/mapping.ttl", "./new-test-cases/io/RMLSTC0007d/default.nq"); + public void evaluate_RMLSTC0011a() { + doMapping("./new-test-cases/io/RMLSTC0011a/mapping.ttl", "./new-test-cases/io/RMLSTC0011a/default.nq"); + } + + @Test + public void evaluate_RMLSTC0011b() { + doMapping("./new-test-cases/io/RMLSTC0011b/mapping.ttl", "./new-test-cases/io/RMLSTC0011b/default.nq"); + } + + @Test + public void evaluate_RMLSTC0011c() { + doMapping("./new-test-cases/io/RMLSTC0011c/mapping.ttl", "./new-test-cases/io/RMLSTC0011c/default.nq"); + } + + @Test + public void evaluate_RMLSTC0011d() { + doMapping("./new-test-cases/io/RMLSTC0011d/mapping.ttl", "./new-test-cases/io/RMLSTC0011d/default.nq"); + } + + @Test + public void evaluate_RMLSTC0011e() { + doMapping("./new-test-cases/io/RMLSTC0011e/mapping.ttl", "./new-test-cases/io/RMLSTC0011e/default.nq"); + } + + @Test + public void evaluate_RMLSTC0012a() { + doMapping("./new-test-cases/io/RMLSTC0012a/mapping.ttl", "./new-test-cases/io/RMLSTC0012a/default.nq"); + } + + @Test + public void evaluate_RMLSTC0012b() { + doMapping("./new-test-cases/io/RMLSTC0012b/mapping.ttl", "./new-test-cases/io/RMLSTC0012b/default.nq"); + } + + @Test + public void evaluate_RMLSTC0012c() { + doMapping("./new-test-cases/io/RMLSTC0012c/mapping.ttl", "./new-test-cases/io/RMLSTC0012c/default.nq"); + } + + @Test + public void evaluate_RMLSTC0012d() { + doMapping("./new-test-cases/io/RMLSTC0012d/mapping.ttl", "./new-test-cases/io/RMLSTC0012d/default.nq"); + } + + @Test + public void evaluate_RMLSTC0012e() { + doMapping("./new-test-cases/io/RMLSTC0012e/mapping.ttl", "./new-test-cases/io/RMLSTC0012e/default.nq"); } } diff --git a/src/test/java/be/ugent/rml/MapperNewRMLIOTargetTest.java b/src/test/java/be/ugent/rml/MapperNewRMLIOTargetTest.java index b760127e..7e7cb1fa 100644 --- a/src/test/java/be/ugent/rml/MapperNewRMLIOTargetTest.java +++ b/src/test/java/be/ugent/rml/MapperNewRMLIOTargetTest.java @@ -1,14 +1,20 @@ package be.ugent.rml; -import be.ugent.rml.term.NamedNode; -import be.ugent.rml.term.Term; +import java.util.HashMap; +import java.util.Map; + import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import java.util.HashMap; -import java.util.Map; +import be.ugent.rml.term.NamedNode; +import be.ugent.rml.term.Term; public class MapperNewRMLIOTargetTest extends TestCore { + /* + - Total number of test cases: 41 + - Failures: 12 + - Passes: 29 + */ @Test public void evaluate_RMLTTC0000() { doMapping("./new-test-cases/io/RMLTTC0000/mapping.ttl", "./new-test-cases/io/RMLTTC0000/default.nq"); @@ -39,7 +45,6 @@ public void evaluate_RMLTTC0001c() { } @Test - @Disabled("Output wrong") public void evaluate_RMLTTC0001d() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0001d/dump1.nq"); @@ -56,7 +61,7 @@ public void evaluate_RMLTTC0001e() { } @Test - @Disabled("DatatypeMap not supported yet") + @Disabled("No support for datatypemap targets") public void evaluate_RMLTTC0001f() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0001f/dump1.nq"); @@ -110,7 +115,6 @@ public void evaluate_RMLTTC0002e() { } @Test - @Disabled("Crashes") public void evaluate_RMLTTC0002f() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002f/dump1.nq"); @@ -120,7 +124,6 @@ public void evaluate_RMLTTC0002f() { } @Test - @Disabled("Output wrong") public void evaluate_RMLTTC0002g() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002g/dump1.nq"); @@ -130,7 +133,6 @@ public void evaluate_RMLTTC0002g() { } @Test - @Disabled("Output wrong") public void evaluate_RMLTTC0002h() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002h/dump1.nq"); @@ -140,7 +142,6 @@ public void evaluate_RMLTTC0002h() { } @Test - @Disabled("Output wrong") public void evaluate_RMLTTC0002i() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002i/dump1.nq"); @@ -159,7 +160,7 @@ public void evaluate_RMLTTC0002j() { } @Test - @Disabled("DatatypeMap not supported yet") + @Disabled("No support for datatypemap targets") public void evaluate_RMLTTC0002k() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002k/dump1.nq"); @@ -169,7 +170,7 @@ public void evaluate_RMLTTC0002k() { } @Test - @Disabled("Output wrong") + @Disabled("No support for datatypemap targets") public void evaluate_RMLTTC0002l() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002l/dump1.nq"); @@ -197,7 +198,6 @@ public void evaluate_RMLTTC0002n() { } @Test - @Disabled("Output wrong") public void evaluate_RMLTTC0002o() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002o/dump1.nq"); @@ -216,7 +216,7 @@ public void evaluate_RMLTTC0002p() { } @Test - @Disabled("DatatypeMap not supported yet") + @Disabled("No support for datatypemap targets") public void evaluate_RMLTTC0002q() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0002q/dump1.nq"); @@ -234,7 +234,6 @@ public void evaluate_RMLTTC0002r() { } @Test - @Disabled("Output wrong") public void evaluate_RMLTTC0003a() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0003a/dump1.nq"); @@ -311,6 +310,7 @@ public void evaluate_RMLTTC0005a() { } @Test + @Disabled("no support for UTF-16 encoding") public void evaluate_RMLTTC0005b() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0005b/dump1.nq"); @@ -327,6 +327,7 @@ public void evaluate_RMLTTC0006a() { } @Test + @Disabled("no support for gzip compression") public void evaluate_RMLTTC0006b() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0006b/dump1.nq"); @@ -335,6 +336,7 @@ public void evaluate_RMLTTC0006b() { } @Test + @Disabled("no support for zip compression") public void evaluate_RMLTTC0006c() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0006c/dump1.nq"); @@ -343,7 +345,7 @@ public void evaluate_RMLTTC0006c() { } @Test - @Disabled("Compression Tar XZ not implemented") + @Disabled("no support for tarxz compression") public void evaluate_RMLTTC0006d() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0006d/dump1.nq"); @@ -352,7 +354,7 @@ public void evaluate_RMLTTC0006d() { } @Test - @Disabled("Compression Tar GZ not implemented") + @Disabled("no support for targz compression") public void evaluate_RMLTTC0006e() { Map outPaths = new HashMap<>(); outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0006e/dump1.nq"); @@ -367,31 +369,4 @@ public void evaluate_RMLTTC0007a() { outPaths.put(new NamedNode("rmlmapper://default.store"), "./new-test-cases/io/RMLTTC0007a/default.nq"); doMapping("./new-test-cases/io/RMLTTC0007a/mapping.ttl", outPaths); } - - @Test - public void evaluate_RMLTTC0007b() { - Map outPaths = new HashMap<>(); - outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0007b/dump1.nq"); - outPaths.put(new NamedNode("rmlmapper://default.store"), "./new-test-cases/io/RMLTTC0007b/default.nq"); - doMapping("./new-test-cases/io/RMLTTC0007b/mapping.ttl", outPaths); - } - - @Test - @Disabled("TODO") - public void evaluate_RMLTTC0007c() { - // TODO: SPARQL endpoint - Map outPaths = new HashMap<>(); - outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0007c/dump1.nq"); - outPaths.put(new NamedNode("rmlmapper://default.store"), "./new-test-cases/io/RMLTTC0007c/default.nq"); - doMapping("./new-test-cases/io/RMLTTC0007c/mapping.ttl", outPaths); - } - - @Test - @Disabled("Target td:Thing not supported") - public void evaluate_RMLTTC0007d() { - Map outPaths = new HashMap<>(); - outPaths.put(new NamedNode("http://example.com/rules/#TargetDump1"), "./new-test-cases/io/RMLTTC0007d/dump1.nq"); - outPaths.put(new NamedNode("rmlmapper://default.store"), "./new-test-cases/io/RMLTTC0007d/default.nq"); - doMapping("./new-test-cases/io/RMLTTC0007d/mapping.ttl", outPaths); - } } diff --git a/src/test/java/be/ugent/rml/MapperODSTest.java b/src/test/java/be/ugent/rml/MapperODSTest.java index cb20e667..31c4bfa8 100644 --- a/src/test/java/be/ugent/rml/MapperODSTest.java +++ b/src/test/java/be/ugent/rml/MapperODSTest.java @@ -30,7 +30,7 @@ public void evaluate_0002b_ODS() { @Test public void evaluate_0002c_ODS() { - doMapping("./test-cases/RMLTC0002c-ODS/mapping.ttl", "./test-cases/RMLTC0002c-ODS/output.nq"); + doMappingExpectError("./test-cases/RMLTC0002c-ODS/mapping.ttl", StrictMode.STRICT); } @Test @@ -100,7 +100,7 @@ public void evaluate_0007g_ODS() { @Test public void evaluate_0007h_ODS() { - doMapping("./test-cases/RMLTC0007h-ODS/mapping.ttl", "./test-cases/RMLTC0007h-ODS/output.nq"); + doMappingExpectError("./test-cases/RMLTC0007h-ODS/mapping.ttl"); } @Test diff --git a/src/test/java/be/ugent/rml/MapperPostgresCSVTest.java b/src/test/java/be/ugent/rml/MapperPostgresCSVTest.java index 213dac39..7c29c19d 100644 --- a/src/test/java/be/ugent/rml/MapperPostgresCSVTest.java +++ b/src/test/java/be/ugent/rml/MapperPostgresCSVTest.java @@ -28,7 +28,7 @@ public static Stream data() { Arguments.of("RMLTC0001b", false, BOTH), Arguments.of("RMLTC0002a", false, BOTH), Arguments.of("RMLTC0002b", false, BOTH), - Arguments.of("RMLTC0002c", true, BOTH), + Arguments.of("RMLTC0002c", true, STRICT_ONLY), Arguments.of("RMLTC0002d", false, BOTH), Arguments.of("RMLTC0002e", true, BOTH), // Arguments.of("RMLTC0002f", false, BOTH), diff --git a/src/test/java/be/ugent/rml/MapperPostgresR2RMLTest.java b/src/test/java/be/ugent/rml/MapperPostgresR2RMLTest.java index 2612110c..735d0f3d 100644 --- a/src/test/java/be/ugent/rml/MapperPostgresR2RMLTest.java +++ b/src/test/java/be/ugent/rml/MapperPostgresR2RMLTest.java @@ -23,7 +23,7 @@ public static Stream data() { Arguments.of("R2RMLTC0001b", false, BOTH), Arguments.of("R2RMLTC0002a", false, BOTH), Arguments.of("R2RMLTC0002b", false, BOTH), - Arguments.of("R2RMLTC0002c", true, BOTH), + Arguments.of("R2RMLTC0002c", true, STRICT_ONLY), Arguments.of("R2RMLTC0002d", false, BOTH), Arguments.of("R2RMLTC0002e", true, BOTH), // Arguments.of("R2RMLTC0002f", true, BOTH), Issue #189 diff --git a/src/test/java/be/ugent/rml/MapperSPARQLTest.java b/src/test/java/be/ugent/rml/MapperSPARQLTest.java index 61018a02..642a825d 100644 --- a/src/test/java/be/ugent/rml/MapperSPARQLTest.java +++ b/src/test/java/be/ugent/rml/MapperSPARQLTest.java @@ -23,7 +23,6 @@ public class MapperSPARQLTest extends TestCore { private static int PORTNUMBER_SPARQL; - private FusekiServer.Builder builder; private FusekiServer server; public static Stream data() { @@ -95,8 +94,7 @@ public static Stream data() { @BeforeEach public void intialize() { - builder = FusekiServer.create(); - builder.port(PORTNUMBER_SPARQL); + } @BeforeAll @@ -116,9 +114,12 @@ public void mappingTest(String testCaseName, boolean expectedException) { String outputPath = "test-cases/" + testCaseName + "-SPARQL/output.nq"; String tempMappingPath = replacePortInMappingFile(mappingPath, "" + PORTNUMBER_SPARQL); - builder.add("/ds"+(1), RDFDataMgr.loadDataset(resourcePath)); - this.server = builder.build(); - this.server.start(); + server = FusekiServer.create() + .port(PORTNUMBER_SPARQL) + .add("/ds"+(1), RDFDataMgr.loadDataset(resourcePath)) + .build(); + + server.start(); // mapping if (!expectedException) { @@ -134,6 +135,7 @@ public void mappingTest(String testCaseName, boolean expectedException) { public void stopServer() { if (server != null) { server.stop(); + server = null; } System.setProperty("org.eclipse.jetty.util.log.class", "org.eclipse.jetty.util.log.StdErrLog"); diff --git a/src/test/java/be/ugent/rml/MapperSQLServerTest.java b/src/test/java/be/ugent/rml/MapperSQLServerTest.java index 3f778a45..012ef7d9 100644 --- a/src/test/java/be/ugent/rml/MapperSQLServerTest.java +++ b/src/test/java/be/ugent/rml/MapperSQLServerTest.java @@ -115,7 +115,7 @@ public void doMapping(String testCaseName, boolean expectedException) throws Exc if (!expectedException) { doMapping(tempMappingPath, outputPath); } else { - doMappingExpectError(tempMappingPath); + doMappingExpectError(tempMappingPath, StrictMode.STRICT); } deleteTempMappingFile(tempMappingPath); diff --git a/src/test/java/be/ugent/rml/MapperTargetTest.java b/src/test/java/be/ugent/rml/MapperTargetTest.java index 2c2db90d..b9125574 100644 --- a/src/test/java/be/ugent/rml/MapperTargetTest.java +++ b/src/test/java/be/ugent/rml/MapperTargetTest.java @@ -197,7 +197,6 @@ public void evaluate_ntriples_serialization() throws Exception { } } - // This method is in comment because it fails: doMapper doesn't support JSON-LD testing @Test public void evaluate_jsonld_serialization() throws Exception { // Create Web API @@ -223,6 +222,31 @@ public void evaluate_jsonld_serialization() throws Exception { } } + @Test + public void evaluate_trig_serialization() throws Exception { + // Create Web API + HttpServer webApi = HttpServer.create(new InetSocketAddress(8000), 0); + webApi.createContext("/trashcans", new MapperWoTTest.TrashCansFileHandler()); + webApi.setExecutor(null); // creates a default executor + webApi.start(); + + String tempMappingPath = replaceSerializationFormatInMappingFile("TriG"); + Map outPaths = new HashMap<>(); + outPaths.put(new NamedNode("http://example.com/rules/#TargetDump"), "./web-of-things/serialization/out-local-file.trig"); + outPaths.put(new NamedNode("rmlmapper://default.store"), "./web-of-things/serialization/out-default.trig"); + doMapping(tempMappingPath, outPaths, "./web-of-things/serialization/private-security-data.ttl"); // file not found exception when using file from serialization instead of logical-target + + webApi.stop(0); + + // Remove temp file + try { + File outputFile = Utils.getFile(tempMappingPath); + assertTrue(outputFile.delete()); + } catch (Exception e) { + logger.warn("Could not delete temporary file {}", tempMappingPath, e); + } + } + @BeforeEach public void intialize() { // Create Fuseki SPARQL endpoint /ds1 diff --git a/src/test/java/be/ugent/rml/MapperXMLTest.java b/src/test/java/be/ugent/rml/MapperXMLTest.java index 3489a9a2..1fee6f1b 100644 --- a/src/test/java/be/ugent/rml/MapperXMLTest.java +++ b/src/test/java/be/ugent/rml/MapperXMLTest.java @@ -232,4 +232,9 @@ public void evaluate_1033_XML() { public void evaluate_1034_XML() { doMapping("./test-cases/RMLTC1034-XML/mapping.ttl", "./test-cases/RMLTC1034-XML/output.nq"); } + + @Test + public void evaluate_1035_XML() { + doMapping("./test-cases/RMLTC1035-XML/mapping.ttl", "./test-cases/RMLTC1035-XML/output.nq"); + } } diff --git a/src/test/java/be/ugent/rml/OptimizationsTest.java b/src/test/java/be/ugent/rml/OptimizationsTest.java index f6460f75..31d49d3c 100644 --- a/src/test/java/be/ugent/rml/OptimizationsTest.java +++ b/src/test/java/be/ugent/rml/OptimizationsTest.java @@ -2,6 +2,7 @@ import be.ugent.rml.cli.Main; import org.apache.commons.lang3.StringUtils; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.io.*; @@ -13,6 +14,7 @@ public class OptimizationsTest extends TestCore { @Test + @Disabled("This test fails because the content types do not match and are considered different documents. To be fixed.") public void xmlFileOnlyReadOnce() throws Exception { String cwd = Utils.getFile("test-cases/RMLTC1011-XML").getAbsolutePath(); String mappingFilePath = (new File(cwd, "mapping.ttl")).getAbsolutePath(); @@ -30,6 +32,6 @@ public void xmlFileOnlyReadOnce() throws Exception { logger.debug("Stderr:\n'{}'", output); int counts = StringUtils.countMatches(output, "No document found for"); - assertEquals(counts, 1); + assertEquals(1, counts); } } diff --git a/src/test/java/be/ugent/rml/TestCore.java b/src/test/java/be/ugent/rml/TestCore.java index 48bf9975..293cabaa 100644 --- a/src/test/java/be/ugent/rml/TestCore.java +++ b/src/test/java/be/ugent/rml/TestCore.java @@ -12,6 +12,7 @@ import be.ugent.rml.target.TargetFactory; import be.ugent.rml.term.NamedNode; import be.ugent.rml.term.Term; +import eu.neverblink.jelly.convert.rdf4j.rio.JellyFormat; import org.eclipse.rdf4j.rio.RDFFormat; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -226,7 +227,7 @@ void doMapping(Executor executor, String outPath) throws Exception { */ void doMapping(Executor executor, Map outPaths) throws Exception { logger.debug("Comparing target outputs"); - TargetFactory targetFactory = new TargetFactory("http://example.org/rules/"); + TargetFactory targetFactory = new TargetFactory("http://example.org/rules/", System.getProperty("user.dir")); Map results = executor.execute(null); for (Map.Entry entry: outPaths.entrySet()) { @@ -309,7 +310,7 @@ private void convertToRml(QuadStore store) throws Exception { } } - private void compareStores(QuadStore expectedStory, QuadStore resultStore) { + protected void compareStores(QuadStore expectedStory, QuadStore resultStore) { String expectedString = expectedStory.toSortedString(); String resultString = resultStore.toSortedString(); // First arg is expected, second is actual @@ -339,7 +340,7 @@ void compareFiles(String expectedPath, String resultPath, boolean removeTimestam } } - private QuadStore filePathToStore(String path) throws Exception { + protected QuadStore filePathToStore(String path) throws Exception { // load output-turtle file File outputFile = Utils.getFile(path); @@ -351,6 +352,8 @@ private QuadStore filePathToStore(String path) throws Exception { store = QuadStoreFactory.read(outputFile, RDFFormat.JSONLD); } else if (path.endsWith(".trig")) { store = QuadStoreFactory.read(outputFile, RDFFormat.TRIG); + } else if (path.endsWith(".jelly")) { + store = QuadStoreFactory.read(outputFile, JellyFormat.JELLY); } else { store = QuadStoreFactory.read(outputFile); } diff --git a/src/test/java/be/ugent/rml/readme/ReadmeFunctionTest.java b/src/test/java/be/ugent/rml/readme/ReadmeFunctionTest.java index d96089bc..c9939650 100644 --- a/src/test/java/be/ugent/rml/readme/ReadmeFunctionTest.java +++ b/src/test/java/be/ugent/rml/readme/ReadmeFunctionTest.java @@ -49,8 +49,7 @@ public void function() { QuadStore result = executor.execute(null).get(new NamedNode("rmlmapper://default.store")); // Output the result - BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out)); - result.write(out, "turtle"); + result.write(System.out, "turtle"); } catch (Exception e) { fail("No exception was expected."); } diff --git a/src/test/java/be/ugent/rml/readme/ReadmeTest.java b/src/test/java/be/ugent/rml/readme/ReadmeTest.java index f87c2989..b215f494 100644 --- a/src/test/java/be/ugent/rml/readme/ReadmeTest.java +++ b/src/test/java/be/ugent/rml/readme/ReadmeTest.java @@ -44,8 +44,7 @@ public void standard() { QuadStore result = executor.execute(null).get(new NamedNode("rmlmapper://default.store")); // Output the result - BufferedWriter out = new BufferedWriter(new OutputStreamWriter(System.out)); - result.write(out, "turtle"); + result.write(System.out, "turtle"); } catch (Exception e) { fail("No exception was expected."); } diff --git a/src/test/resources/argument/output-jelly/target_output.jelly b/src/test/resources/argument/output-jelly/target_output.jelly new file mode 100644 index 00000000..3d1f1aba --- /dev/null +++ b/src/test/resources/argument/output-jelly/target_output.jelly @@ -0,0 +1,21 @@ + + +HPX px +Rhttp://example.com/10/ + JVenus +Rhttp://xmlns.com/foaf/0.1/ +Jname + +*Z +Venusen +Rhttp://example.com/ +Jid +  +*Z +10 +/R-+http://www.w3.org/1999/02/22-rdf-syntax-ns# +Jtype + +JPerson + +*J \ No newline at end of file diff --git a/src/test/resources/cross-concat-sequence/Person.csv b/src/test/resources/cross-concat-sequence/Person.csv new file mode 100644 index 00000000..e3d446eb --- /dev/null +++ b/src/test/resources/cross-concat-sequence/Person.csv @@ -0,0 +1,2 @@ +PersonNumber;FirstName;Surname;ResponsibleApplicantGrantNumber +1;John;Doe;"111925;34468;55836;66731" \ No newline at end of file diff --git a/src/test/resources/cross-concat-sequence/mapping.rml.ttl b/src/test/resources/cross-concat-sequence/mapping.rml.ttl new file mode 100644 index 00000000..198f988b --- /dev/null +++ b/src/test/resources/cross-concat-sequence/mapping.rml.ttl @@ -0,0 +1,88 @@ +@prefix csvw: . +@prefix rr: . +@prefix rml: . +@prefix ql: . +@prefix schema: . +@prefix fnml: . +@prefix grel: . +@prefix fno: . +@prefix idlab-fn: . +@base . + +<#LogicalSourcePerson> a rml:LogicalSource ; + rml:source <#CSVW_sourcePerson> ; + rml:referenceFormulation ql:CSV . + +<#CSVW_sourcePerson> a csvw:Table; + csvw:url "Person.csv" ; + csvw:dialect [ a csvw:Dialect; + csvw:delimiter ";" + ] . + +<#PersonMapping> a rr:TriplesMap; + rml:logicalSource <#LogicalSourcePerson> ; + + rr:subjectMap [ + rr:template "http://snf.ch/person/{PersonNumber}"; + rr:class schema:Person + ] ; + + rr:predicateObjectMap [ + rr:predicate schema:memberOf ; + rr:objectMap <#JoinMap> ; + ] ; + + rr:predicateObjectMap [ + rr:predicate schema:givenName ; + rr:objectMap [ + rml:reference "FirstName" + ] + ] ; + + rr:predicateObjectMap [ + rr:predicate schema:familyName ; + rr:objectMap [ + rml:reference "Surname" + ] + ] . + +<#JoinMap> + fnml:functionValue [ + rr:predicateObjectMap [ + rr:predicate fno:executes ; + rr:objectMap [ rr:constant idlab-fn:crossConcatSequence ] + ]; + rr:predicateObjectMap [ + rr:predicate rdf:_1 ; + rr:objectMap [ rr:constant "http://snf.ch/project/" ] + ]; + rr:predicateObjectMap [ + rr:predicate rdf:_2 ; + rr:objectMap <#FunctionMap> + ]; + ] . + + +# https://stackoverflow.com/questions/53715353/converting-a-csv-to-rdf-where-one-column-is-a-set-of-values +<#FunctionMap> + fnml:functionValue [ + rml:logicalSource <#LogicalSourceGrant>; + rr:predicateObjectMap [ + rr:predicate fno:executes; + rr:objectMap [ + rr:constant grel:string_split # function to use + ]; + ]; + rr:predicateObjectMap [ + rr:predicate grel:valueParameter; + rr:objectMap [ + rml:reference "ResponsibleApplicantGrantNumber" # input string: concatenated foreign keys + ]; + ]; + rr:predicateObjectMap [ + rr:predicate grel:p_string_sep; + rr:objectMap [ + rr:constant ";"; + ]; + ]; + ]. diff --git a/src/test/resources/cross-concat-sequence/output.nq b/src/test/resources/cross-concat-sequence/output.nq new file mode 100644 index 00000000..f7ac05bc --- /dev/null +++ b/src/test/resources/cross-concat-sequence/output.nq @@ -0,0 +1,7 @@ + "Doe" . + "John" . + "http://snf.ch/project/111925" . + "http://snf.ch/project/34468" . + "http://snf.ch/project/55836" . + "http://snf.ch/project/66731" . + . diff --git a/src/test/resources/joins-and-targets/mapping.rml.ttl b/src/test/resources/joins-and-targets/mapping.rml.ttl new file mode 100644 index 00000000..1dbc33eb --- /dev/null +++ b/src/test/resources/joins-and-targets/mapping.rml.ttl @@ -0,0 +1,76 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix activity: . +@prefix rdfs: . +@prefix rmlt: . +@prefix formats: . + +@base . + + + a rr:TriplesMap; + + rml:logicalSource [ + rml:source "student.csv"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/resource/student_{ID}" ; + rml:logicalTarget + ]; + + 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.csv"; + rml:referenceFormulation ql:CSV + ]; + + rr:subjectMap [ + rr:template "http://example.com/resource/sport_{ID}" ; + rml:logicalTarget + ]; + + rr:predicateObjectMap [ + rr:predicate rdfs:label ; + rr:objectMap [ rml:reference "Name" ]; + ]. + + + a rmlt:LogicalTarget ; + rmlt:serialization formats:Turtle ; + rmlt:target [ + a void:Dataset ; + void:dataDump + ] . + + + a rmlt:LogicalTarget ; + rmlt:serialization formats:Turtle ; + rmlt:target [ + a void:Dataset ; + void:dataDump + ] . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/sport.csv b/src/test/resources/joins-and-targets/sport.csv similarity index 100% rename from src/test/resources/new-test-cases/core/RMLTC0009a-CSV/sport.csv rename to src/test/resources/joins-and-targets/sport.csv diff --git a/src/test/resources/joins-and-targets/sports.ttl b/src/test/resources/joins-and-targets/sports.ttl new file mode 100644 index 00000000..710cd370 --- /dev/null +++ b/src/test/resources/joins-and-targets/sports.ttl @@ -0,0 +1,3 @@ + + + "Tennis" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/student.csv b/src/test/resources/joins-and-targets/student.csv similarity index 100% rename from src/test/resources/new-test-cases/core/RMLTC0009a-CSV/student.csv rename to src/test/resources/joins-and-targets/student.csv diff --git a/src/test/resources/joins-and-targets/students.ttl b/src/test/resources/joins-and-targets/students.ttl new file mode 100644 index 00000000..4b3411ec --- /dev/null +++ b/src/test/resources/joins-and-targets/students.ttl @@ -0,0 +1,5 @@ + + ; + "Venus Williams" . + + "Demi Moore" . diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml index 2e03584c..8ace9e8a 100644 --- a/src/test/resources/logback-test.xml +++ b/src/test/resources/logback-test.xml @@ -11,6 +11,6 @@ - + diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-CSV/mapping.ttl deleted file mode 100644 index 6e17117b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0000-CSV/output.nq deleted file mode 100644 index ca0b9916..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-CSV/output.nq +++ /dev/null @@ -1 +0,0 @@ -# empty database diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0000-CSV/student.csv deleted file mode 100644 index 70df60c1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-CSV/student.csv +++ /dev/null @@ -1 +0,0 @@ -Name diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0000-JSON/README.md new file mode 100644 index 00000000..17168dca --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0000-JSON/README.md @@ -0,0 +1,48 @@ +## RMLTC0000-JSON + +**Title**: "one table, one column, zero rows" + +**Description**: "Tests if an empty table produces an empty RDF graph" + +**Error expected?** No + +**Input** +``` +{ + "students": [] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Name}" + ] . + +``` + +**Output** +``` +# empty database + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-JSON/mapping.ttl index 3c738425..41da352f 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0000-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0000-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "http://example.com/{Name}" + rml:template "http://example.com/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/mapping.ttl deleted file mode 100644 index d0ae1084..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/output.nq deleted file mode 100644 index ca0b9916..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ -# empty database diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/resource.sql deleted file mode 100644 index 4f7db991..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-MySQL/resource.sql +++ /dev/null @@ -1,5 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - Name VARCHAR(50) -); \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/mapping.ttl deleted file mode 100644 index 8de32762..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/output.nq deleted file mode 100644 index ca0b9916..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ -# empty database diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/resource.sql deleted file mode 100644 index ea537fa7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-PostgreSQL/resource.sql +++ /dev/null @@ -1,4 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "Name" VARCHAR(50) -); \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/mapping.ttl deleted file mode 100644 index fc910499..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/mapping.ttl +++ /dev/null @@ -1,28 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - SELECT ?name - WHERE { - ?name a rdfs:Literal . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/resource.ttl deleted file mode 100644 index 8b137891..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/resource.ttl +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/mapping.ttl deleted file mode 100644 index 058c5756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/output.nq deleted file mode 100644 index ca0b9916..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ -# empty database diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/resource.sql deleted file mode 100644 index a5df5fb8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-SQLServer/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "Name" VARCHAR(50) -); diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0000-XML/mapping.ttl deleted file mode 100644 index 2f1946f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0000-XML/output.nq deleted file mode 100644 index ca0b9916..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-XML/output.nq +++ /dev/null @@ -1 +0,0 @@ -# empty database diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0000-XML/student.xml deleted file mode 100644 index c6bbef41..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0000-XML/student.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/mapping.ttl deleted file mode 100644 index 6e17117b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/output.nq deleted file mode 100644 index 73f40ddf..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/student.csv deleted file mode 100644 index 4e683bbe..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -Name -Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/README.md new file mode 100644 index 00000000..0bb26b0c --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/README.md @@ -0,0 +1,51 @@ +## RMLTC0001a-JSON + +**Title**: "One column mapping, subject URI generation by using rml:template" + +**Description**: "Tests: (1) one column mapping; (2) subject URI generation by using rml:template; (3) one column to one property" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap . + + rml:template "http://example.com/{$.Name}" . + +``` + +**Output** +``` + "Venus" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/mapping.ttl index 5eaa9c42..0a0f009a 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0001a-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap . - rml:template "http://example.com/{Name}" . + rml:template "http://example.com/{$.Name}" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/mapping.ttl deleted file mode 100644 index d0ae1084..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/resource.sql deleted file mode 100644 index b8e2a6c5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-MySQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - Name VARCHAR(50) -); -INSERT INTO student values ('Venus'); \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/mapping.ttl deleted file mode 100644 index 8de32762..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/resource.sql deleted file mode 100644 index 21c51c3f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-PostgreSQL/resource.sql +++ /dev/null @@ -1,5 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "Name" VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/mapping.ttl deleted file mode 100644 index 879676f1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - SELECT ?name - WHERE { - ?x foaf:name ?name . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/resource.ttl deleted file mode 100644 index ac86df29..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-SPARQL/resource.ttl +++ /dev/null @@ -1,4 +0,0 @@ -@prefix foaf: . - -[] foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/mapping.ttl deleted file mode 100644 index 058c5756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/resource.sql deleted file mode 100644 index 391b8d53..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "Name" VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001a-XML/mapping.ttl deleted file mode 100644 index 2f1946f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001a-XML/output.nq deleted file mode 100644 index 73f40ddf..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-XML/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0001a-XML/student.xml deleted file mode 100644 index f104648b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001a-XML/student.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/mapping.ttl deleted file mode 100644 index 7457432a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{Name}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/output.nq deleted file mode 100644 index 082a16c0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ -_:Venus "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/student.csv deleted file mode 100644 index 4e683bbe..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -Name -Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/README.md new file mode 100644 index 00000000..f8e738ce --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/README.md @@ -0,0 +1,52 @@ +## RMLTC0001b-JSON + +**Title**: "One column mapping, generation of a BlankNode subject by using rml:termType" + +**Description**: "Tests: (1) one column mapping; (2) generation of a BlankNode subject by using rml:termType; (3) one column to one property" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "{$.Name}"; + rml:termType rml:BlankNode + ] . + +``` + +**Output** +``` +_:Venus "Venus" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/mapping.ttl index 3527a427..5d0a5678 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0001b-JSON/mapping.ttl @@ -12,11 +12,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "{Name}"; + rml:template "{$.Name}"; rml:termType rml:BlankNode ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/mapping.ttl deleted file mode 100644 index 054eefd1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/resource.sql deleted file mode 100644 index 04afa4e1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-MySQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - Name VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/mapping.ttl deleted file mode 100644 index 43c823a3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/resource.sql deleted file mode 100644 index 601449ad..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-PostgreSQL/resource.sql +++ /dev/null @@ -1,5 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - name VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/mapping.ttl deleted file mode 100644 index 879676f1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - SELECT ?name - WHERE { - ?x foaf:name ?name . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/resource.ttl deleted file mode 100644 index ac86df29..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-SPARQL/resource.ttl +++ /dev/null @@ -1,4 +0,0 @@ -@prefix foaf: . - -[] foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/mapping.ttl deleted file mode 100644 index d790ebbc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/output.nq deleted file mode 100644 index efbb5543..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/resource.sql deleted file mode 100644 index 391b8d53..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "Name" VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0001b-XML/mapping.ttl deleted file mode 100644 index 39297bad..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{Name}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0001b-XML/output.nq deleted file mode 100644 index 082a16c0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-XML/output.nq +++ /dev/null @@ -1,2 +0,0 @@ -_:Venus "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0001b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0001b-XML/student.xml deleted file mode 100644 index f104648b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0001b-XML/student.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/mapping.ttl deleted file mode 100644 index 3f077d10..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/output.nq deleted file mode 100644 index 174309a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus" . - "10" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/student.csv deleted file mode 100644 index df9d2d69..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name -10,Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/README.md new file mode 100644 index 00000000..850f1d5b --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/README.md @@ -0,0 +1,61 @@ +## RMLTC0002a-JSON + +**Title**: "Two columns mapping, generation of a subject URI by the concatenation of two column values" + +**Description**: "Tests: (1) two column mapping, no primary key; (2) subject URI generated by the concatenation of two column values; (3) one column to one property" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:class foaf:Person; + rml:template "http://example.com/{$.ID}/{$.Name}" + ] . + +``` + +**Output** +``` + "Venus" . + "10" . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/mapping.ttl index 01e5cf26..7cee3d86 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0002a-JSON/mapping.ttl @@ -13,16 +13,16 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:class foaf:Person; - rml:template "http://example.com/{ID}/{Name}" + rml:template "http://example.com/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/mapping.ttl deleted file mode 100644 index a858a413..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/output.nq deleted file mode 100644 index 224747a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - "10"^^ . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/resource.sql deleted file mode 100644 index 3494b58f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-MySQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/mapping.ttl deleted file mode 100644 index 7a5f9e9f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/output.nq deleted file mode 100644 index 224747a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - "10"^^ . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/resource.sql deleted file mode 100644 index 2b4b5bea..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-PostgreSQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/mapping.ttl deleted file mode 100644 index 27651887..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/mapping.ttl +++ /dev/null @@ -1,38 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID.value" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{ID.value}/{Name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/output.nq deleted file mode 100644 index ffbc3c4b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - "10" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/resource.ttl deleted file mode 100644 index da1fb834..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-SPARQL/resource.ttl +++ /dev/null @@ -1,6 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/mapping.ttl deleted file mode 100644 index a54a2198..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/output.nq deleted file mode 100644 index 224747a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - "10"^^ . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/resource.sql deleted file mode 100644 index 45bd58c0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-SQLServer/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student ("ID", "Name") values (10, 'Venus'); - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002a-XML/mapping.ttl deleted file mode 100644 index 4609c397..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-XML/mapping.ttl +++ /dev/null @@ -1,28 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002a-XML/output.nq deleted file mode 100644 index 56b13be3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-XML/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus" . - "10". - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0002a-XML/student.xml deleted file mode 100644 index b2a6a9ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002a-XML/student.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 10 - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/mapping.ttl deleted file mode 100644 index 586af8e5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "students{ID}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/output.nq deleted file mode 100644 index be918d0b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ -_:students10 "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/student.csv deleted file mode 100644 index df9d2d69..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name -10,Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/README.md new file mode 100644 index 00000000..452ea19f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/README.md @@ -0,0 +1,53 @@ +## RMLTC0002b-JSON + +**Title**: "Two columns mapping, generation of a BlankNode subject by using rml:template and rml:termType" + +**Description**: "Tests: (1) two column mapping, no primary key; (2) generation of a BlankNode subject by using rml:template; (3) one column to one property" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "students{$.ID}"; + rml:termType rml:BlankNode + ] . + +``` + +**Output** +``` +_:students10 "Venus" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/mapping.ttl index 79061724..fb76dbc4 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0002b-JSON/mapping.ttl @@ -12,11 +12,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "students{ID}"; + rml:template "students{$.ID}"; rml:termType rml:BlankNode ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/mapping.ttl deleted file mode 100644 index e0c56e13..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "students{ID}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/output.nq deleted file mode 100644 index be918d0b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ -_:students10 "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/mapping.ttl deleted file mode 100644 index 0cb45551..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "students{ID}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/output.nq deleted file mode 100644 index 407dd744..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ -_:students10 "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/mapping.ttl deleted file mode 100644 index e45c8b0e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "students{ID.value}"; - rml:termType rml:BlankNode - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/output.nq deleted file mode 100644 index 407dd744..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/output.nq +++ /dev/null @@ -1 +0,0 @@ -_:students10 "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/resource.ttl deleted file mode 100644 index da1fb834..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-SPARQL/resource.ttl +++ /dev/null @@ -1,6 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/mapping.ttl deleted file mode 100644 index 7e3c5e6e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "students{ID}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/output.nq deleted file mode 100644 index be918d0b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/output.nq +++ /dev/null @@ -1,2 +0,0 @@ -_:students10 "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/resource.sql deleted file mode 100644 index 7403a330..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002b-XML/mapping.ttl deleted file mode 100644 index 9c5dab63..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "students{ID}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002b-XML/output.nq deleted file mode 100644 index be918d0b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-XML/output.nq +++ /dev/null @@ -1,2 +0,0 @@ -_:students10 "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0002b-XML/student.xml deleted file mode 100644 index b2a6a9ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002b-XML/student.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 10 - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002c-CSV/mapping.ttl deleted file mode 100644 index ba00bad1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0002c-CSV/student.csv deleted file mode 100644 index df9d2d69..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name -10,Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002c-MySQL/mapping.ttl deleted file mode 100644 index 3b0d881b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002c-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002c-PostgreSQL/mapping.ttl deleted file mode 100644 index 397c267d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002c-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002c-SQLServer/mapping.ttl deleted file mode 100644 index c3b656d0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002c-SQLServer/resource.sql deleted file mode 100644 index 7403a330..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002c-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/mapping.ttl deleted file mode 100644 index d4a2bb0f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT CONCAT('Student', ID) AS StudentId, ID, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "StudentId"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/output.nq deleted file mode 100644 index c9ce3cd7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ -_:Student10 "Venus". diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/mapping.ttl deleted file mode 100644 index 2b20b148..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT ('Student' || ID) AS StudentId, ID, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "studentid"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/output.nq deleted file mode 100644 index c9ce3cd7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ -_:Student10 "Venus". diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/resource.sql deleted file mode 100644 index b6377ea8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/mapping.ttl deleted file mode 100644 index e7355d78..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT CONCAT('Student', ID) AS StudentId, ID, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "StudentId"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/output.nq deleted file mode 100644 index c9ce3cd7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ -_:Student10 "Venus". diff --git a/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/resource.sql deleted file mode 100644 index 312631e3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002d-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002e-CSV/mapping.ttl deleted file mode 100644 index 16ef1a14..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student2.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0002e-CSV/student.csv deleted file mode 100644 index df9d2d69..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name -10,Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/README.md new file mode 100644 index 00000000..3a237729 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/README.md @@ -0,0 +1,45 @@ +## RMLTC0002e-JSON + +**Title**: "Two columns mapping, an undefined rml:path" + +**Description**: "Tests the presence of an undefined rml:path" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student2.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.IDs" + ]; + rml:predicate ex:id + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.ID}/{$.Name}" + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/mapping.ttl index d248fc23..5fff6df9 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0002e-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "IDs" + rml:reference "$.IDs" ]; rml:predicate ex:id ]; rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" + rml:template "http://example.com/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002e-MySQL/mapping.ttl deleted file mode 100644 index 3243ff11..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "\"Students\"" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002e-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002e-PostgreSQL/mapping.ttl deleted file mode 100644 index 8c5821d5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "\"Students\"" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002e-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002e-SQLServer/mapping.ttl deleted file mode 100644 index 7cd1f338..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "\"Students\"" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002e-SQLServer/resource.sql deleted file mode 100644 index 7403a330..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002e-XML/mapping.ttl deleted file mode 100644 index 4a3a9503..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student2.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002e-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0002e-XML/student.xml deleted file mode 100644 index b2a6a9ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002e-XML/student.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 10 - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002f-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002f-MySQL/mapping.ttl deleted file mode 100644 index 49ef282d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002f-MySQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "\"Student\"" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "\"ID\"" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "\"Name\"" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{\"ID\"}/{\"Name\"}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002f-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002f-MySQL/resource.sql deleted file mode 100644 index 79b54978..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002f-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Student; -CREATE TABLE Student ( -ID INTEGER, -Name VARCHAR(15) -); -INSERT INTO Student (ID, Name) VALUES(10,'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002f-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002f-PostgreSQL/mapping.ttl deleted file mode 100644 index 49ef282d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002f-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "\"Student\"" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "\"ID\"" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "\"Name\"" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{\"ID\"}/{\"Name\"}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002f-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002f-PostgreSQL/resource.sql deleted file mode 100644 index 4359797c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002f-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS Student CASCADE; -CREATE TABLE Student ( -ID INTEGER, -Name VARCHAR(15) -); -INSERT INTO Student (ID, Name) VALUES(10,'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002f-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002f-SQLServer/mapping.ttl deleted file mode 100644 index 49ef282d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002f-SQLServer/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:referenceFormulation rml:SQL2008Table; - rml:source ; - rml:iterator "\"Student\"" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "\"ID\"" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "\"Name\"" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{\"ID\"}/{\"Name\"}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002f-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002f-SQLServer/resource.sql deleted file mode 100644 index b9bad140..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002f-SQLServer/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS TestDB.Student; -CREATE TABLE Student ( -ID INTEGER, -Name VARCHAR(15) -); -INSERT INTO Student (ID, Name) VALUES(10,'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/README.md new file mode 100644 index 00000000..5a04f6e5 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/README.md @@ -0,0 +1,45 @@ +## RMLTC0002g-JSON + +**Title**: "Two columns mapping, invalid JSONPath" + +**Description**: "Test the presence of an invalid JSONPath" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student2.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.IDs" + ]; + rml:predicate ex:id + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.ID}/{$.Name}" + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/mapping.ttl index 79665fa6..f13174c8 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0002g-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "IDs" + rml:reference "$.IDs" ]; rml:predicate ex:id ]; rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" + rml:template "http://example.com/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002g-MySQL/mapping.ttl deleted file mode 100644 index 281f0f32..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT kjnqsdjfbqsdjfmsdnfm FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002g-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002g-PostgreSQL/mapping.ttl deleted file mode 100644 index 8e015c41..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT kjnqsdjfbqsdjfmsdnfm FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002g-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002g-SPARQL/mapping.ttl deleted file mode 100644 index f25aae7a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-SPARQL/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix ex: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT qsdfqsdf sqdfqsdfsd ?Nsdfqs ame ?ID qmsndfknqskfmdnemznfmkznfmizmnknfmz - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID.value}/{Name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0002g-SPARQL/resource.ttl deleted file mode 100644 index da1fb834..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-SPARQL/resource.ttl +++ /dev/null @@ -1,6 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002g-SQLServer/mapping.ttl deleted file mode 100644 index cc64991c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "SELECT kjnqsdjfbqsdjfmsdnfm FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002g-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002g-SQLServer/resource.sql deleted file mode 100644 index 7403a330..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002g-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002h-MySQL/mapping.ttl deleted file mode 100644 index 0ff414d9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT Name, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002h-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002h-PostgreSQL/mapping.ttl deleted file mode 100644 index 73e6431b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT Name, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002h-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002h-SPARQL/mapping.ttl deleted file mode 100644 index df7c0e87..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-SPARQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix ex: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?Name - WHERE { - ?x foaf:name ?Name ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID.value}/{Name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0002h-SPARQL/resource.ttl deleted file mode 100644 index da1fb834..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-SPARQL/resource.ttl +++ /dev/null @@ -1,6 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002h-SQLServer/mapping.ttl deleted file mode 100644 index d232dd56..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT Name, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002h-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002h-SQLServer/resource.sql deleted file mode 100644 index 1673b883..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002h-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002i-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002i-MySQL/mapping.ttl deleted file mode 100644 index 0c3186b7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002i-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002i-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002i-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002i-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002i-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002i-PostgreSQL/mapping.ttl deleted file mode 100644 index 59e2fa5e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002i-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002i-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002i-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002i-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002i-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002i-SQLServer/mapping.ttl deleted file mode 100644 index 0cbaf16f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002i-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002i-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002i-SQLServer/resource.sql deleted file mode 100644 index 7403a330..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002i-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002j-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002j-MySQL/mapping.ttl deleted file mode 100644 index c691b7eb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002j-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT NoColumnName, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002j-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002j-MySQL/resource.sql deleted file mode 100644 index a68415ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002j-MySQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002j-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002j-PostgreSQL/mapping.ttl deleted file mode 100644 index 170765ed..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002j-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT NoColumnName, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002j-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002j-PostgreSQL/resource.sql deleted file mode 100644 index 80957756..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002j-PostgreSQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0002j-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0002j-SQLServer/mapping.ttl deleted file mode 100644 index 0cf92cf3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002j-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT NoColumnName, Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0002j-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0002j-SQLServer/resource.sql deleted file mode 100644 index 7403a330..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0002j-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003a-MySQL/mapping.ttl deleted file mode 100644 index bb5ea67a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003a-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT FirstName, LastName FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003a-MySQL/resource.sql deleted file mode 100644 index 6a1a3f3e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003a-MySQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003a-PostgreSQL/mapping.ttl deleted file mode 100644 index 69f4c6a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT FirstName, LastName FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003a-PostgreSQL/resource.sql deleted file mode 100644 index 339e52c6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003a-PostgreSQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003a-SQLServer/mapping.ttl deleted file mode 100644 index b6120db4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003a-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT FirstName, LastName FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "IDs" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003a-SQLServer/resource.sql deleted file mode 100644 index 13f10776..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003a-SQLServer/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/mapping.ttl deleted file mode 100644 index 3b68c9b5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT ID, LastName, CONCAT(`FirstName`, '', `LastName`) as Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{LastName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/output.nq deleted file mode 100644 index 4ba0d6f1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "VenusWilliams" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/resource.sql deleted file mode 100644 index 6a1a3f3e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-MySQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/mapping.ttl deleted file mode 100644 index 12ae8dd6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT id, lastname, concat_ws(firstname, '', lastname) as name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{id}/{lastname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/output.nq deleted file mode 100644 index 4ba0d6f1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "VenusWilliams" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/resource.sql deleted file mode 100644 index c9b85352..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-PostgreSQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - id INTEGER, - firstname VARCHAR(50), - lastname VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/mapping.ttl deleted file mode 100644 index ff4018ea..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator "SELECT ID, LastName, concat_ws(FirstName, '', LastName) as Name FROM student"; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{LastName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/output.nq deleted file mode 100644 index 4ba0d6f1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ - "VenusWilliams" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/resource.sql deleted file mode 100644 index 13f10776..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003b-SQLServer/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/mapping.ttl deleted file mode 100644 index e0a70f33..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{FirstName} {LastName}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/output.nq deleted file mode 100644 index 180f90c2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus Williams" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/README.md new file mode 100644 index 00000000..67fdc5a3 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/README.md @@ -0,0 +1,53 @@ +## RMLTC0003c-JSON + +**Title**: "Three columns mapping, by using a rml:template to produce literal" + +**Description**: "Tests: (1) three column mapping; and (2) the use of rml:template to produce literal" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:template "{$.FirstName} {$.LastName}"; + rml:termType rml:Literal + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "http://example.com/Student{$.ID}" + ] . + +``` + +**Output** +``` + "Venus Williams" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/mapping.ttl index 482bcf9c..0b42150f 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0003c-JSON/mapping.ttl @@ -12,11 +12,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:template "{FirstName} {LastName}"; + rml:template "{$.FirstName} {$.LastName}"; rml:termType rml:Literal ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "http://example.com/Student{ID}" + rml:template "http://example.com/Student{$.ID}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/mapping.ttl deleted file mode 100644 index c9d5d266..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{FirstName} {LastName}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/output.nq deleted file mode 100644 index 180f90c2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus Williams" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/mapping.ttl deleted file mode 100644 index d4c7bea0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{FirstName} {LastName}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/output.nq deleted file mode 100644 index 180f90c2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus Williams" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/resource.sql deleted file mode 100644 index 339e52c6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-PostgreSQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -DROP TABLE IF EXISTS student CASCADE ; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/mapping.ttl deleted file mode 100644 index 3e576f26..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{FirstName.value} {LastName.value}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student{ID.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/output.nq deleted file mode 100644 index 180f90c2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus Williams" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/mapping.ttl deleted file mode 100644 index 8b4b1bb6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{FirstName} {LastName}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/output.nq deleted file mode 100644 index 180f90c2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus Williams" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/resource.sql deleted file mode 100644 index 13f10776..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-SQLServer/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0003c-XML/mapping.ttl deleted file mode 100644 index 87372229..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{FirstName} {LastName}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0003c-XML/output.nq deleted file mode 100644 index 180f90c2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-XML/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Venus Williams" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0003c-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0003c-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0003c-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/mapping.ttl deleted file mode 100644 index e2fd7725..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/mapping.ttl +++ /dev/null @@ -1,41 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student_sport.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Student" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student; - rml:template "http://example.com/{Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student_sport.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Sport; - rml:template "http://example.com/{Sport}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/output.nq deleted file mode 100644 index 164ca8ba..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - . - "Tennis" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/student_sport.csv b/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/student_sport.csv deleted file mode 100644 index 3c88eaa3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-CSV/student_sport.csv +++ /dev/null @@ -1,2 +0,0 @@ -Student,Sport -Venus,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/README.md new file mode 100644 index 00000000..2fcfb0be --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/README.md @@ -0,0 +1,77 @@ +## RMLTC0004a-JSON + +**Title**: "Two column mapping, from one row table to two different triples" + +**Description**: "Tests: (1) two column mapping, (2) subject URI generated by a column value; (3) from one row table to two different triples (4) typing by using rml:class" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "Student": "Venus", + "Sport":"Tennis" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student_sport.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Student" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:class ex:Student; + rml:template "http://example.com/{$.Student}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student_sport.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Sport" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:class ex:Sport; + rml:template "http://example.com/{$.Sport}" + ] . + +``` + +**Output** +``` + "Venus" . + . + "Tennis" . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/mapping.ttl index bc212d7f..ff87cbc9 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0004a-JSON/mapping.ttl @@ -13,13 +13,13 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Student" + rml:reference "$.Student" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:class ex:Student; - rml:template "http://example.com/{Student}" + rml:template "http://example.com/{$.Student}" ] . a rml:TriplesMap; @@ -33,11 +33,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Sport" + rml:reference "$.Sport" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:class ex:Sport; - rml:template "http://example.com/{Sport}" + rml:template "http://example.com/{$.Sport}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/mapping.ttl deleted file mode 100644 index 51eaa9f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/mapping.ttl +++ /dev/null @@ -1,44 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Student" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student; - rml:template "http://example.com/{Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Sport; - rml:template "http://example.com/{Sport}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/output.nq deleted file mode 100644 index 164ca8ba..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - . - "Tennis" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/resource.sql deleted file mode 100644 index a98ea0fa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student_sport; - -CREATE TABLE student_sport ( - Student VARCHAR(50), - Sport VARCHAR(50) -); -INSERT INTO student_sport values ('Venus', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/student_sport.csv b/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/student_sport.csv deleted file mode 100644 index 3c88eaa3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-MySQL/student_sport.csv +++ /dev/null @@ -1,2 +0,0 @@ -Student,Sport -Venus,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/mapping.ttl deleted file mode 100644 index b1f8ac41..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,44 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Student" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student; - rml:template "http://example.com/{Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Sport; - rml:template "http://example.com/{Sport}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/output.nq deleted file mode 100644 index ab10283d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus" . - . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/resource.sql deleted file mode 100644 index e3fbd520..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -DROP TABLE IF EXISTS student_sport; - -CREATE TABLE student_sport ( - "Student" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student_sport values ('Venus', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/student_sport.csv b/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/student_sport.csv deleted file mode 100644 index 3c88eaa3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-PostgreSQL/student_sport.csv +++ /dev/null @@ -1,2 +0,0 @@ -Student,Sport -Venus,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/mapping.ttl deleted file mode 100644 index 5053c863..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/mapping.ttl +++ /dev/null @@ -1,66 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - -ex:TriplesMap1 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Student - WHERE { - ?x a ; - foaf:name ?Student . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Student.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student; - rml:template "http://example.com/{Student.value}" - ] . - -ex:TriplesMap2 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Sport - WHERE { - ?x a ; - ?sportObject . - ?sportObject foaf:name ?Sport . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sport.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Sport; - rml:template "http://example.com/{Sport.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/output.nq deleted file mode 100644 index ab10283d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus" . - . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/resource.ttl deleted file mode 100644 index 8435fe0c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SPARQL/resource.ttl +++ /dev/null @@ -1,8 +0,0 @@ -@prefix foaf: . -@prefix ns1: . - -[] a ns1:Student ; - ns1:plays [ a ns1:Sport ; - foaf:name "Tennis" ] ; - foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/mapping.ttl deleted file mode 100644 index 8df779a1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/mapping.ttl +++ /dev/null @@ -1,44 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Student" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student; - rml:template "http://example.com/{Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Sport; - rml:template "http://example.com/{Sport}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/output.nq deleted file mode 100644 index 164ca8ba..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - . - "Tennis" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/resource.sql deleted file mode 100644 index 6424aeaa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/resource.sql +++ /dev/null @@ -1,7 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student_sport; -CREATE TABLE student_sport ( - "Student" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student_sport values ('Venus', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/student_sport.csv b/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/student_sport.csv deleted file mode 100644 index 3c88eaa3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-SQLServer/student_sport.csv +++ /dev/null @@ -1,2 +0,0 @@ -Student,Sport -Venus,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004a-XML/mapping.ttl deleted file mode 100644 index 9ccb70fa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-XML/mapping.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student_sport.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Student" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student; - rml:template "http://example.com/{Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student_sport.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Sport; - rml:template "http://example.com/{Sport}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0004a-XML/output.nq deleted file mode 100644 index 164ca8ba..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - . - "Tennis" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004a-XML/student_sport.xml b/src/test/resources/new-test-cases/core/RMLTC0004a-XML/student_sport.xml deleted file mode 100644 index 73b448c3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004a-XML/student_sport.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - Venus - Tennis - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-CSV/mapping.ttl deleted file mode 100644 index b34afb2e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}"; - rml:termType rml:Literal - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0004b-CSV/student.csv deleted file mode 100644 index 4e683bbe..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -Name -Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/README.md new file mode 100644 index 00000000..fcb279b2 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/README.md @@ -0,0 +1,45 @@ +## RMLTC0004b-JSON + +**Title**: "One column mapping, presence of rml:termType rml:Literal on rml:subjectMap" + +**Description**: "Tests: (1) one column mapping (2) the presence of rml:termType rml:Literal on rml:subjectMap, which is invalid" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Name}"; + rml:termType rml:Literal + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/mapping.ttl index 6a0624ef..36480e52 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0004b-JSON/mapping.ttl @@ -12,11 +12,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "http://example.com/{Name}"; + rml:template "http://example.com/{$.Name}"; rml:termType rml:Literal ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-MySQL/mapping.ttl deleted file mode 100644 index 0214c8a7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}"; - rml:termType rml:Literal - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0004b-MySQL/resource.sql deleted file mode 100644 index 04afa4e1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-MySQL/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; -CREATE TABLE student ( - Name VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-PostgreSQL/mapping.ttl deleted file mode 100644 index 7e30b9e2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}"; - rml:termType rml:Literal - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0004b-PostgreSQL/resource.sql deleted file mode 100644 index 67e5510f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-PostgreSQL/resource.sql +++ /dev/null @@ -1,5 +0,0 @@ -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "Name" VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-SPARQL/mapping.ttl deleted file mode 100644 index e425cb50..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-SPARQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - -ex:TriplesMap1 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name - WHERE { - ?x foaf:name ?Name . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name.value}"; - rml:termType rml:Literal - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-SPARQL/resource.ttl deleted file mode 100644 index ac86df29..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-SPARQL/resource.ttl +++ /dev/null @@ -1,4 +0,0 @@ -@prefix foaf: . - -[] foaf:name "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-SQLServer/mapping.ttl deleted file mode 100644 index f652128d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}"; - rml:termType rml:Literal - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0004b-SQLServer/resource.sql deleted file mode 100644 index f38006ab..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-SQLServer/resource.sql +++ /dev/null @@ -1,6 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "Name" VARCHAR(50) -); -INSERT INTO student values ('Venus'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0004b-XML/mapping.ttl deleted file mode 100644 index 6423cf78..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}"; - rml:termType rml:Literal - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0004b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0004b-XML/student.xml deleted file mode 100644 index f104648b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0004b-XML/student.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/ious.csv b/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/ious.csv deleted file mode 100644 index 49ce65ff..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/ious.csv +++ /dev/null @@ -1,4 +0,0 @@ -fname,lname,amount -Bob,Smith,30.0E0 -Sue,Jones,20.0E0 -Bob,Smith,30.0E0 diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/mapping.ttl deleted file mode 100644 index 4b90b2ea..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "ious.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:owes - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{fname};{lname}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/output.nq deleted file mode 100644 index 64e91da4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "30.0E0" . - . - "20.0E0" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/README.md new file mode 100644 index 00000000..28dae551 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/README.md @@ -0,0 +1,70 @@ +## RMLTC0005a-JSON + +**Title**: "Typing of resources" + +**Description**: "Tests the typing of resources" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + { + "fname": "Bob", + "lname": "Smith", + "amount": "30.0E0" + }, + { + "fname": "Sue", + "lname": "Jones", + "amount": "20.0E0" + }, + { + "fname": "Bob", + "lname": "Smith", + "amount": "30.0E0" + } + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "ious.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:owes + ]; + rml:subjectMap [ + rml:class foaf:Person; + rml:template "http://example.com/{$.fname};{$.lname}" + ] . + +``` + +**Output** +``` + . + "30.0E0" . + . + "20.0E0" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/mapping.ttl index 9232cb2b..d692582e 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0005a-JSON/mapping.ttl @@ -13,11 +13,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "amount" + rml:reference "$.amount" ]; rml:predicate ex:owes ]; rml:subjectMap [ rml:class foaf:Person; - rml:template "http://example.com/{fname};{lname}" + rml:template "http://example.com/{$.fname};{$.lname}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/mapping.ttl deleted file mode 100644 index e34e5337..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:owes - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{fname};{lname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/output.nq deleted file mode 100644 index 30bc4b1d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "3.0E1"^^ . - . - "2.0E1"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/resource.sql deleted file mode 100644 index bad6cddf..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.IOUs; -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/mapping.ttl deleted file mode 100644 index f929dda4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:owes - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{fname};{lname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/output.nq deleted file mode 100644 index 30bc4b1d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "3.0E1"^^ . - . - "2.0E1"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/resource.sql deleted file mode 100644 index 32767803..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS IOUs; -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/mapping.ttl deleted file mode 100644 index 95579a1c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:owes - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{fname};{lname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/output.nq deleted file mode 100644 index 30bc4b1d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "3.0E1"^^ . - . - "2.0E1"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/resource.sql deleted file mode 100644 index 64a717bb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-SQLServer/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS IOUs; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-XML/ious.xml b/src/test/resources/new-test-cases/core/RMLTC0005a-XML/ious.xml deleted file mode 100644 index 83fe72a2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-XML/ious.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Bob - Smith - 30.0E0 - - - Sue - Jones - 20.0E0 - - - Bob - Smith - 30.0E0 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005a-XML/mapping.ttl deleted file mode 100644 index 9c0e0c4d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-XML/mapping.ttl +++ /dev/null @@ -1,23 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/persons/person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "ious.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:owes - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{fname};{lname}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005a-XML/output.nq deleted file mode 100644 index 64e91da4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005a-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "30.0E0" . - . - "20.0E0" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/mapping.ttl deleted file mode 100644 index dd7f2618..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix d2rq: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:template "{fname}_{lname}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/output.nq deleted file mode 100644 index e9744d9a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/output.nq +++ /dev/null @@ -1,9 +0,0 @@ -_:Bob_Smith . -_:Bob_Smith "Bob" . -_:Bob_Smith "Smith" . -_:Bob_Smith "3.0E1"^^ . -_:Sue_Jones . -_:Sue_Jones "Sue" . -_:Sue_Jones "Jones" . -_:Sue_Jones "2.0E1"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/resource.sql deleted file mode 100644 index bad6cddf..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.IOUs; -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/mapping.ttl deleted file mode 100644 index a5796754..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix d2rq: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:template "{fname}_{lname}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/output.nq deleted file mode 100644 index e9744d9a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/output.nq +++ /dev/null @@ -1,9 +0,0 @@ -_:Bob_Smith . -_:Bob_Smith "Bob" . -_:Bob_Smith "Smith" . -_:Bob_Smith "3.0E1"^^ . -_:Sue_Jones . -_:Sue_Jones "Sue" . -_:Sue_Jones "Jones" . -_:Sue_Jones "2.0E1"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/resource.sql deleted file mode 100644 index 32767803..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS IOUs; -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/mapping.ttl deleted file mode 100644 index 50a859f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix d2rq: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:template "{fname}_{lname}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/output.nq deleted file mode 100644 index e9744d9a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/output.nq +++ /dev/null @@ -1,9 +0,0 @@ -_:Bob_Smith . -_:Bob_Smith "Bob" . -_:Bob_Smith "Smith" . -_:Bob_Smith "3.0E1"^^ . -_:Sue_Jones . -_:Sue_Jones "Sue" . -_:Sue_Jones "Jones" . -_:Sue_Jones "2.0E1"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/resource.sql deleted file mode 100644 index 660f8c86..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0005b-SQLServer/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS IOUs; -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/mapping.ttl deleted file mode 100644 index 47582add..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:constant "Bad Student" - ]; - rml:predicateMap [ - rml:constant ex:description - ] - ]; - rml:subjectMap [ - rml:constant ex:BadStudent; - rml:graphMap [ - rml:constant - ] - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/output.nq deleted file mode 100644 index 4e6fd3ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0006a-JSON/README.md new file mode 100644 index 00000000..ffa61754 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0006a-JSON/README.md @@ -0,0 +1,56 @@ +## RMLTC0006a-JSON + +**Title**: "Use of rml:constant in rml:subjectMap, rml:predicateMap, rml:objectMap and rml:graphMap" + +**Description**: "Tests the use of rml:constant in rml:subjectMap, rml:predicateMap, rml:objectMap and rml:graphMap" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:constant "Bad Student" + ]; + rml:predicateMap [ + rml:constant ex:description + ] + ]; + rml:subjectMap [ + rml:constant ex:BadStudent; + rml:graphMap [ + rml:constant + ] + ] . + +``` + +**Output** +``` + "Bad Student" . +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/mapping.ttl deleted file mode 100644 index b793aa7a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:constant "Bad Student" - ]; - rml:predicateMap [ - rml:constant ex:description - ] - ]; - rml:subjectMap [ - rml:constant ex:BadStudent; - rml:graphMap [ - rml:constant - ] - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/output.nq deleted file mode 100644 index 4e6fd3ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/mapping.ttl deleted file mode 100644 index 2a8f540d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:constant "Bad Student" - ]; - rml:predicateMap [ - rml:constant ex:description - ] - ]; - rml:subjectMap [ - rml:constant ex:BadStudent; - rml:graphMap [ - rml:constant - ] - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/output.nq deleted file mode 100644 index 4e6fd3ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/mapping.ttl deleted file mode 100644 index b6820692..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/mapping.ttl +++ /dev/null @@ -1,39 +0,0 @@ -@prefix ex: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - -ex:TriplesMap1 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?BadStudent ?LastName ?ID - WHERE { - - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:constant "Bad Student" - ]; - rml:predicateMap [ - rml:constant ex:description - ] - ]; - rml:subjectMap [ - rml:constant ex:BadStudent; - rml:graphMap [ - rml:constant - ] - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/output.nq deleted file mode 100644 index 4e6fd3ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/mapping.ttl deleted file mode 100644 index 00e232f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:constant "Bad Student" - ]; - rml:predicateMap [ - rml:constant ex:description - ] - ]; - rml:subjectMap [ - rml:constant ex:BadStudent; - rml:graphMap [ - rml:constant - ] - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/output.nq deleted file mode 100644 index 4e6fd3ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0006a-XML/mapping.ttl deleted file mode 100644 index 2f08a03b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-XML/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:constant "Bad Student" - ]; - rml:predicateMap [ - rml:constant ex:description - ] - ]; - rml:subjectMap [ - rml:constant ex:BadStudent; - rml:graphMap [ - rml:constant - ] - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0006a-XML/output.nq deleted file mode 100644 index 4e6fd3ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-XML/output.nq +++ /dev/null @@ -1 +0,0 @@ - "Bad Student" . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0006a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0006a-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0006a-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/mapping.ttl deleted file mode 100644 index 0c4bf5c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/mapping.ttl +++ /dev/null @@ -1,19 +0,0 @@ -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/output.nq deleted file mode 100644 index 76f87f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/README.md new file mode 100644 index 00000000..c86dcf39 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/README.md @@ -0,0 +1,52 @@ +## RMLTC0007a-JSON + +**Title**: "Typing resources by relying on rdf:type predicate" + +**Description**: "Tests the typing resources by relying on rdf:type predicate" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + +**Output** +``` + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/mapping.ttl index 79fd925f..ac7b148b 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007a-JSON/mapping.ttl @@ -16,5 +16,5 @@ rml:predicate rdf:type ]; rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/mapping.ttl deleted file mode 100644 index db739fa2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/mapping.ttl +++ /dev/null @@ -1,24 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/output.nq deleted file mode 100644 index 76f87f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/mapping.ttl deleted file mode 100644 index af254a4e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,24 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/output.nq deleted file mode 100644 index 76f87f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/mapping.ttl deleted file mode 100644 index 42b09838..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rdf: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/output.nq deleted file mode 100644 index 76f87f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/mapping.ttl deleted file mode 100644 index 8d4b6cc7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/mapping.ttl +++ /dev/null @@ -1,24 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/output.nq deleted file mode 100644 index 76f87f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007a-XML/mapping.ttl deleted file mode 100644 index 90686dfc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-XML/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007a-XML/output.nq deleted file mode 100644 index 76f87f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-XML/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007a-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007a-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/mapping.ttl deleted file mode 100644 index 038756a4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/output.nq deleted file mode 100644 index 5c4eb261..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/README.md new file mode 100644 index 00000000..7dcbda75 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/README.md @@ -0,0 +1,60 @@ +## RMLTC0007b-JSON + +**Title**: "Assigning triples to Named Graphs" + +**Description**: "Tests the generation of triples to a named graph" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ], [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:graph ex:PersonGraph; + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + +**Output** +``` + "Venus" . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/mapping.ttl index 2f6423e5..d9043524 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007b-JSON/mapping.ttl @@ -17,11 +17,11 @@ rml:predicate rdf:type ], [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/mapping.ttl deleted file mode 100644 index 7af7a434..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/output.nq deleted file mode 100644 index 5c4eb261..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/mapping.ttl deleted file mode 100644 index cf2eea01..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/output.nq deleted file mode 100644 index 5c4eb261..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/mapping.ttl deleted file mode 100644 index 77045f25..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/mapping.ttl +++ /dev/null @@ -1,38 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rdf: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/output.nq deleted file mode 100644 index 5c4eb261..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/mapping.ttl deleted file mode 100644 index 95fad185..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/output.nq deleted file mode 100644 index 5c4eb261..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007b-XML/mapping.ttl deleted file mode 100644 index 7e3adee1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-XML/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007b-XML/output.nq deleted file mode 100644 index 5c4eb261..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-XML/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007b-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007b-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/mapping.ttl deleted file mode 100644 index 172bab17..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/output.nq deleted file mode 100644 index fb4d7fe2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10" . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/README.md new file mode 100644 index 00000000..7bd10d6e --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/README.md @@ -0,0 +1,63 @@ +## RMLTC0007c-JSON + +**Title**: "One row mapping, using rml:class" + +**Description**: "Tests subjectmap with more than one class IRIs, rml:class" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:class ex:Student, foaf:Person; + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + +**Output** +``` + "Venus" . + "10" . + . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/mapping.ttl index 4e1aee0b..65764100 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007c-JSON/mapping.ttl @@ -13,16 +13,16 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/mapping.ttl deleted file mode 100644 index 82326cd6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/output.nq deleted file mode 100644 index ae78ddfb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/mapping.ttl deleted file mode 100644 index 9d146a37..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/output.nq deleted file mode 100644 index ae78ddfb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/mapping.ttl deleted file mode 100644 index 478c50f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/mapping.ttl +++ /dev/null @@ -1,34 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/output.nq deleted file mode 100644 index 84570f21..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus" . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/mapping.ttl deleted file mode 100644 index 66f13465..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/output.nq deleted file mode 100644 index ae78ddfb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007c-XML/mapping.ttl deleted file mode 100644 index 511b917d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-XML/mapping.ttl +++ /dev/null @@ -1,28 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class ex:Student, foaf:Person; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007c-XML/output.nq deleted file mode 100644 index fb4d7fe2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10" . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007c-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007c-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007c-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/mapping.ttl deleted file mode 100644 index ebce721d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:object ex:Student; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/output.nq deleted file mode 100644 index 2f24266d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10" . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/README.md new file mode 100644 index 00000000..82b12af4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/README.md @@ -0,0 +1,69 @@ +## RMLTC0007d-JSON + +**Title**: "One column mapping, specifying an rml:predicateObjectMap with rdf:type" + +**Description**: "Tests subjectmap with an alternative of having rml:class, i.e., by specifying an rml:predicateObjectMap with predicate rdf:type" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ], [ + rml:object ex:Student; + rml:predicate rdf:type + ], [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + +**Output** +``` + "Venus" . + "10" . + . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/mapping.ttl index 86eff9fe..fe8e475a 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007d-JSON/mapping.ttl @@ -20,15 +20,15 @@ rml:predicate rdf:type ], [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/mapping.ttl deleted file mode 100644 index 5712c9cc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/mapping.ttl +++ /dev/null @@ -1,38 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:object ex:Student; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/output.nq deleted file mode 100644 index ae78ddfb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/mapping.ttl deleted file mode 100644 index f05bf2ed..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,38 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:object ex:Student; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/output.nq deleted file mode 100644 index ae78ddfb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/mapping.ttl deleted file mode 100644 index 1cac4f47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/mapping.ttl +++ /dev/null @@ -1,40 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rdf: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:object ex:Student; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "FirstName.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/output.nq deleted file mode 100644 index 84570f21..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus" . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/mapping.ttl deleted file mode 100644 index 8849b336..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/mapping.ttl +++ /dev/null @@ -1,38 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:object ex:Student; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/output.nq deleted file mode 100644 index ae78ddfb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007d-XML/mapping.ttl deleted file mode 100644 index 2de8b887..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-XML/mapping.ttl +++ /dev/null @@ -1,34 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:object ex:Student; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007d-XML/output.nq deleted file mode 100644 index 2f24266d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - "Venus" . - "10" . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007d-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007d-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007d-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/mapping.ttl deleted file mode 100644 index 8de7095d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/mapping.ttl +++ /dev/null @@ -1,28 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/output.nq deleted file mode 100644 index 4cbaaf55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "10" . - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/student.csv deleted file mode 100644 index df9d2d69..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name -10,Venus diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/README.md new file mode 100644 index 00000000..a4b5eb8b --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/README.md @@ -0,0 +1,62 @@ +## RMLTC0007e-JSON + +**Title**: "One column mapping, using rml:graphMap and rml:class" + +**Description**: "Tests subjectmap with rml:graphMap and rml:class" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:class foaf:Person; + rml:graph ex:PersonGraph; + rml:template "http://example.com/Student/{$.ID}/{$.Name}" + ] . + +``` + +**Output** +``` + "10" . + "Venus" . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/mapping.ttl index 44b814a3..19e307c7 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007e-JSON/mapping.ttl @@ -13,17 +13,17 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:class foaf:Person; rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{Name}" + rml:template "http://example.com/Student/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/mapping.ttl deleted file mode 100644 index c051b269..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/output.nq deleted file mode 100644 index c5ea4c49..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "10"^^ . - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/mapping.ttl deleted file mode 100644 index 93f0b13a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/output.nq deleted file mode 100644 index c5ea4c49..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "10"^^ . - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/mapping.ttl deleted file mode 100644 index 4e362e6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/output.nq deleted file mode 100644 index 1548749b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/mapping.ttl deleted file mode 100644 index 37de1347..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/output.nq deleted file mode 100644 index c5ea4c49..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "10"^^ . - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007e-XML/mapping.ttl deleted file mode 100644 index 58a876d4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-XML/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007e-XML/output.nq deleted file mode 100644 index 4cbaaf55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-XML/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "10" . - "Venus" . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007e-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007e-XML/student.xml deleted file mode 100644 index b2a6a9ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007e-XML/student.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 10 - Venus - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/mapping.ttl deleted file mode 100644 index 1160c8bf..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/output.nq deleted file mode 100644 index d4694d78..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - . - "Venus" . - "10" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/README.md new file mode 100644 index 00000000..32e9b11a --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/README.md @@ -0,0 +1,66 @@ +## RMLTC0007f-JSON + +**Title**: "One column mapping, using rml:graphMap and specifying an rml:predicateObjectMap with rdf:type" + +**Description**: "Tests subjectmap with rml:graphMap and specifying an rml:predicateObjectMap with predicate rdf:type" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ], [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:graph ex:PersonGraph; + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + +**Output** +``` + . + "Venus" . + "10" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/mapping.ttl index 838a06b0..8dd905cf 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007f-JSON/mapping.ttl @@ -17,16 +17,16 @@ rml:predicate rdf:type ], [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/mapping.ttl deleted file mode 100644 index cb5ce945..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/output.nq deleted file mode 100644 index fb6a536c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - . - "Venus" . - "10"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/mapping.ttl deleted file mode 100644 index 67b94e7e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/output.nq deleted file mode 100644 index fb6a536c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - . - "Venus" . - "10"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/mapping.ttl deleted file mode 100644 index 26318a46..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rdf: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/output.nq deleted file mode 100644 index 1548749b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/mapping.ttl deleted file mode 100644 index 61e58591..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/output.nq deleted file mode 100644 index fb6a536c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - . - "Venus" . - "10"^^ . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007f-XML/mapping.ttl deleted file mode 100644 index b9ccf20e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-XML/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph ex:PersonGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007f-XML/output.nq deleted file mode 100644 index d4694d78..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-XML/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - . - "Venus" . - "10" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007f-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007f-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007f-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/mapping.ttl deleted file mode 100644 index 07641fdd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/output.nq deleted file mode 100644 index 6c29bcce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/README.md new file mode 100644 index 00000000..3a17bc06 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/README.md @@ -0,0 +1,54 @@ +## RMLTC0007g-JSON + +**Title**: "Assigning triples to the default graph" + +**Description**: "Tests the generation of triples to the default graph" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:graph rml:defaultGraph; + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + +**Output** +``` + "Venus" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/mapping.ttl index 3d6fb710..bfacef74 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007g-JSON/mapping.ttl @@ -12,11 +12,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/mapping.ttl deleted file mode 100644 index 95cf92ac..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/output.nq deleted file mode 100644 index 6c29bcce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/mapping.ttl deleted file mode 100644 index bb47312d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/output.nq deleted file mode 100644 index 6c29bcce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/mapping.ttl deleted file mode 100644 index 09958b72..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/output.nq deleted file mode 100644 index 6c29bcce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/mapping.ttl deleted file mode 100644 index 0cb0116a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/output.nq deleted file mode 100644 index 6c29bcce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007g-XML/mapping.ttl deleted file mode 100644 index 942a30b4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graph rml:defaultGraph; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0007g-XML/output.nq deleted file mode 100644 index 6c29bcce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-XML/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007g-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007g-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007g-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-CSV/mapping.ttl deleted file mode 100644 index 6be1b2bc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-CSV/mapping.ttl +++ /dev/null @@ -1,24 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graphMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0007h-CSV/student.csv deleted file mode 100644 index 1851cef9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/README.md new file mode 100644 index 00000000..f53be206 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/README.md @@ -0,0 +1,50 @@ +## RMLTC0007h-JSON + +**Title**: "Assigning triples to a non-IRI named graph" + +**Description**: "Tests the generation of triples to a non-IRI named graph, which is an error" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "FirstName":"Venus", + "LastName":"Williams" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:graphMap [ + rml:reference "$.ID"; + rml:termType rml:Literal + ]; + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/mapping.ttl index b85c1fc5..c79dd6ed 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0007h-JSON/mapping.ttl @@ -12,14 +12,14 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ rml:graphMap [ - rml:reference "Name"; + rml:reference "$.ID"; rml:termType rml:Literal ]; - rml:template "http://example.com/Student/{ID}/{FirstName}" + rml:template "http://example.com/Student/{$.ID}/{$.FirstName}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-MySQL/mapping.ttl deleted file mode 100644 index 3d622a90..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-MySQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graphMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007h-MySQL/resource.sql deleted file mode 100644 index 0135d051..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(50), - LastName VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-PostgreSQL/mapping.ttl deleted file mode 100644 index 2fb1fa99..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graphMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007h-PostgreSQL/resource.sql deleted file mode 100644 index b5c63bc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-SPARQL/mapping.ttl deleted file mode 100644 index e323fc9a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-SPARQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?FirstName ?LastName ?ID - WHERE { - ?x foaf:firstName ?FirstName ; - foaf:lastName ?LastName ; - rdf:ID ?ID . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graphMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:template "http://example.com/Student/{ID.value}/{FirstName.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-SPARQL/resource.ttl deleted file mode 100644 index f4a7ed47..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-SPARQL/resource.ttl +++ /dev/null @@ -1,7 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "10" ; - foaf:firstName "Venus" ; - foaf:lastName "Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-SQLServer/mapping.ttl deleted file mode 100644 index 976ef9d6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-SQLServer/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graphMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0007h-SQLServer/resource.sql deleted file mode 100644 index 976627c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "FirstName" VARCHAR(50), - "LastName" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0007h-XML/mapping.ttl deleted file mode 100644 index 6288a1e5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-XML/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:graphMap [ - rml:reference "Name"; - rml:termType rml:Literal - ]; - rml:template "http://example.com/Student/{ID}/{FirstName}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0007h-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0007h-XML/student.xml deleted file mode 100644 index 44eab80f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0007h-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus - Williams - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/mapping.ttl deleted file mode 100644 index 0764fee6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/mapping.ttl +++ /dev/null @@ -1,38 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate ex:Sport - ]; - rml:subjectMap [ - rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID}/{Name}" - ]; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/output.nq deleted file mode 100644 index 2856ef24..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "Venus Williams" . - "10" . - "Tennis" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/student.csv deleted file mode 100644 index fb130b76..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name,Sport -10,Venus Williams,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/README.md new file mode 100644 index 00000000..8f103be4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/README.md @@ -0,0 +1,74 @@ +## RMLTC0008a-JSON + +**Title**: "Generation of triples to a target graph by using rml:graphMap and rml:template" + +**Description**: "Test that results of the mapping can be directed to a target graph by using rml:graphMap and rml:template" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus Williams", + "Sport": "Tennis" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ], [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ + rml:reference "$.Sport" + ]; + rml:predicate ex:Sport + ]; + rml:subjectMap [ + rml:graphMap [ + rml:template "http://example.com/graph/Student/{$.ID}/{$.Name}" + ]; + rml:template "http://example.com/Student/{$.ID}/{$.Name}" + ] . + +``` + +**Output** +``` + . + "Venus Williams" . + "10" . + "Tennis" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/mapping.ttl index 235fc633..c12600ca 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0008a-JSON/mapping.ttl @@ -17,23 +17,23 @@ rml:predicate rdf:type ], [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ], [ rml:objectMap [ - rml:reference "Sport" + rml:reference "$.Sport" ]; rml:predicate ex:Sport ]; rml:subjectMap [ rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID}/{Name}" + rml:template "http://example.com/graph/Student/{$.ID}/{$.Name}" ]; - rml:template "http://example.com/Student/{ID}/{Name}" + rml:template "http://example.com/Student/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/mapping.ttl deleted file mode 100644 index dbe815e6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/mapping.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate ex:Sport - ]; - rml:subjectMap [ - rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID}/{Name}" - ]; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/output.nq deleted file mode 100644 index 8c3c01f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - "Venus Williams" . - "10"^^ . - "Tennis" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/resource.sql deleted file mode 100644 index 31e00260..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50), - Sport VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/mapping.ttl deleted file mode 100644 index f84e0538..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate ex:Sport - ]; - rml:subjectMap [ - rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID}/{Name}" - ]; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/output.nq deleted file mode 100644 index 8c3c01f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - "Venus Williams" . - "10"^^ . - "Tennis" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/resource.sql deleted file mode 100644 index 3ad893a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/mapping.ttl deleted file mode 100644 index 97d3504b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rdf: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?Sport ?ID - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - ?sportObject . - ?sportObject foaf:name ?Sport . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID.value" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "Sport.value" - ]; - rml:predicate ex:Sport - ]; - rml:subjectMap [ - rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID.value}/{Name.value}" - ]; - rml:template "http://example.com/Student/{ID.value}/{Name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/output.nq deleted file mode 100644 index 2856ef24..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "Venus Williams" . - "10" . - "Tennis" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/resource.ttl deleted file mode 100644 index e7007e36..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-SPARQL/resource.ttl +++ /dev/null @@ -1,9 +0,0 @@ -@prefix foaf: . -@prefix ns1: . -@prefix rdf: . - -[] ns1:plays [ a ns1:Sport ; - foaf:name "Tennis" ] ; - rdf:ID "10" ; - foaf:name "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/mapping.ttl deleted file mode 100644 index e0220849..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/mapping.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate ex:Sport - ]; - rml:subjectMap [ - rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID}/{Name}" - ]; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/output.nq deleted file mode 100644 index 8c3c01f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - "Venus Williams" . - "10"^^ . - "Tennis" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/resource.sql deleted file mode 100644 index e9b41d95..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008a-XML/mapping.ttl deleted file mode 100644 index e9f3ac3f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-XML/mapping.ttl +++ /dev/null @@ -1,39 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "Sport" - ]; - rml:predicate ex:Sport - ]; - rml:subjectMap [ - rml:graphMap [ - rml:template "http://example.com/graph/Student/{ID}/{Name}" - ]; - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008a-XML/output.nq deleted file mode 100644 index 2856ef24..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "Venus Williams" . - "10" . - "Tennis" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0008a-XML/student.xml deleted file mode 100644 index 9ae75cc8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008a-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus Williams - Tennis - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/mapping.ttl deleted file mode 100644 index f6dc834f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/mapping.ttl +++ /dev/null @@ -1,53 +0,0 @@ -@prefix activity: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:Sport - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a rml:RefObjectMap; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object activity:Sport; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/{Sport}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/output.nq deleted file mode 100644 index 7742ae45..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - "Venus Williams" . - "10" . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/student.csv deleted file mode 100644 index fb130b76..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name,Sport -10,Venus Williams,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/README.md new file mode 100644 index 00000000..eb07d5cc --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/README.md @@ -0,0 +1,92 @@ +## RMLTC0008b-JSON + +**Title**: "Generation of triples referencing object map" + +**Description**: "Tests the mapping specification referencing object map without join" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus Williams", + "Sport": "Tennis" + }] +} + +``` + +**Mapping** +``` +@prefix activity: . +@prefix ex: . +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap ; + rml:predicate ex:Sport + ], [ + rml:object foaf:Person; + rml:predicate rdf:type + ], [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ], [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.ID}/{$.Name}" + ] . + + a rml:RefObjectMap; + rml:parentTriplesMap . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object activity:Sport; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Sport}" + ] . + +``` + +**Output** +``` + . + "Venus Williams" . + "10" . + . + . + + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/mapping.ttl index 81ebfe7d..9aba67e8 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0008b-JSON/mapping.ttl @@ -21,17 +21,17 @@ rml:predicate rdf:type ], [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ], [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" + rml:template "http://example.com/Student/{$.ID}/{$.Name}" ] . a rml:RefObjectMap; @@ -51,5 +51,5 @@ rml:predicate rdf:type ]; rml:subjectMap [ - rml:template "http://example.com/{Sport}" + rml:template "http://example.com/{$.Sport}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/mapping.ttl deleted file mode 100644 index 0b2c01af..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/mapping.ttl +++ /dev/null @@ -1,56 +0,0 @@ -@prefix activity: . -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:Sport - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a rml:RefObjectMap; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object activity:Sport; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/{Sport}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/output.nq deleted file mode 100644 index 9271c2c5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - "Venus Williams" . - "10"^^ . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/resource.sql deleted file mode 100644 index 31e00260..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50), - Sport VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/mapping.ttl deleted file mode 100644 index 0a068c2e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,56 +0,0 @@ -@prefix activity: . -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:Sport - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a rml:RefObjectMap; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object activity:Sport; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/{Sport}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/output.nq deleted file mode 100644 index 9271c2c5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - "Venus Williams" . - "10"^^ . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/resource.sql deleted file mode 100644 index 3ad893a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/mapping.ttl deleted file mode 100644 index 35ffb33c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/mapping.ttl +++ /dev/null @@ -1,77 +0,0 @@ -@prefix activity: . -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rdf: . -@prefix rml: . -@prefix sd: . - -ex:TriplesMap1 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap ex:RefObjectMap1; - rml:predicate ex:Sport - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID.value" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID.value}/{Name.value}" - ] . - -ex:RefObjectMap1 a rml:RefObjectMap; - rml:parentTriplesMap ex:TriplesMap2 . - -ex:TriplesMap2 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Sport - WHERE { - ?x a . - ?x foaf:name ?Sport . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:object activity:Sport; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/{Sport.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/output.nq deleted file mode 100644 index 7742ae45..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - "Venus Williams" . - "10" . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/resource.ttl deleted file mode 100644 index e7007e36..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-SPARQL/resource.ttl +++ /dev/null @@ -1,9 +0,0 @@ -@prefix foaf: . -@prefix ns1: . -@prefix rdf: . - -[] ns1:plays [ a ns1:Sport ; - foaf:name "Tennis" ] ; - rdf:ID "10" ; - foaf:name "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/mapping.ttl deleted file mode 100644 index 08c9aab6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/mapping.ttl +++ /dev/null @@ -1,56 +0,0 @@ -@prefix activity: . -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:Sport - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a rml:RefObjectMap; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:object activity:Sport; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/{Sport}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/output.nq deleted file mode 100644 index 9271c2c5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - "Venus Williams" . - "10"^^ . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/resource.sql deleted file mode 100644 index e9b41d95..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008b-XML/mapping.ttl deleted file mode 100644 index ae1f2f5f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-XML/mapping.ttl +++ /dev/null @@ -1,55 +0,0 @@ -@prefix activity: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:Sport - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a rml:RefObjectMap; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object activity:Sport; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "http://example.com/{Sport}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008b-XML/output.nq deleted file mode 100644 index 7742ae45..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-XML/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - "Venus Williams" . - "10" . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0008b-XML/student.xml deleted file mode 100644 index 9ae75cc8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008b-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus Williams - Tennis - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/mapping.ttl deleted file mode 100644 index 1dd7e877..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name, foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/output.nq deleted file mode 100644 index d36f700c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus Williams" . - "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/student.csv deleted file mode 100644 index fb130b76..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name,Sport -10,Venus Williams,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/README.md new file mode 100644 index 00000000..cb8103a7 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/README.md @@ -0,0 +1,55 @@ +## RMLTC0008c-JSON + +**Title**: "Generation of triples by using multiple predicateMaps within a rml:predicateObjectMap" + +**Description**: "Tests the generation of triples by using multiple predicateMaps within a rml:predicateObjectMap" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus Williams", + "Sport": "Tennis" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:name, foaf:name + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.ID}/{$.Name}" + ] . + +``` + +**Output** +``` + "Venus Williams" . + "Venus Williams" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/mapping.ttl index 3fa6f387..a610a24c 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0008c-JSON/mapping.ttl @@ -13,10 +13,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate ex:name, foaf:name ]; rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" + rml:template "http://example.com/Student/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/mapping.ttl deleted file mode 100644 index e4467dba..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name, foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/output.nq deleted file mode 100644 index d36f700c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus Williams" . - "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/resource.sql deleted file mode 100644 index 31e00260..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-MySQL/resource.sql +++ /dev/null @@ -1,9 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50), - Sport VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/mapping.ttl deleted file mode 100644 index 21bc9fbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name, foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/output.nq deleted file mode 100644 index d36f700c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus Williams" . - "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/resource.sql deleted file mode 100644 index 3ad893a6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-PostgreSQL/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/mapping.ttl deleted file mode 100644 index 54f6196f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/mapping.ttl +++ /dev/null @@ -1,36 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate ex:name, foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID.value}/{Name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/output.nq deleted file mode 100644 index d36f700c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus Williams" . - "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/resource.ttl deleted file mode 100644 index e7007e36..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-SPARQL/resource.ttl +++ /dev/null @@ -1,9 +0,0 @@ -@prefix foaf: . -@prefix ns1: . -@prefix rdf: . - -[] ns1:plays [ a ns1:Sport ; - foaf:name "Tennis" ] ; - rdf:ID "10" ; - foaf:name "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/mapping.ttl deleted file mode 100644 index add0e4ae..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name, foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/output.nq deleted file mode 100644 index d36f700c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus Williams" . - "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/resource.sql deleted file mode 100644 index e9b41d95..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-SQLServer/resource.sql +++ /dev/null @@ -1,8 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0008c-XML/mapping.ttl deleted file mode 100644 index 188d69e8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name, foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0008c-XML/output.nq deleted file mode 100644 index d36f700c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-XML/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "Venus Williams" . - "Venus Williams" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0008c-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0008c-XML/student.xml deleted file mode 100644 index 9ae75cc8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0008c-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - 10 - Venus Williams - Tennis - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/mapping.ttl deleted file mode 100644 index 560934a1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/mapping.ttl +++ /dev/null @@ -1,48 +0,0 @@ -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "sport.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/output.nq deleted file mode 100644 index b0b89f8b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/README.md new file mode 100644 index 00000000..b0397e49 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/README.md @@ -0,0 +1,103 @@ +## RMLTC0009a-JSON + +**Title**: "Generation of triples from foreign key relations" + +**Description**: "Test foreign key relationships among logical tables" + +**Error expected?** No + +**Input** +``` +{ + "students" : [ + { + "ID": 10, + "Sport": 100, + "Name": "Venus Williams" + }, + { + "ID": 20, + "Name": "Demi Moore" + } + ] +} + +``` + +**Input 1** +``` +{ + "sports": [ + { + "ID": 100, + "Name": "Tennis" + } + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdfs: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ a rml:RefObjectMap; + rml:joinCondition [ + rml:child "$.Sport"; + rml:parent "$.ID" + ]; + rml:parentTriplesMap + ]; + rml:predicate + ]; + rml:subjectMap [ + rml:template "http://example.com/resource/student_{$.ID}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.sports[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "sport.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate rdfs:label + ]; + rml:subjectMap [ + rml:template "http://example.com/resource/sport_{$.ID}" + ] . + +``` + +**Output** +``` + "Venus Williams" . + "Demi Moore" . + "Tennis" . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/mapping.ttl index 906ab93e..596bd136 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0009a-JSON/mapping.ttl @@ -13,21 +13,21 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ], [ rml:objectMap [ a rml:RefObjectMap; rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" + rml:child "$.Sport"; + rml:parent "$.ID" ]; rml:parentTriplesMap ]; rml:predicate ]; rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID}" + rml:template "http://example.com/resource/student_{$.ID}" ] . a rml:TriplesMap; @@ -41,10 +41,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate rdfs:label ]; rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID}" + rml:template "http://example.com/resource/sport_{$.ID}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/mapping.ttl deleted file mode 100644 index 6de77ad5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/output.nq deleted file mode 100644 index b0b89f8b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/resource.sql deleted file mode 100644 index 6775e444..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-MySQL/resource.sql +++ /dev/null @@ -1,18 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - Sport VARCHAR(50), - Name VARCHAR(50) -); -INSERT INTO student values ('10', '100', 'Venus Williams'); -INSERT INTO student values ('20', NULL , 'Demi Moore'); - -DROP TABLE IF EXISTS test.sport; - -CREATE TABLE sport ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO sport values ('100', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/mapping.ttl deleted file mode 100644 index b2be3662..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/note.md b/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/note.md deleted file mode 100644 index 7c87bd86..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/note.md +++ /dev/null @@ -1,4 +0,0 @@ -## Change note - -Changes `Sport.ID` column from `INTEGER` to `VARCHAR` since postgres does not support joining on -columns of different types. diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/output.nq deleted file mode 100644 index b0b89f8b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/resource.sql deleted file mode 100644 index 0f674565..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-PostgreSQL/resource.sql +++ /dev/null @@ -1,17 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Sport" VARCHAR(50), - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', '100', 'Venus Williams'); -INSERT INTO student values ('20', NULL , 'Demi Moore'); - -DROP TABLE IF EXISTS sport; - -CREATE TABLE sport ( - "ID" VARCHAR(50), - "Name" VARCHAR(50) -); -INSERT INTO sport values ('100', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/mapping.ttl deleted file mode 100644 index 907d5e2a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/mapping.ttl +++ /dev/null @@ -1,79 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rdfs: . -@prefix rml: . -@prefix sd: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID ?Sport - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - ?sportObject . - OPTIONAL { ?sportObject a ; - rdf:ID ?Sport . } - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?ID ?Name - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID.value}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/output.nq deleted file mode 100644 index b0b89f8b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/resource1.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/resource1.ttl deleted file mode 100644 index 676bdb38..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/resource1.ttl +++ /dev/null @@ -1,13 +0,0 @@ -@prefix foaf: . -@prefix ns1: . -@prefix rdf: . - -[] ns1:plays [ a ns1:Sport ; - rdf:ID "100" ] ; - rdf:ID "10" ; - foaf:name "Venus Williams" . - -[] ns1:plays [ a ns1:Sport ] ; - rdf:ID "20" ; - foaf:name "Demi Moore" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/resource2.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/resource2.ttl deleted file mode 100644 index d69ef52e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SPARQL/resource2.ttl +++ /dev/null @@ -1,6 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "100" ; - foaf:name "Tennis" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/mapping.ttl deleted file mode 100644 index bb76cc7b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/output.nq deleted file mode 100644 index b0b89f8b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/resource.sql deleted file mode 100644 index 2b79a5d4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-SQLServer/resource.sql +++ /dev/null @@ -1,17 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "Sport" VARCHAR(50), - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', '100', 'Venus Williams'); -INSERT INTO student values ('20', NULL , 'Demi Moore'); - -DROP TABLE IF EXISTS sport; - -CREATE TABLE sport ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO sport values ('100', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009a-XML/mapping.ttl deleted file mode 100644 index 675df8ee..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/mapping.ttl +++ /dev/null @@ -1,50 +0,0 @@ -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/sports/sport"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "sport.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/sport_{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009a-XML/output.nq deleted file mode 100644 index b0b89f8b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - "Tennis" . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/sport.xml b/src/test/resources/new-test-cases/core/RMLTC0009a-XML/sport.xml deleted file mode 100644 index 1c02bdb8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/sport.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 100 - Tennis - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0009a-XML/student.xml deleted file mode 100644 index a66c01aa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009a-XML/student.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - 10 - Venus Williams - 100 - - - 20 - Demi Moore - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/mapping.ttl deleted file mode 100644 index 10635ed6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/mapping.ttl +++ /dev/null @@ -1,54 +0,0 @@ -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:graph ; - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:graph ; - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "sport.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/sport_{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/output.nq deleted file mode 100644 index aef6b08c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/output.nq +++ /dev/null @@ -1,8 +0,0 @@ - . - "Venus Williams" . - . - "Demi Moore" . - . - "Tennis" . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/sport.csv b/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/sport.csv deleted file mode 100644 index 800f4446..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/sport.csv +++ /dev/null @@ -1,2 +0,0 @@ -ID,Name -100,Tennis diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/student.csv deleted file mode 100644 index 1ed4c175..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-CSV/student.csv +++ /dev/null @@ -1,3 +0,0 @@ -ID,Sport,Name -10,100,Venus Williams -20,,Demi Moore diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/README.md new file mode 100644 index 00000000..c02e44ff --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/README.md @@ -0,0 +1,113 @@ +## RMLTC0009b-JSON + +**Title**: "Generation of triples to multiple graphs" + +**Description**: "Test that results from distinct parts of the mapping can be directed to different target graphs." + +**Error expected?** No + +**Input** +``` +{ + "students" : [ + { + "ID": 10, + "Sport": 100, + "Name": "Venus Williams" + }, + { + "ID": 20, + "Name": "Demi Moore" + } + ] +} + +``` + +**Input 1** +``` +{ + "sports": [ + { + "ID": 100, + "Name": "Tennis" + } + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdfs: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:graph ; + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ], [ + rml:graph ; + rml:objectMap [ a rml:RefObjectMap; + rml:joinCondition [ + rml:child "$.Sport"; + rml:parent "$.ID" + ]; + rml:parentTriplesMap + ]; + rml:predicate + ]; + rml:subjectMap [ + rml:class ; + rml:graph ; + rml:template "http://example.com/resource/student_{$.ID}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.sports[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "sport.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate rdfs:label + ]; + rml:subjectMap [ + rml:class ; + rml:graph ; + rml:template "http://example.com/resource/sport_{$.ID}" + ] . + +``` + +**Output** +``` + . + "Venus Williams" . + . + "Demi Moore" . + . + "Tennis" . + . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/mapping.ttl index 026676d6..4a12b17f 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0009b-JSON/mapping.ttl @@ -14,15 +14,15 @@ rml:predicateObjectMap [ rml:graph ; rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate foaf:name ], [ rml:graph ; rml:objectMap [ a rml:RefObjectMap; rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" + rml:child "$.Sport"; + rml:parent "$.ID" ]; rml:parentTriplesMap ]; @@ -31,7 +31,7 @@ rml:subjectMap [ rml:class ; rml:graph ; - rml:template "http://example.com/resource/student_{ID}" + rml:template "http://example.com/resource/student_{$.ID}" ] . a rml:TriplesMap; @@ -45,12 +45,12 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate rdfs:label ]; rml:subjectMap [ rml:class ; rml:graph ; - rml:template "http://example.com/resource/sport_{ID}" + rml:template "http://example.com/resource/sport_{$.ID}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/mapping.ttl deleted file mode 100644 index 26e61b51..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/mapping.ttl +++ /dev/null @@ -1,57 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:graph ; - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:graph ; - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/sport_{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/output.nq deleted file mode 100644 index aef6b08c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/output.nq +++ /dev/null @@ -1,8 +0,0 @@ - . - "Venus Williams" . - . - "Demi Moore" . - . - "Tennis" . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/resource.sql deleted file mode 100644 index 18cb6cd9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-MySQL/resource.sql +++ /dev/null @@ -1,18 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - Sport VARCHAR(50), - Name VARCHAR(50) -); -INSERT INTO student values ('10', '100', 'Venus Williams'); -INSERT INTO student values ('20', NULL, 'Demi Moore'); - -DROP TABLE IF EXISTS test.sport; - -CREATE TABLE sport ( - ID INTEGER, - Name VARCHAR(50) -); -INSERT INTO sport values ('100', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/mapping.ttl deleted file mode 100644 index b04272f3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,57 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:graph ; - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:graph ; - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/sport_{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/note.md b/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/note.md deleted file mode 100644 index 7c87bd86..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/note.md +++ /dev/null @@ -1,4 +0,0 @@ -## Change note - -Changes `Sport.ID` column from `INTEGER` to `VARCHAR` since postgres does not support joining on -columns of different types. diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/output.nq deleted file mode 100644 index aef6b08c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/output.nq +++ /dev/null @@ -1,8 +0,0 @@ - . - "Venus Williams" . - . - "Demi Moore" . - . - "Tennis" . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/resource.sql deleted file mode 100644 index be021479..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-PostgreSQL/resource.sql +++ /dev/null @@ -1,17 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Sport" VARCHAR(50), - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', '100', 'Venus Williams'); -INSERT INTO student values ('20', NULL, 'Demi Moore'); - -DROP TABLE IF EXISTS sport; - -CREATE TABLE sport ( - "ID" VARCHAR(50), - "Name" VARCHAR(50) -); -INSERT INTO sport values ('100', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/mapping.ttl deleted file mode 100644 index 18ce4dc3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/mapping.ttl +++ /dev/null @@ -1,85 +0,0 @@ -@prefix foaf: . -@prefix formats: . -@prefix rdfs: . -@prefix rml: . -@prefix sd: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID ?Sport - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - ?sportObject . - OPTIONAL { ?sportObject a ; - rdf:ID ?Sport . } - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:graph ; - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate foaf:name - ], [ - rml:graph ; - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport.value"; - rml:parent "ID.value" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/student_{ID.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?ID ?Name - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name.value" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/sport_{ID.value}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/output.nq deleted file mode 100644 index aef6b08c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/output.nq +++ /dev/null @@ -1,8 +0,0 @@ - . - "Venus Williams" . - . - "Demi Moore" . - . - "Tennis" . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/resource1.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/resource1.ttl deleted file mode 100644 index 676bdb38..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/resource1.ttl +++ /dev/null @@ -1,13 +0,0 @@ -@prefix foaf: . -@prefix ns1: . -@prefix rdf: . - -[] ns1:plays [ a ns1:Sport ; - rdf:ID "100" ] ; - rdf:ID "10" ; - foaf:name "Venus Williams" . - -[] ns1:plays [ a ns1:Sport ] ; - rdf:ID "20" ; - foaf:name "Demi Moore" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/resource2.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/resource2.ttl deleted file mode 100644 index d69ef52e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SPARQL/resource2.ttl +++ /dev/null @@ -1,6 +0,0 @@ -@prefix foaf: . -@prefix rdf: . - -[] rdf:ID "100" ; - foaf:name "Tennis" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/mapping.ttl deleted file mode 100644 index fb79327e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/mapping.ttl +++ /dev/null @@ -1,57 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:graph ; - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:graph ; - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/sport_{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/output.nq deleted file mode 100644 index aef6b08c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/output.nq +++ /dev/null @@ -1,8 +0,0 @@ - . - "Venus Williams" . - . - "Demi Moore" . - . - "Tennis" . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/resource.sql deleted file mode 100644 index ac6eca67..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-SQLServer/resource.sql +++ /dev/null @@ -1,18 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Sport" VARCHAR(50), - "Name" VARCHAR(50) -); -INSERT INTO student values ('10', '100', 'Venus Williams'); -INSERT INTO student values ('20', NULL, 'Demi Moore'); - -DROP TABLE IF EXISTS sport; - -CREATE TABLE sport ( - "ID" INTEGER, - "Name" VARCHAR(50) -); -INSERT INTO sport values ('100', 'Tennis'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009b-XML/mapping.ttl deleted file mode 100644 index 010b4c72..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/mapping.ttl +++ /dev/null @@ -1,56 +0,0 @@ -@prefix foaf: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:graph ; - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:graph ; - rml:objectMap [ a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "ID" - ]; - rml:parentTriplesMap - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/student_{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/sports/sport"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "sport.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:class ; - rml:graph ; - rml:template "http://example.com/resource/sport_{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009b-XML/output.nq deleted file mode 100644 index aef6b08c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/output.nq +++ /dev/null @@ -1,8 +0,0 @@ - . - "Venus Williams" . - . - "Demi Moore" . - . - "Tennis" . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/sport.xml b/src/test/resources/new-test-cases/core/RMLTC0009b-XML/sport.xml deleted file mode 100644 index 1c02bdb8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/sport.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - 100 - Tennis - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0009b-XML/student.xml deleted file mode 100644 index a66c01aa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009b-XML/student.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - 10 - Venus Williams - 100 - - - 20 - Demi Moore - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/mapping.ttl deleted file mode 100644 index d91b6e5a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Name, COUNT(Sport) - FROM Student - GROUP BY Name - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/output.nq deleted file mode 100644 index f789cbf8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/resource.sql deleted file mode 100644 index 4076cd0f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-MySQL/resource.sql +++ /dev/null @@ -1,21 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Sport; -DROP TABLE IF EXISTS test.Student; - -CREATE TABLE Sport ( -ID integer, -Name varchar (50), -PRIMARY KEY (ID) -); - -CREATE TABLE Student ( -ID integer, -Name varchar(50), -Sport integer, -PRIMARY KEY (ID), -FOREIGN KEY(Sport) REFERENCES Sport(ID) -); - -INSERT INTO Sport (ID, Name) VALUES (100,'Tennis'); -INSERT INTO Student (ID, Name, Sport) VALUES (10,'Venus Williams', 100); -INSERT INTO Student (ID, Name, Sport) VALUES (20,'Demi Moore', NULL); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/mapping.ttl deleted file mode 100644 index ac18f544..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Name, COUNT(Sport) - FROM Student - GROUP BY Name - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/output.nq deleted file mode 100644 index f789cbf8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/resource.sql deleted file mode 100644 index 068f4d87..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-PostgreSQL/resource.sql +++ /dev/null @@ -1,20 +0,0 @@ -DROP TABLE IF EXISTS Sport; -DROP TABLE IF EXISTS Student; - -CREATE TABLE Sport ( -ID integer, -Name varchar (50), -PRIMARY KEY (ID) -); - -CREATE TABLE Student ( -ID integer, -Name varchar(50), -Sport integer, -PRIMARY KEY (ID), -FOREIGN KEY(Sport) REFERENCES Sport(ID) -); - -INSERT INTO Sport (ID, Name) VALUES (100,'Tennis'); -INSERT INTO Student (ID, Name, Sport) VALUES (10,'Venus Williams', 100); -INSERT INTO Student (ID, Name, Sport) VALUES (20,'Demi Moore', NULL); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/mapping.ttl deleted file mode 100644 index 23c4f1dd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Name, COUNT(Sport) - FROM Student - GROUP BY Name - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/output.nq deleted file mode 100644 index f789cbf8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Venus Williams" . - "Demi Moore" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/resource.sql deleted file mode 100644 index e23c539d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009c-SQLServer/resource.sql +++ /dev/null @@ -1,21 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Sport; -DROP TABLE IF EXISTS Student; - -CREATE TABLE Sport ( -ID integer, -Name varchar (50), -PRIMARY KEY (ID) -); - -CREATE TABLE Student ( -ID integer, -Name varchar(50), -Sport integer, -PRIMARY KEY (ID), -FOREIGN KEY(Sport) REFERENCES Sport(ID) -); - -INSERT INTO Sport (ID, Name) VALUES (100,'Tennis'); -INSERT INTO Student (ID, Name, Sport) VALUES (10,'Venus Williams', 100); -INSERT INTO Student (ID, Name, Sport) VALUES (20,'Demi Moore', NULL); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/mapping.ttl deleted file mode 100644 index ce5b8cd7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Name, COUNT(Sport) as SPORTCOUNT - FROM Student - GROUP BY Name - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "SPORTCOUNT" - ]; - rml:predicate ex:numSport - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/output.nq deleted file mode 100644 index 9ecd9fc2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - "Venus Williams" . - "1"^^ . - "Demi Moore" . - "0"^^ . - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/resource.sql deleted file mode 100644 index a5947eb9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-MySQL/resource.sql +++ /dev/null @@ -1,21 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Student; -DROP TABLE IF EXISTS test.Sport; - -CREATE TABLE Sport ( -ID integer, -Name varchar (50), -PRIMARY KEY (ID) -); - -CREATE TABLE Student ( -ID integer, -Name varchar(50), -Sport integer, -PRIMARY KEY (ID), -FOREIGN KEY(Sport) REFERENCES Sport(ID) -); - -INSERT INTO Sport (ID, Name) VALUES (100,'Tennis'); -INSERT INTO Student (ID, Name, Sport) VALUES (10,'Venus Williams', 100); -INSERT INTO Student (ID, Name, Sport) VALUES (20,'Demi Moore', NULL); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/mapping.ttl deleted file mode 100644 index a701020d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Name, COUNT(Sport) as SPORTCOUNT - FROM Student - GROUP BY Name - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "sportcount" - ]; - rml:predicate ex:numSport - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/output.nq deleted file mode 100644 index 9ecd9fc2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - "Venus Williams" . - "1"^^ . - "Demi Moore" . - "0"^^ . - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/resource.sql deleted file mode 100644 index d8ba9270..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-PostgreSQL/resource.sql +++ /dev/null @@ -1,20 +0,0 @@ -DROP TABLE IF EXISTS Student; -DROP TABLE IF EXISTS Sport; - -CREATE TABLE Sport ( -ID integer, -Name varchar (50), -PRIMARY KEY (ID) -); - -CREATE TABLE Student ( -ID integer, -Name varchar(50), -Sport integer, -PRIMARY KEY (ID), -FOREIGN KEY(Sport) REFERENCES Sport(ID) -); - -INSERT INTO Sport (ID, Name) VALUES (100,'Tennis'); -INSERT INTO Student (ID, Name, Sport) VALUES (10,'Venus Williams', 100); -INSERT INTO Student (ID, Name, Sport) VALUES (20,'Demi Moore', NULL); diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/mapping.ttl deleted file mode 100644 index e50b0333..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Name, COUNT(Sport) as SPORTCOUNT - FROM Student - GROUP BY Name - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "SPORTCOUNT" - ]; - rml:predicate ex:numSport - ]; - rml:subjectMap [ - rml:template "http://example.com/resource/student_{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/output.nq deleted file mode 100644 index 9ecd9fc2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - "Venus Williams" . - "1"^^ . - "Demi Moore" . - "0"^^ . - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/resource.sql deleted file mode 100644 index ad1775c0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0009d-SQLServer/resource.sql +++ /dev/null @@ -1,21 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Student; -DROP TABLE IF EXISTS Sport; - -CREATE TABLE Sport ( -ID integer, -Name varchar (50), -PRIMARY KEY (ID) -); - -CREATE TABLE Student ( -ID integer, -Name varchar(50), -Sport integer, -PRIMARY KEY (ID), -FOREIGN KEY(Sport) REFERENCES Sport(ID) -); - -INSERT INTO Sport (ID, Name) VALUES (100,'Tennis'); -INSERT INTO Student (ID, Name, Sport) VALUES (10,'Venus Williams', 100); -INSERT INTO Student (ID, Name, Sport) VALUES (20,'Demi Moore', NULL); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/country_info.csv b/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/country_info.csv deleted file mode 100644 index 67082bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/country_info.csv +++ /dev/null @@ -1,4 +0,0 @@ -Country Code,Name,ISO 3166 -1,"Bolivia, Plurinational State of",BO -2,"Ireland",IE -3,"Saint Martin (French part)",MF diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/mapping.ttl deleted file mode 100644 index c1b0e5ce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_info.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/output.nq deleted file mode 100644 index 29911d6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/README.md new file mode 100644 index 00000000..37bc7686 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/README.md @@ -0,0 +1,63 @@ +## RMLTC0010a-JSON + +**Title**: "Template with table column with blank space" + +**Description**: "Tests a template with blank space in column value" + +**Error expected?** No + +**Input** +``` +{ + "countries": [{ + "Country Code": 1, + "Name":"Bolivia, Plurinational State of", + "ISO 3166": "BO" + }, { + "Country Code": 2, + "Name":"Ireland", + "ISO 3166": "IE" + }, { + "Country Code": 3, + "Name":"Saint Martin (French part)", + "ISO 3166": "MF" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_info.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:name + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.['Country Code']}" + ] . + +``` + +**Output** +``` + "Bolivia, Plurinational State of" . + "Ireland" . + "Saint Martin (French part)" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/mapping.ttl index 68e3dd35..370edb7c 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0010a-JSON/mapping.ttl @@ -12,7 +12,7 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate ex:name ]; diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/mapping.ttl deleted file mode 100644 index 27735605..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/output.nq deleted file mode 100644 index 29911d6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/resource.sql deleted file mode 100644 index 7a7aa74f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-MySQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.country_info; - -CREATE TABLE country_info ( - `Country Code` INTEGER, - Name VARCHAR(100), - `ISO 3166` VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/mapping.ttl deleted file mode 100644 index 2c3734eb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/output.nq deleted file mode 100644 index 29911d6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/resource.sql deleted file mode 100644 index 12f1652d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-PostgreSQL/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS country_info; - -CREATE TABLE country_info ( - "Country Code" INTEGER, - "Name" VARCHAR(100), - "ISO 3166" VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/mapping.ttl deleted file mode 100644 index fdca61f9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/output.nq deleted file mode 100644 index 29911d6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/resource.sql deleted file mode 100644 index 8c20c7bc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010a-SQLServer/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS country_info; - -CREATE TABLE country_info ( - "Country Code" INTEGER, - "Name" VARCHAR(100), - "ISO 3166" VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/country_info.csv b/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/country_info.csv deleted file mode 100644 index c550dbf5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/country_info.csv +++ /dev/null @@ -1,4 +0,0 @@ -Country Code,Name,ISO 3166 -1,"Bolivia, Plurinational State of",BO -2,Ireland,IE -3,"Saint Martin (French part)",MF diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/mapping.ttl deleted file mode 100644 index c425b43e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_info.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/output.nq deleted file mode 100644 index c92a08b0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/README.md new file mode 100644 index 00000000..f2d50d64 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/README.md @@ -0,0 +1,63 @@ +## RMLTC0010b-JSON + +**Title**: "Template with table columns with special chars" + +**Description**: "Tests a template with special chars in column value" + +**Error expected?** No + +**Input** +``` +{ + "countries": [{ + "Country Code": 1, + "Name":"Bolivia, Plurinational State of", + "ISO 3166": "BO" + }, { + "Country Code": 2, + "Name":"Ireland", + "ISO 3166": "IE" + }, { + "Country Code": 3, + "Name":"Saint Martin (French part)", + "ISO 3166": "MF" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_info.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:name + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.['Country Code']}/{$.Name}" + ] . + +``` + +**Output** +``` + "Bolivia, Plurinational State of" . + "Ireland" . + "Saint Martin (French part)" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/mapping.ttl index 60f6394e..1f9f4db6 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0010b-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate ex:name ]; rml:subjectMap [ - rml:template "http://example.com/{$.['Country Code']}/{Name}" + rml:template "http://example.com/{$.['Country Code']}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/mapping.ttl deleted file mode 100644 index 4f3f48c8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/output.nq deleted file mode 100644 index c92a08b0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/resource.sql deleted file mode 100644 index 7a7aa74f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-MySQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.country_info; - -CREATE TABLE country_info ( - `Country Code` INTEGER, - Name VARCHAR(100), - `ISO 3166` VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/mapping.ttl deleted file mode 100644 index 195c6fb6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/output.nq deleted file mode 100644 index c92a08b0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/resource.sql deleted file mode 100644 index 12f1652d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-PostgreSQL/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS country_info; - -CREATE TABLE country_info ( - "Country Code" INTEGER, - "Name" VARCHAR(100), - "ISO 3166" VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/mapping.ttl deleted file mode 100644 index f925e352..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/output.nq deleted file mode 100644 index c92a08b0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/resource.sql deleted file mode 100644 index 8c20c7bc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-SQLServer/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS country_info; - -CREATE TABLE country_info ( - "Country Code" INTEGER, - "Name" VARCHAR(100), - "ISO 3166" VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-XML/country_info.xml b/src/test/resources/new-test-cases/core/RMLTC0010b-XML/country_info.xml deleted file mode 100644 index c47aa6ab..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-XML/country_info.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 1 - Bolivia, Plurinational State of - BO - - - 2 - Ireland - IE - - - 3 - Saint Martin (French part) - MF - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010b-XML/mapping.ttl deleted file mode 100644 index 44a0ce2d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/countries/country"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_info.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Name" - ]; - rml:predicate ex:name - ]; - rml:subjectMap [ - rml:template "http://example.com/{CountryCode}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010b-XML/output.nq deleted file mode 100644 index c92a08b0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010b-XML/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "Bolivia, Plurinational State of" . - "Ireland" . - "Saint Martin (French part)" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/country_info.csv b/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/country_info.csv deleted file mode 100644 index 2d42678e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/country_info.csv +++ /dev/null @@ -1,4 +0,0 @@ -Country Code,Name,ISO 3166 -1,"Bolivia, Plurinational State of",BO -2,Ireland,IE -3,Saint Martin (French part),MF diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/mapping.ttl deleted file mode 100644 index 715bbf2a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_info.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "\\{\\{\\{ {ISO 3166} \\}\\}\\}"; - rml:termType rml:Literal - ]; - rml:predicate ex:code - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/output.nq deleted file mode 100644 index 5c7e1080..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-CSV/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "{{{ BO }}}" . - "{{{ IE }}}" . - "{{{ MF }}}" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/README.md new file mode 100644 index 00000000..67b87e59 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/README.md @@ -0,0 +1,64 @@ +## RMLTC0010c-JSON + +**Title**: "Template with table columns with special chars and backslashes" + +**Description**: "Tests a template with special chars in reference value and backslash escapes in string templates" + +**Error expected?** No + +**Input** +``` +{ + "countries": [{ + "Country Code": 1, + "Name":"Bolivia, Plurinational State of", + "ISO 3166": "BO" + }, { + "Country Code": 2, + "Name":"Ireland", + "ISO 3166": "IE" + }, { + "Country Code": 3, + "Name":"Saint Martin (French part)", + "ISO 3166": "MF" + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_info.json" + ] + ]; + rml:predicateObjectMap [ + rml:predicate ex:code; + rml:objectMap [ + rml:template "\\{\\{\\{ {$.['ISO 3166']} \\}\\}\\}"; + rml:termType rml:Literal + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.['Country Code']}/{$.Name}" + ] . + +``` + +**Output** +``` + "{{{ BO }}}" . + "{{{ IE }}}" . + "{{{ MF }}}" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/mapping.ttl index 67e61d6e..fb1afc8d 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0010c-JSON/mapping.ttl @@ -18,5 +18,5 @@ ] ]; rml:subjectMap [ - rml:template "http://example.com/{$.['Country Code']}/{Name}" + rml:template "http://example.com/{$.['Country Code']}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/mapping.ttl deleted file mode 100644 index 76afab7e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "\\{\\{\\{ {ISO 3166} \\}\\}\\}"; - rml:termType rml:Literal - ]; - rml:predicate ex:code - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/output.nq deleted file mode 100644 index 5c7e1080..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "{{{ BO }}}" . - "{{{ IE }}}" . - "{{{ MF }}}" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/resource.sql deleted file mode 100644 index 7a7aa74f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-MySQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.country_info; - -CREATE TABLE country_info ( - `Country Code` INTEGER, - Name VARCHAR(100), - `ISO 3166` VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/mapping.ttl deleted file mode 100644 index 932ed73c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "\\{\\{\\{ {ISO 3166} \\}\\}\\}"; - rml:termType rml:Literal - ]; - rml:predicate ex:code - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/output.nq deleted file mode 100644 index 5c7e1080..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "{{{ BO }}}" . - "{{{ IE }}}" . - "{{{ MF }}}" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/resource.sql deleted file mode 100644 index 12f1652d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-PostgreSQL/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS country_info; - -CREATE TABLE country_info ( - "Country Code" INTEGER, - "Name" VARCHAR(100), - "ISO 3166" VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/mapping.ttl deleted file mode 100644 index 8a72f22a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "country_info" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "\\{\\{\\{ {ISO 3166} \\}\\}\\}"; - rml:termType rml:Literal - ]; - rml:predicate ex:code - ]; - rml:subjectMap [ - rml:template "http://example.com/{Country Code}/{Name}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/output.nq deleted file mode 100644 index 5c7e1080..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "{{{ BO }}}" . - "{{{ IE }}}" . - "{{{ MF }}}" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/resource.sql deleted file mode 100644 index 8c20c7bc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-SQLServer/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS country_info; - -CREATE TABLE country_info ( - "Country Code" INTEGER, - "Name" VARCHAR(100), - "ISO 3166" VARCHAR(10) -); -INSERT INTO country_info values ('1', 'Bolivia, Plurinational State of', 'BO'); -INSERT INTO country_info values ('2', 'Ireland', 'IE'); -INSERT INTO country_info values ('3', 'Saint Martin (French part)', 'MF'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-XML/country_info.xml b/src/test/resources/new-test-cases/core/RMLTC0010c-XML/country_info.xml deleted file mode 100644 index c47aa6ab..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-XML/country_info.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 1 - Bolivia, Plurinational State of - BO - - - 2 - Ireland - IE - - - 3 - Saint Martin (French part) - MF - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0010c-XML/mapping.ttl deleted file mode 100644 index 4ecb5718..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-XML/mapping.ttl +++ /dev/null @@ -1,22 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/countries/country"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_info.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "\\{\\{\\{ {ISO3166} \\}\\}\\}"; - rml:termType rml:Literal - ]; - rml:predicate ex:code - ]; - rml:subjectMap [ - rml:template "http://example.com/{CountryCode}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0010c-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0010c-XML/output.nq deleted file mode 100644 index 5c7e1080..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0010c-XML/output.nq +++ /dev/null @@ -1,4 +0,0 @@ - "{{{ BO }}}" . - "{{{ IE }}}" . - "{{{ MF }}}" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/mapping.ttl deleted file mode 100644 index b99f63b0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/mapping.ttl +++ /dev/null @@ -1,72 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Student.ID as ID, - Student.FirstName as FirstName, - Student.LastName as LastName, - Sport.Description as Description, - Sport.ID as Sport_ID - FROM Student,Sport,Student_Sport - WHERE Student.ID = Student_Sport.ID_Student - AND Sport.ID = Student_Sport.ID_Sport; - """; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ], [ - rml:objectMap [ - rml:template "http://example.com/{Sport_ID}/{Description}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{FirstName};{LastName}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT * FROM Sport; - """; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Description" - ]; - rml:predicate ex:description - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Description}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/output.nq deleted file mode 100644 index 8d0bda97..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/output.nq +++ /dev/null @@ -1,20 +0,0 @@ - "Tennis" . - "110"^^ . - . - "Williams" . - "Venus" . - "10"^^ . - "Football" . - "111"^^ . - . - "Villa" . - "David" . - "12"^^ . - "Formula1" . - "112"^^ . - "Alonso" . - "Fernando" . - "11"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/resource.sql deleted file mode 100644 index d5806a68..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-MySQL/resource.sql +++ /dev/null @@ -1,36 +0,0 @@ -USE test; -SET FOREIGN_KEY_CHECKS = 0; -DROP TABLE IF EXISTS test.Student_Sport; -DROP TABLE IF EXISTS test.Sport; -DROP TABLE IF EXISTS test.Student; -SET FOREIGN_KEY_CHECKS = 1; - -CREATE TABLE Student ( -ID integer PRIMARY KEY, -FirstName varchar(50), -LastName varchar(50) -); -CREATE TABLE Sport ( -ID integer PRIMARY KEY, -Description varchar(50) -); -CREATE TABLE Student_Sport ( -ID_Student integer, -ID_Sport integer, -PRIMARY KEY (ID_Student,ID_Sport), -FOREIGN KEY (ID_Student) REFERENCES Student(ID), -FOREIGN KEY (ID_Sport) REFERENCES Sport(ID) -); - -INSERT INTO Student (ID,FirstName,LastName) VALUES (10,'Venus', 'Williams'); -INSERT INTO Student (ID,FirstName,LastName) VALUES (11,'Fernando', 'Alonso'); -INSERT INTO Student (ID,FirstName,LastName) VALUES (12,'David', 'Villa'); - -INSERT INTO Sport (ID, Description) VALUES (110,'Tennis'); -INSERT INTO Sport (ID, Description) VALUES (111,'Football'); -INSERT INTO Sport (ID, Description) VALUES (112,'Formula1'); - -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (10,110); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,111); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,112); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (12,111); diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/mapping.ttl deleted file mode 100644 index 00faefd1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,72 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Student.ID as ID, - Student.FirstName as FirstName, - Student.LastName as LastName, - Sport.Description as Description, - Sport.ID as Sport_ID - FROM Student,Sport,Student_Sport - WHERE Student.ID = Student_Sport.ID_Student - AND Sport.ID = Student_Sport.ID_Sport; - """; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "id" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "firstname" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "lastname" - ]; - rml:predicate ex:lastName - ], [ - rml:objectMap [ - rml:template "http://example.com/{sport_id}/{description}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/{id}/{firstname};{lastname}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT * FROM Sport ; - """; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "id" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "description" - ]; - rml:predicate ex:description - ]; - rml:subjectMap [ - rml:template "http://example.com/{id}/{description}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/output.nq deleted file mode 100644 index 8d0bda97..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/output.nq +++ /dev/null @@ -1,20 +0,0 @@ - "Tennis" . - "110"^^ . - . - "Williams" . - "Venus" . - "10"^^ . - "Football" . - "111"^^ . - . - "Villa" . - "David" . - "12"^^ . - "Formula1" . - "112"^^ . - "Alonso" . - "Fernando" . - "11"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/resource.sql deleted file mode 100644 index a256aa31..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-PostgreSQL/resource.sql +++ /dev/null @@ -1,33 +0,0 @@ -DROP TABLE IF EXISTS Student_Sport; -DROP TABLE IF EXISTS Sport CASCADE; -DROP TABLE IF EXISTS Student; - -CREATE TABLE Student ( -ID integer PRIMARY KEY, -FirstName varchar(50), -LastName varchar(50) -); -CREATE TABLE Sport ( -ID integer PRIMARY KEY, -Description varchar(50) -); -CREATE TABLE Student_Sport ( -ID_Student integer, -ID_Sport integer, -PRIMARY KEY (ID_Student,ID_Sport), -FOREIGN KEY (ID_Student) REFERENCES Student(ID), -FOREIGN KEY (ID_Sport) REFERENCES Sport(ID) -); - -INSERT INTO Student (ID,FirstName,LastName) VALUES (10,'Venus', 'Williams'); -INSERT INTO Student (ID,FirstName,LastName) VALUES (11,'Fernando', 'Alonso'); -INSERT INTO Student (ID,FirstName,LastName) VALUES (12,'David', 'Villa'); - -INSERT INTO Sport (ID, Description) VALUES (110,'Tennis'); -INSERT INTO Sport (ID, Description) VALUES (111,'Football'); -INSERT INTO Sport (ID, Description) VALUES (112,'Formula1'); - -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (10,110); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,111); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,112); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (12,111); diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/mapping.ttl deleted file mode 100644 index 1f3daafb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/mapping.ttl +++ /dev/null @@ -1,72 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Student.ID as ID, - Student.FirstName as FirstName, - Student.LastName as LastName, - Sport.Description as Description, - Sport.ID as Sport_ID - FROM Student,Sport,Student_Sport - WHERE Student.ID = Student_Sport.ID_Student - AND Sport.ID = Student_Sport.ID_Sport; - """; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ], [ - rml:objectMap [ - rml:template "http://example.com/{Sport_ID}/{Description}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{FirstName};{LastName}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT * FROM Sport ; - """; - rml:referenceFormulation rml:SQL2008Query; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "Description" - ]; - rml:predicate ex:description - ]; - rml:subjectMap [ - rml:template "http://example.com/{ID}/{Description}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/output.nq deleted file mode 100644 index 8d0bda97..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/output.nq +++ /dev/null @@ -1,20 +0,0 @@ - "Tennis" . - "110"^^ . - . - "Williams" . - "Venus" . - "10"^^ . - "Football" . - "111"^^ . - . - "Villa" . - "David" . - "12"^^ . - "Formula1" . - "112"^^ . - "Alonso" . - "Fernando" . - "11"^^ . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/resource.sql deleted file mode 100644 index 0002c8ec..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011a-SQLServer/resource.sql +++ /dev/null @@ -1,33 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE Student ( -ID integer PRIMARY KEY, -FirstName varchar(50), -LastName varchar(50) -); -CREATE TABLE Sport ( -ID integer PRIMARY KEY, -Description varchar(50) -); -CREATE TABLE Student_Sport ( -ID_Student integer, -ID_Sport integer, -PRIMARY KEY (ID_Student,ID_Sport), -FOREIGN KEY (ID_Student) REFERENCES Student(ID), -FOREIGN KEY (ID_Sport) REFERENCES Sport(ID) -); - -INSERT INTO Student (ID,FirstName,LastName) VALUES (10,'Venus', 'Williams'); -INSERT INTO Student (ID,FirstName,LastName) VALUES (11,'Fernando', 'Alonso'); -INSERT INTO Student (ID,FirstName,LastName) VALUES (12,'David', 'Villa'); - -INSERT INTO Sport (ID, Description) VALUES (110,'Tennis'); -INSERT INTO Sport (ID, Description) VALUES (111,'Football'); -INSERT INTO Sport (ID, Description) VALUES (112,'Formula1'); - -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (10,110); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,111); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (11,112); -INSERT INTO Student_Sport (ID_Student, ID_Sport) VALUES (12,111); diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/mapping.ttl deleted file mode 100644 index c2f079c6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/mapping.ttl +++ /dev/null @@ -1,66 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student_sport.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://example.com/sport/{ID_Sport}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID_Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "sport.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Description" - ]; - rml:predicate ex:description - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/sport/{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/output.nq deleted file mode 100644 index d2759cec..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/output.nq +++ /dev/null @@ -1,17 +0,0 @@ - "Williams" . - "Venus" . - "Villa" . - "David" . - "Alonso" . - "Fernando" . - "Tennis" . - "110" . - "Football" . - "111" . - "Formula1" . - "112" . - . - . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/sport.csv b/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/sport.csv deleted file mode 100644 index 98446d06..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/sport.csv +++ /dev/null @@ -1,4 +0,0 @@ -ID,Description -110,Tennis -111,Football -112,Formula1 diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/student.csv deleted file mode 100644 index acf08c28..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/student.csv +++ /dev/null @@ -1,4 +0,0 @@ -ID,FirstName,LastName -10,Venus,Williams -11,Fernando,Alonso -12,David,Villa diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/student_sport.csv b/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/student_sport.csv deleted file mode 100644 index 381e9213..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-CSV/student_sport.csv +++ /dev/null @@ -1,5 +0,0 @@ -ID_Student,ID_Sport -10,110 -11,111 -11,112 -12,111 diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/README.md new file mode 100644 index 00000000..10db450a --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/README.md @@ -0,0 +1,141 @@ +## RMLTC0011b-JSON + +**Title**: "M to M relation, by using an additional Triples Map" + +**Description**: "Tests, M to M relations, by using an additional Triples Map" + +**Error expected?** No + +**Input** +``` +{ + "students": [ + {"ID":10, "FirstName":"Venus", "LastName":"Williams"}, + {"ID":11, "FirstName":"Fernando", "LastName":"Alonso"}, + {"ID":12, "FirstName":"David", "LastName":"Villa"} + ] +} + +``` + +**Input 1** +``` +{ + "sports": [ + {"ID":110, "Description":"Tennis"}, + {"ID":111, "Description":"Football"}, + {"ID":112, "Description":"Formula1"} + ] +} + +``` + +**Input 2** +``` +{ + "links": [ + {"ID_Student":10, "ID_Sport":110}, + {"ID_Student":11, "ID_Sport":111}, + {"ID_Student":11, "ID_Sport":112}, + {"ID_Student":12, "ID_Sport":111} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.links[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student_sport.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:template "http://example.com/sport/{$.ID_Sport}" + ]; + rml:predicate ex:plays + ]; + rml:subjectMap [ + rml:template "http://example.com/student/{$.ID_Student}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate ex:firstName + ], [ + rml:objectMap [ + rml:reference "$.LastName" + ]; + rml:predicate ex:lastName + ]; + rml:subjectMap [ + rml:template "http://example.com/student/{$.ID}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.sports[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "sport.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Description" + ]; + rml:predicate ex:description + ], [ + rml:objectMap [ + rml:reference "$.ID" + ]; + rml:predicate ex:id + ]; + rml:subjectMap [ + rml:template "http://example.com/sport/{$.ID}" + ] . + +``` + +**Output** +``` + "Williams" . + "Venus" . + "Villa" . + "David" . + "Alonso" . + "Fernando" . + "Tennis" . + "110" . + "Football" . + "111" . + "Formula1" . + "112" . + . + . + . + . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/mapping.ttl index 17da3046..29ba8387 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0011b-JSON/mapping.ttl @@ -12,12 +12,12 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:template "http://example.com/sport/{ID_Sport}" + rml:template "http://example.com/sport/{$.ID_Sport}" ]; rml:predicate ex:plays ]; rml:subjectMap [ - rml:template "http://example.com/student/{ID_Student}" + rml:template "http://example.com/student/{$.ID_Student}" ] . a rml:TriplesMap; @@ -31,17 +31,17 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate ex:firstName ], [ rml:objectMap [ - rml:reference "LastName" + rml:reference "$.LastName" ]; rml:predicate ex:lastName ]; rml:subjectMap [ - rml:template "http://example.com/student/{ID}" + rml:template "http://example.com/student/{$.ID}" ] . a rml:TriplesMap; @@ -55,15 +55,15 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "Description" + rml:reference "$.Description" ]; rml:predicate ex:description ], [ rml:objectMap [ - rml:reference "ID" + rml:reference "$.ID" ]; rml:predicate ex:id ]; rml:subjectMap [ - rml:template "http://example.com/sport/{ID}" + rml:template "http://example.com/sport/{$.ID}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/mapping.ttl deleted file mode 100644 index c2c696bc..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/mapping.ttl +++ /dev/null @@ -1,67 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://example.com/sport/{ID_Sport}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID_Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Description" - ]; - rml:predicate ex:description - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/sport/{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/output.nq deleted file mode 100644 index 6a82565e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/output.nq +++ /dev/null @@ -1,17 +0,0 @@ - "Williams" . - "Venus" . - "Villa" . - "David" . - "Alonso" . - "Fernando" . - "Tennis" . - "110"^^ . - "Football" . - "111"^^ . - "Formula1" . - "112"^^ . - . - . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/resource.sql deleted file mode 100644 index 5e3ce10b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-MySQL/resource.sql +++ /dev/null @@ -1,34 +0,0 @@ -USE test; -SET FOREIGN_KEY_CHECKS = 0; -DROP TABLE IF EXISTS test.student_sport; -DROP TABLE IF EXISTS test.student; -DROP TABLE IF EXISTS test.sport; -SET FOREIGN_KEY_CHECKS = 1; - -CREATE TABLE sport ( - ID INTEGER, - Description VARCHAR(200) -); -INSERT INTO sport values ('110','Tennis'); -INSERT INTO sport values ('111','Football'); -INSERT INTO sport values ('112','Formula1'); - - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(200), - LastName VARCHAR(200) -); -INSERT INTO student values ('10','Venus','Williams'); -INSERT INTO student values ('11','Fernando','Alonso'); -INSERT INTO student values ('12','David','Villa'); - - -CREATE TABLE student_sport ( - ID_Student INTEGER, - ID_Sport INTEGER -); -INSERT INTO student_sport values ('10', '110'); -INSERT INTO student_sport values ('11','111'); -INSERT INTO student_sport values ('11','112'); -INSERT INTO student_sport values ('12','111'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/mapping.ttl deleted file mode 100644 index 6accd44c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,67 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://example.com/sport/{id_sport}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{id_student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "firstname" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "lastname" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{id}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "description" - ]; - rml:predicate ex:description - ], [ - rml:objectMap [ - rml:reference "id" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/sport/{id}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/output.nq deleted file mode 100644 index 6a82565e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/output.nq +++ /dev/null @@ -1,17 +0,0 @@ - "Williams" . - "Venus" . - "Villa" . - "David" . - "Alonso" . - "Fernando" . - "Tennis" . - "110"^^ . - "Football" . - "111"^^ . - "Formula1" . - "112"^^ . - . - . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/resource.sql deleted file mode 100644 index acdc4aa1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-PostgreSQL/resource.sql +++ /dev/null @@ -1,31 +0,0 @@ -DROP TABLE IF EXISTS student_sport; -DROP TABLE IF EXISTS student; -DROP TABLE IF EXISTS sport; - -CREATE TABLE sport ( - ID INTEGER, - Description VARCHAR(200) -); -INSERT INTO sport values ('110','Tennis'); -INSERT INTO sport values ('111','Football'); -INSERT INTO sport values ('112','Formula1'); - - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(200), - LastName VARCHAR(200) -); -INSERT INTO student values ('10','Venus','Williams'); -INSERT INTO student values ('11','Fernando','Alonso'); -INSERT INTO student values ('12','David','Villa'); - - -CREATE TABLE student_sport ( - ID_Student INTEGER, - ID_Sport INTEGER -); -INSERT INTO student_sport values ('10', '110'); -INSERT INTO student_sport values ('11','111'); -INSERT INTO student_sport values ('11','112'); -INSERT INTO student_sport values ('12','111'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/mapping.ttl deleted file mode 100644 index 192a0032..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/mapping.ttl +++ /dev/null @@ -1,67 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student_sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://example.com/sport/{ID_Sport}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID_Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "sport" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Description" - ]; - rml:predicate ex:description - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/sport/{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/output.nq deleted file mode 100644 index 6a82565e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/output.nq +++ /dev/null @@ -1,17 +0,0 @@ - "Williams" . - "Venus" . - "Villa" . - "David" . - "Alonso" . - "Fernando" . - "Tennis" . - "110"^^ . - "Football" . - "111"^^ . - "Formula1" . - "112"^^ . - . - . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/resource.sql deleted file mode 100644 index d7644c70..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-SQLServer/resource.sql +++ /dev/null @@ -1,32 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student_sport; -DROP TABLE IF EXISTS student; -DROP TABLE IF EXISTS sport; - -CREATE TABLE sport ( - ID INTEGER, - Description VARCHAR(200) -); -INSERT INTO sport values ('110','Tennis'); -INSERT INTO sport values ('111','Football'); -INSERT INTO sport values ('112','Formula1'); - - -CREATE TABLE student ( - ID INTEGER, - FirstName VARCHAR(200), - LastName VARCHAR(200) -); -INSERT INTO student values ('10','Venus','Williams'); -INSERT INTO student values ('11','Fernando','Alonso'); -INSERT INTO student values ('12','David','Villa'); - - -CREATE TABLE student_sport ( - ID_Student INTEGER, - ID_Sport INTEGER -); -INSERT INTO student_sport values ('10', '110'); -INSERT INTO student_sport values ('11','111'); -INSERT INTO student_sport values ('11','112'); -INSERT INTO student_sport values ('12','111'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0011b-XML/mapping.ttl deleted file mode 100644 index decc7ad2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/mapping.ttl +++ /dev/null @@ -1,69 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/links/link"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student_sport.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://example.com/sport/{ID_Sport}" - ]; - rml:predicate ex:plays - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID_Student}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Students/Student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/student/{ID}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Sports/Sport"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "sport.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Description" - ]; - rml:predicate ex:description - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ]; - rml:subjectMap [ - rml:template "http://example.com/sport/{ID}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0011b-XML/output.nq deleted file mode 100644 index d2759cec..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/output.nq +++ /dev/null @@ -1,17 +0,0 @@ - "Williams" . - "Venus" . - "Villa" . - "David" . - "Alonso" . - "Fernando" . - "Tennis" . - "110" . - "Football" . - "111" . - "Formula1" . - "112" . - . - . - . - . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/sport.xml b/src/test/resources/new-test-cases/core/RMLTC0011b-XML/sport.xml deleted file mode 100644 index a44806ba..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/sport.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - 110 - Tennis - - - 111 - Football - - - 112 - Formula1 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0011b-XML/student.xml deleted file mode 100644 index 8d0a2ccd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/student.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 10 - Venus - Williams - - - 11 - Fernando - Alonso - - - 12 - David - Villa - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/student_sport.xml b/src/test/resources/new-test-cases/core/RMLTC0011b-XML/student_sport.xml deleted file mode 100644 index 3eeb2e92..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0011b-XML/student_sport.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - 10 - 110 - - - 11 - 111 - - - 11 - 112 - - - 12 - 111 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/mapping.ttl deleted file mode 100644 index 6500c2d7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/mapping.ttl +++ /dev/null @@ -1,28 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}{lname}{amount}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/output.nq deleted file mode 100644 index 7f9ce194..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith30 "30" . -_:BobSmith30 "Bob Smith" . -_:SueJones20 "20" . -_:SueJones20 "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/persons.csv b/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/persons.csv deleted file mode 100644 index 6d1909d9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-CSV/persons.csv +++ /dev/null @@ -1,4 +0,0 @@ -fname,lname,amount -Bob,Smith,30 -Sue,Jones,20 -Bob,Smith,30 diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/README.md new file mode 100644 index 00000000..94dbd97c --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/README.md @@ -0,0 +1,64 @@ +## RMLTC0012a-JSON + +**Title**: "Blank node referencing multiple columns" + +**Description**: "Tests that blank nodes can be generated by referencing multiple columns" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20}, + {"fname":"Bob","lname":"Smith","amount":30} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:template "{$.fname} {$.lname}"; + rml:termType rml:Literal + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}{$.lname}{$.amount}"; + rml:termType rml:BlankNode + ] . + +``` + +**Output** +``` +_:BobSmith30 "30" . +_:BobSmith30 "Bob Smith" . +_:SueJones20 "20" . +_:SueJones20 "Sue Jones" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/mapping.ttl index 3db1ba6f..7caeb4cf 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0012a-JSON/mapping.ttl @@ -13,17 +13,17 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:template "{fname} {lname}"; + rml:template "{$.fname} {$.lname}"; rml:termType rml:Literal ]; rml:predicate foaf:name ], [ rml:objectMap [ - rml:reference "amount" + rml:reference "$.amount" ]; rml:predicate ex:amount ]; rml:subjectMap [ - rml:template "{fname}{lname}{amount}"; + rml:template "{$.fname}{$.lname}{$.amount}"; rml:termType rml:BlankNode ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/mapping.ttl deleted file mode 100644 index c038ff8d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/output.nq deleted file mode 100644 index 10e4040a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:Bob_Smith_30 "30"^^ . -_:Bob_Smith_30 "Bob Smith" . -_:Sue_Jones_20 "20"^^ . -_:Sue_Jones_20 "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/resource.sql deleted file mode 100644 index 34ace06d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-MySQL/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.IOUs; -DROP TABLE IF EXISTS test.Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount INT); -/* We replaced DOUBLE with INT, because the datatype conversion is different across databases, and this test case is not relevant to that aspect */ -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/mapping.ttl deleted file mode 100644 index e126236d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/output.nq deleted file mode 100644 index 10e4040a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:Bob_Smith_30 "30"^^ . -_:Bob_Smith_30 "Bob Smith" . -_:Sue_Jones_20 "20"^^ . -_:Sue_Jones_20 "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/resource.sql deleted file mode 100644 index af98da75..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-PostgreSQL/resource.sql +++ /dev/null @@ -1,17 +0,0 @@ -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount INT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/mapping.ttl deleted file mode 100644 index 65c6092f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/mapping.ttl +++ /dev/null @@ -1,40 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - rml:logicalSource [ - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?fname ?lname ?amount - WHERE { - ?x foaf:firstName ?fname ; - foaf:lastName ?lname ; - ?amount . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname.value} {lname.value}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount.value" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname.value}{lname.value}{amount.value}"; - rml:termType rml:BlankNode - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/output.nq deleted file mode 100644 index 7f9ce194..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith30 "30" . -_:BobSmith30 "Bob Smith" . -_:SueJones20 "20" . -_:SueJones20 "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/resource.ttl deleted file mode 100644 index 142bb85c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-SPARQL/resource.ttl +++ /dev/null @@ -1,15 +0,0 @@ -@prefix foaf: . -@prefix ns1: . - -[] ns1:amount "30" ; - foaf:firstName "Bob" ; - foaf:lastName "Smith" . - -[] ns1:amount "20" ; - foaf:firstName "Sue" ; - foaf:lastName "Jones" . - -[] ns1:amount "30" ; - foaf:firstName "Bob" ; - foaf:lastName "Smith" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/mapping.ttl deleted file mode 100644 index be494b3a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/mapping.ttl +++ /dev/null @@ -1,33 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/output.nq deleted file mode 100644 index 10e4040a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:Bob_Smith_30 "30"^^ . -_:Bob_Smith_30 "Bob Smith" . -_:Sue_Jones_20 "20"^^ . -_:Sue_Jones_20 "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/resource.sql deleted file mode 100644 index fecf09a9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-SQLServer/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount INT); -/* We replaced DOUBLE with INT, because the datatype conversion is different across databases, and this test case is not relevant to that aspect */ -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012a-XML/mapping.ttl deleted file mode 100644 index cedf2559..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-XML/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Persons/Person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}{lname}{amount}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012a-XML/output.nq deleted file mode 100644 index 7f9ce194..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith30 "30" . -_:BobSmith30 "Bob Smith" . -_:SueJones20 "20" . -_:SueJones20 "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012a-XML/persons.xml b/src/test/resources/new-test-cases/core/RMLTC0012a-XML/persons.xml deleted file mode 100644 index 775d21eb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012a-XML/persons.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Bob - Smith - 30 - - - Sue - Jones - 20 - - - Bob - Smith - 30 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/lives.csv b/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/lives.csv deleted file mode 100644 index d82b0a3a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/lives.csv +++ /dev/null @@ -1,4 +0,0 @@ -fname,lname,city -Bob,Smith,London -Sue,Jones,Madrid -Bob,Smith,London diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/mapping.ttl deleted file mode 100644 index 1b55acb8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/mapping.ttl +++ /dev/null @@ -1,42 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "lives.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate ex:city - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/output.nq deleted file mode 100644 index 0d556bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith "London" . -_:BobSmith "Bob Smith" . -_:SueJones "Madrid" . -_:SueJones "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/persons.csv b/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/persons.csv deleted file mode 100644 index 6d1909d9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-CSV/persons.csv +++ /dev/null @@ -1,4 +0,0 @@ -fname,lname,amount -Bob,Smith,30 -Sue,Jones,20 -Bob,Smith,30 diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/README.md new file mode 100644 index 00000000..2872ead4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/README.md @@ -0,0 +1,91 @@ +## RMLTC0012b-JSON + +**Title**: "Duplicate tuples generate same blank node" + +**Description**: "Tests that blank nodes with same identifier and in the same graph but generated by different logical rows are considered equivalent." + +**Error expected?** No + +**Input** +``` +{ + "lives": [ + {"fname":"Bob","lname":"Smith","city":"London"}, + {"fname":"Sue","lname":"Jones","city":"Madrid"}, + {"fname":"Bob","lname":"Smith","city":"London"} + ] +} + +``` + +**Input 1** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20}, + {"fname":"Bob","lname":"Smith","amount":30} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:template "{$.fname} {$.lname}"; + rml:termType rml:Literal + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:template "{$.fname}{$.lname}"; + rml:termType rml:BlankNode + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.lives[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "lives.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.city" + ]; + rml:predicate ex:city + ]; + rml:subjectMap [ + rml:template "{$.fname}{$.lname}"; + rml:termType rml:BlankNode + ] . + +``` + +**Output** +``` +_:BobSmith "London" . +_:BobSmith "Bob Smith" . +_:SueJones "Madrid" . +_:SueJones "Sue Jones" . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/mapping.ttl index c0cf0407..82aa3b30 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0012b-JSON/mapping.ttl @@ -13,13 +13,13 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:template "{fname} {lname}"; + rml:template "{$.fname} {$.lname}"; rml:termType rml:Literal ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:template "{fname}{lname}"; + rml:template "{$.fname}{$.lname}"; rml:termType rml:BlankNode ] . @@ -34,11 +34,11 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "city" + rml:reference "$.city" ]; rml:predicate ex:city ]; rml:subjectMap [ - rml:template "{fname}{lname}"; + rml:template "{$.fname}{$.lname}"; rml:termType rml:BlankNode ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/mapping.ttl deleted file mode 100644 index 985da040..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "persons" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "lives" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate ex:city - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/output.nq deleted file mode 100644 index 0d556bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith "London" . -_:BobSmith "Bob Smith" . -_:SueJones "Madrid" . -_:SueJones "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/resource.sql deleted file mode 100644 index 29ad8c68..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-MySQL/resource.sql +++ /dev/null @@ -1,22 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.persons; - -CREATE TABLE persons ( - fname VARCHAR(200), - lname VARCHAR(200), - amount INTEGER -); -INSERT INTO persons values ('Bob','Smith','30'); -INSERT INTO persons values ('Sue','Jones','20'); -INSERT INTO persons values ('Bob','Smith','30'); - -DROP TABLE IF EXISTS test.lives; - -CREATE TABLE lives ( - fname VARCHAR(200), - lname VARCHAR(200), - city VARCHAR(200) -); -INSERT INTO lives values ('Bob','Smith','London'); -INSERT INTO lives values ('Sue','Jones','Madrid'); -INSERT INTO lives values ('Bob','Smith','London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/mapping.ttl deleted file mode 100644 index 4b2bc1b4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "persons" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "lives" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate ex:city - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password "password"; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/output.nq deleted file mode 100644 index 0d556bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith "London" . -_:BobSmith "Bob Smith" . -_:SueJones "Madrid" . -_:SueJones "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/resource.sql deleted file mode 100644 index 2761bf68..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-PostgreSQL/resource.sql +++ /dev/null @@ -1,21 +0,0 @@ -DROP TABLE IF EXISTS persons; - -CREATE TABLE persons ( - "fname" VARCHAR(200), - "lname" VARCHAR(200), - "amount" INTEGER -); -INSERT INTO persons values ('Bob','Smith','30'); -INSERT INTO persons values ('Sue','Jones','20'); -INSERT INTO persons values ('Bob','Smith','30'); - -DROP TABLE IF EXISTS lives; - -CREATE TABLE lives ( - "fname" VARCHAR(200), - "lname" VARCHAR(200), - "city" VARCHAR(200) -); -INSERT INTO lives values ('Bob','Smith','London'); -INSERT INTO lives values ('Sue','Jones','Madrid'); -INSERT INTO lives values ('Bob','Smith','London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/mapping.ttl deleted file mode 100644 index f36eec4d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/mapping.ttl +++ /dev/null @@ -1,71 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?fname ?lname - WHERE { - ?x foaf:firstName ?fname ; - foaf:lastName ?lname ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname.value} {lname.value}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{fname.value}{lname.value}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?city ?fname ?lname - WHERE { - ?x foaf:firstName ?fname ; - foaf:lastName ?lname ; - ?city . - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "city.value" - ]; - rml:predicate ex:city - ]; - rml:subjectMap [ - rml:template "{fname.value}{lname.value}"; - rml:termType rml:BlankNode - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/output.nq deleted file mode 100644 index 0d556bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith "London" . -_:BobSmith "Bob Smith" . -_:SueJones "Madrid" . -_:SueJones "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/resource1.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/resource1.ttl deleted file mode 100644 index 142bb85c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/resource1.ttl +++ /dev/null @@ -1,15 +0,0 @@ -@prefix foaf: . -@prefix ns1: . - -[] ns1:amount "30" ; - foaf:firstName "Bob" ; - foaf:lastName "Smith" . - -[] ns1:amount "20" ; - foaf:firstName "Sue" ; - foaf:lastName "Jones" . - -[] ns1:amount "30" ; - foaf:firstName "Bob" ; - foaf:lastName "Smith" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/resource2.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/resource2.ttl deleted file mode 100644 index 5991d1f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SPARQL/resource2.ttl +++ /dev/null @@ -1,15 +0,0 @@ -@prefix foaf: . -@prefix ns1: . - -[] ns1:city "London" ; - foaf:firstName "Bob" ; - foaf:lastName "Smith" . - -[] ns1:city "Madrid" ; - foaf:firstName "Sue" ; - foaf:lastName "Jones" . - -[] ns1:city "London" ; - foaf:firstName "Bob" ; - foaf:lastName "Smith" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/mapping.ttl deleted file mode 100644 index dea61d54..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "persons" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "lives" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate ex:city - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/output.nq deleted file mode 100644 index 0d556bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith "London" . -_:BobSmith "Bob Smith" . -_:SueJones "Madrid" . -_:SueJones "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/resource.sql deleted file mode 100644 index 03379770..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-SQLServer/resource.sql +++ /dev/null @@ -1,22 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS persons; - -CREATE TABLE persons ( - "fname" VARCHAR(200), - "lname" VARCHAR(200), - "amount" INTEGER -); -INSERT INTO persons values ('Bob','Smith','30'); -INSERT INTO persons values ('Sue','Jones','20'); -INSERT INTO persons values ('Bob','Smith','30'); - -DROP TABLE IF EXISTS lives; - -CREATE TABLE lives ( - "fname" VARCHAR(200), - "lname" VARCHAR(200), - "city" VARCHAR(200) -); -INSERT INTO lives values ('Bob','Smith','London'); -INSERT INTO lives values ('Sue','Jones','Madrid'); -INSERT INTO lives values ('Bob','Smith','London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/lives.xml b/src/test/resources/new-test-cases/core/RMLTC0012b-XML/lives.xml deleted file mode 100644 index f72fc8be..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/lives.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Bob - Smith - London - - - Sue - Jones - Madrid - - - Bob - Smith - London - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012b-XML/mapping.ttl deleted file mode 100644 index 4b614e06..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/mapping.ttl +++ /dev/null @@ -1,44 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Persons/Person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Lives/Live"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "lives.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate ex:city - ]; - rml:subjectMap [ - rml:template "{fname}{lname}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012b-XML/output.nq deleted file mode 100644 index 0d556bbd..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ -_:BobSmith "London" . -_:BobSmith "Bob Smith" . -_:SueJones "Madrid" . -_:SueJones "Sue Jones" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/persons.xml b/src/test/resources/new-test-cases/core/RMLTC0012b-XML/persons.xml deleted file mode 100644 index 775d21eb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012b-XML/persons.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Bob - Smith - 30 - - - Sue - Jones - 20 - - - Bob - Smith - 30 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012c-CSV/mapping.ttl deleted file mode 100644 index 4bf23e7e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-CSV/mapping.ttl +++ /dev/null @@ -1,24 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-CSV/persons.csv b/src/test/resources/new-test-cases/core/RMLTC0012c-CSV/persons.csv deleted file mode 100644 index 6d1909d9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-CSV/persons.csv +++ /dev/null @@ -1,4 +0,0 @@ -fname,lname,amount -Bob,Smith,30 -Sue,Jones,20 -Bob,Smith,30 diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/README.md new file mode 100644 index 00000000..47befcf4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/README.md @@ -0,0 +1,50 @@ +## RMLTC0012c-JSON + +**Title**: "TriplesMap without subjectMap" + +**Description**: "Tests a RML with missing information, TriplesMap without subjectMap." + +**Error expected?** Yes + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20}, + {"fname":"Bob","lname":"Smith","amount":30} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:template "{$.fname} {$.lname}"; + rml:termType rml:Literal + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/mapping.ttl index 56cd3473..c458a4aa 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0012c-JSON/mapping.ttl @@ -13,13 +13,13 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:template "{fname} {lname}"; + rml:template "{$.fname} {$.lname}"; rml:termType rml:Literal ]; rml:predicate foaf:name ], [ rml:objectMap [ - rml:reference "amount" + rml:reference "$.amount" ]; rml:predicate ex:amount ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012c-MySQL/mapping.ttl deleted file mode 100644 index be18c725..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-MySQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012c-MySQL/resource.sql deleted file mode 100644 index 718792c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-MySQL/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.IOUs; -DROP TABLE IF EXISTS test.Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012c-PostgreSQL/mapping.ttl deleted file mode 100644 index c09a8c04..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password "password"; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012c-PostgreSQL/resource.sql deleted file mode 100644 index 46e386f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-PostgreSQL/resource.sql +++ /dev/null @@ -1,18 +0,0 @@ -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012c-SQLServer/mapping.ttl deleted file mode 100644 index e6ae399d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-SQLServer/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012c-SQLServer/resource.sql deleted file mode 100644 index 8fab5e6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-SQLServer/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012c-XML/mapping.ttl deleted file mode 100644 index 70f35312..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-XML/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Persons/Person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.json" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012c-XML/persons.xml b/src/test/resources/new-test-cases/core/RMLTC0012c-XML/persons.xml deleted file mode 100644 index 411760a1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012c-XML/persons.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Bob - Smith> - 30 - - - Sue - Jones> - 20 - - - Bob - Smith> - 30 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012d-CSV/mapping.ttl deleted file mode 100644 index ba324ed2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-CSV/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ], [ - rml:template "{amount}_{fname}_{lname}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-CSV/persons.csv b/src/test/resources/new-test-cases/core/RMLTC0012d-CSV/persons.csv deleted file mode 100644 index 6d1909d9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-CSV/persons.csv +++ /dev/null @@ -1,4 +0,0 @@ -fname,lname,amount -Bob,Smith,30 -Sue,Jones,20 -Bob,Smith,30 diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/README.md new file mode 100644 index 00000000..54555564 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/README.md @@ -0,0 +1,57 @@ +## RMLTC0012d-JSON + +**Title**: "TriplesMap with two subjectMap" + +**Description**: "Tests a RML with wrong information, TriplesMap with two subjectMap." + +**Error expected?** Yes + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20}, + {"fname":"Bob","lname":"Smith","amount":30} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:template "{$.fname} {$.lname}"; + rml:termType rml:Literal + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}_{$.lname}_{$.amount}"; + rml:termType rml:BlankNode + ], [ + rml:template "{$.amount}_{$.fname}_{$.lname}"; + rml:termType rml:BlankNode + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/mapping.ttl index 442cb705..a8baa088 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0012d-JSON/mapping.ttl @@ -13,20 +13,20 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:template "{fname} {lname}"; + rml:template "{$.fname} {$.lname}"; rml:termType rml:Literal ]; rml:predicate foaf:name ], [ rml:objectMap [ - rml:reference "amount" + rml:reference "$.amount" ]; rml:predicate ex:amount ]; rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; + rml:template "{$.fname}_{$.lname}_{$.amount}"; rml:termType rml:BlankNode ], [ - rml:template "{amount}_{fname}_{lname}"; + rml:template "{$.amount}_{$.fname}_{$.lname}"; rml:termType rml:BlankNode ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012d-MySQL/mapping.ttl deleted file mode 100644 index cc24cc7d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-MySQL/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}" - ], [ - rml:template "{amount}_{fname}_{lname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012d-MySQL/resource.sql deleted file mode 100644 index 718792c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-MySQL/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.IOUs; -DROP TABLE IF EXISTS test.Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012d-PostgreSQL/mapping.ttl deleted file mode 100644 index c8aa2a07..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}" - ], [ - rml:template "{amount}_{fname}_{lname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password "password"; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012d-PostgreSQL/resource.sql deleted file mode 100644 index 46e386f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-PostgreSQL/resource.sql +++ /dev/null @@ -1,18 +0,0 @@ -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012d-SQLServer/mapping.ttl deleted file mode 100644 index 3d923cad..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-SQLServer/mapping.ttl +++ /dev/null @@ -1,27 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}" - ], [ - rml:template "{amount}_{fname}_{lname}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012d-SQLServer/resource.sql deleted file mode 100644 index 8fab5e6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-SQLServer/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012d-XML/mapping.ttl deleted file mode 100644 index 9af658b5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-XML/mapping.ttl +++ /dev/null @@ -1,32 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/Persons/Person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "{fname} {lname}"; - rml:termType rml:Literal - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate ex:amount - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ], [ - rml:template "{amount}_{fname}_{lname}"; - rml:termType rml:BlankNode - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012d-XML/persons.xml b/src/test/resources/new-test-cases/core/RMLTC0012d-XML/persons.xml deleted file mode 100644 index 775d21eb..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012d-XML/persons.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - Bob - Smith - 30 - - - Sue - Jones - 20 - - - Bob - Smith - 30 - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/mapping.ttl deleted file mode 100644 index 9f3c7ca4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/mapping.ttl +++ /dev/null @@ -1,69 +0,0 @@ -@prefix d2rq: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:object ; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Lives" - ]; - rml:predicateObjectMap [ - rml:object ; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{city}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/output.nq deleted file mode 100644 index a09639da..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/output.nq +++ /dev/null @@ -1,18 +0,0 @@ -_:Bob_Smith_30 . -_:Bob_Smith_30 "Bob" . -_:Bob_Smith_30 "Smith" . -_:Bob_Smith_30 "3.0E1"^^ . -_:Sue_Jones_20 . -_:Sue_Jones_20 "Sue" . -_:Sue_Jones_20 "Jones" . -_:Sue_Jones_20 "2.0E1"^^ . -_:Bob_Smith_London . -_:Bob_Smith_London "Bob" . -_:Bob_Smith_London "Smith" . -_:Bob_Smith_London "London" . -_:Sue_Jones_Madrid . -_:Sue_Jones_Madrid "Sue" . -_:Sue_Jones_Madrid "Jones" . -_:Sue_Jones_Madrid "Madrid" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/resource.sql deleted file mode 100644 index 718792c7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-MySQL/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.IOUs; -DROP TABLE IF EXISTS test.Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/mapping.ttl deleted file mode 100644 index b143e99e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,69 +0,0 @@ -@prefix d2rq: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:object ; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Lives" - ]; - rml:predicateObjectMap [ - rml:object ; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{city}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/output.nq deleted file mode 100644 index a09639da..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/output.nq +++ /dev/null @@ -1,18 +0,0 @@ -_:Bob_Smith_30 . -_:Bob_Smith_30 "Bob" . -_:Bob_Smith_30 "Smith" . -_:Bob_Smith_30 "3.0E1"^^ . -_:Sue_Jones_20 . -_:Sue_Jones_20 "Sue" . -_:Sue_Jones_20 "Jones" . -_:Sue_Jones_20 "2.0E1"^^ . -_:Bob_Smith_London . -_:Bob_Smith_London "Bob" . -_:Bob_Smith_London "Smith" . -_:Bob_Smith_London "London" . -_:Sue_Jones_Madrid . -_:Sue_Jones_Madrid "Sue" . -_:Sue_Jones_Madrid "Jones" . -_:Sue_Jones_Madrid "Madrid" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/resource.sql deleted file mode 100644 index 46e386f7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-PostgreSQL/resource.sql +++ /dev/null @@ -1,18 +0,0 @@ -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/mapping.ttl deleted file mode 100644 index 3c5aa10a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/mapping.ttl +++ /dev/null @@ -1,69 +0,0 @@ -@prefix d2rq: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "IOUs" - ]; - rml:predicateObjectMap [ - rml:object ; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "amount" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{amount}"; - rml:termType rml:BlankNode - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Lives" - ]; - rml:predicateObjectMap [ - rml:object ; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "fname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "lname" - ]; - rml:predicate - ], [ - rml:objectMap [ - rml:reference "city" - ]; - rml:predicate - ]; - rml:subjectMap [ - rml:template "{fname}_{lname}_{city}"; - rml:termType rml:BlankNode - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/output.nq deleted file mode 100644 index a09639da..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/output.nq +++ /dev/null @@ -1,18 +0,0 @@ -_:Bob_Smith_30 . -_:Bob_Smith_30 "Bob" . -_:Bob_Smith_30 "Smith" . -_:Bob_Smith_30 "3.0E1"^^ . -_:Sue_Jones_20 . -_:Sue_Jones_20 "Sue" . -_:Sue_Jones_20 "Jones" . -_:Sue_Jones_20 "2.0E1"^^ . -_:Bob_Smith_London . -_:Bob_Smith_London "Bob" . -_:Bob_Smith_London "Smith" . -_:Bob_Smith_London "London" . -_:Sue_Jones_Madrid . -_:Sue_Jones_Madrid "Sue" . -_:Sue_Jones_Madrid "Jones" . -_:Sue_Jones_Madrid "Madrid" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/resource.sql deleted file mode 100644 index 8fab5e6f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0012e-SQLServer/resource.sql +++ /dev/null @@ -1,19 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS IOUs; -DROP TABLE IF EXISTS Lives; - -CREATE TABLE IOUs ( - fname VARCHAR(20), - lname VARCHAR(20), - amount FLOAT); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Sue', 'Jones', 20); -INSERT INTO IOUs (fname, lname, amount) VALUES ('Bob', 'Smith', 30); - -CREATE TABLE Lives ( - fname VARCHAR(20), - lname VARCHAR(20), - city VARCHAR(20)); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); -INSERT INTO Lives (fname, lname, city) VALUES ('Sue', 'Jones', 'Madrid'); -INSERT INTO Lives (fname, lname, city) VALUES ('Bob', 'Smith', 'London'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/README.md new file mode 100644 index 00000000..e8a3ee14 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/README.md @@ -0,0 +1,51 @@ +## RMLTC0013a-JSON + +**Title**: "Null value in JSON file" + +**Description**: "Tests if null values in JSON files are handled correctly." + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"ID":"1","Name":"Alice","DateOfBirth":null}, + {"ID":"2","Name":"Bob","DateOfBirth":"September, 2010"} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.DateOfBirth" + ]; + rml:predicate ex:BirthDay + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.ID}/{$.Name}/{$.DateOfBirth}" + ] . + +``` + +**Output** +``` + "September, 2010" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/mapping.ttl index 92a69509..c1bd8ddc 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0013a-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "DateOfBirth" + rml:reference "$.DateOfBirth" ]; rml:predicate ex:BirthDay ]; rml:subjectMap [ - rml:template "http://example.com/Person/{ID}/{Name}/{DateOfBirth}" + rml:template "http://example.com/Person/{$.ID}/{$.Name}/{$.DateOfBirth}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/mapping.ttl deleted file mode 100644 index eadfe810..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Person" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "DateOfBirth" - ]; - rml:predicate ex:BirthDay - ]; - rml:subjectMap [ - rml:template "http://example.com/Person/{ID}/{Name}/{DateOfBirth}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/output.nq deleted file mode 100644 index 4b1bf1fa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "September, 2010" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/resource.sql deleted file mode 100644 index 616495e9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-MySQL/resource.sql +++ /dev/null @@ -1,12 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Person; - -CREATE TABLE Person ( -ID integer, -Name varchar(50), -DateOfBirth varchar(50), -PRIMARY KEY (ID) -); -INSERT INTO Person (ID, Name, DateOfBirth) VALUES (1,'Alice', NULL); -INSERT INTO Person (ID, Name, DateOfBirth) VALUES (2,'Bob', 'September, 2010'); - diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/mapping.ttl deleted file mode 100644 index 9b0ca790..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Person" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "DateOfBirth" - ]; - rml:predicate ex:BirthDay - ]; - rml:subjectMap [ - rml:template "http://example.com/Person/{ID}/{Name}/{DateOfBirth}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password "password"; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/note.md b/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/note.md deleted file mode 100644 index 026df640..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/note.md +++ /dev/null @@ -1,3 +0,0 @@ -## Change note - -Changed resource.sql to use quotes for column identifiers to use case-sensitive references. diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/output.nq deleted file mode 100644 index 4b1bf1fa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "September, 2010" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/resource.sql deleted file mode 100644 index 03a372d2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-PostgreSQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -DROP TABLE IF EXISTS Person; - -CREATE TABLE Person ( -"ID" integer, -"Name" varchar(50), -"DateOfBirth" varchar(50), -PRIMARY KEY ("ID") -); -INSERT INTO Person ("ID", "Name", "DateOfBirth") VALUES (1,'Alice', NULL); -INSERT INTO Person ("ID", "Name", "DateOfBirth") VALUES (2,'Bob', 'September, 2010'); - diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/mapping.ttl deleted file mode 100644 index f198ea56..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Person" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "DateOfBirth" - ]; - rml:predicate ex:BirthDay - ]; - rml:subjectMap [ - rml:template "http://example.com/Person/{ID}/{Name}/{DateOfBirth}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/output.nq deleted file mode 100644 index 4b1bf1fa..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/output.nq +++ /dev/null @@ -1,3 +0,0 @@ - "September, 2010" . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/resource.sql deleted file mode 100644 index dd278769..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0013a-SQLServer/resource.sql +++ /dev/null @@ -1,12 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Person; - -CREATE TABLE Person ( -ID integer, -Name varchar(50), -DateOfBirth varchar(50), -PRIMARY KEY (ID) -); -INSERT INTO Person (ID, Name, DateOfBirth) VALUES (1,'Alice', NULL); -INSERT INTO Person (ID, Name, DateOfBirth) VALUES (2,'Bob', 'September, 2010'); - diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/mapping.ttl deleted file mode 100644 index 7377f7b4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT EMP.*, (CASE job - WHEN 'CLERK' THEN 'general-office' - WHEN 'NIGHTGUARD' THEN 'security' - WHEN 'ENGINEER' THEN 'engineering' - END) AS ROLE FROM EMP - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://data.example.com/roles/{ROLE}" - ]; - rml:predicate ex:role - ]; - rml:subjectMap [ - rml:template "http://data.example.com/employee/{empno}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/output.nq deleted file mode 100644 index a1025c8a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/resource.sql deleted file mode 100644 index bd5eb080..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-MySQL/resource.sql +++ /dev/null @@ -1,25 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.DEPT; -DROP TABLE IF EXISTS test.EMP; -DROP TABLE IF EXISTS test.LIKES; - -CREATE TABLE DEPT ( - deptno INTEGER UNIQUE, - dname VARCHAR(30), - loc VARCHAR(100)); -INSERT INTO DEPT (deptno, dname, loc) VALUES (10, 'APPSERVER', 'NEW YORK'); - -CREATE TABLE EMP ( - empno INTEGER PRIMARY KEY, - ename VARCHAR(100), - job VARCHAR(30), - deptno INTEGER REFERENCES DEPT (deptno), - etype VARCHAR(30)); -INSERT INTO EMP (empno, ename, job, deptno, etype ) VALUES (7369, 'SMITH', 'CLERK', 10, 'PART_TIME'); - -CREATE TABLE LIKES ( - id INTEGER, - likeType VARCHAR(30), - likedObj VARCHAR(100)); -INSERT INTO LIKES (id, likeType, likedObj) VALUES (7369, 'Playing', 'Soccer'); -INSERT INTO LIKES (id, likeType, likedObj) VALUES (7369, 'Watching', 'Basketball'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/mapping.ttl deleted file mode 100644 index 27108093..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT EMP.*, (CASE job - WHEN 'CLERK' THEN 'general-office' - WHEN 'NIGHTGUARD' THEN 'security' - WHEN 'ENGINEER' THEN 'engineering' - END) AS ROLE FROM EMP - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://data.example.com/roles/{role}" - ]; - rml:predicate ex:role - ]; - rml:subjectMap [ - rml:template "http://data.example.com/employee/{empno}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/output.nq deleted file mode 100644 index a1025c8a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/output.nq +++ /dev/null @@ -1 +0,0 @@ - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/resource.sql deleted file mode 100644 index 84570225..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-PostgreSQL/resource.sql +++ /dev/null @@ -1,24 +0,0 @@ -DROP TABLE IF EXISTS LIKES; -DROP TABLE IF EXISTS EMP; -DROP TABLE IF EXISTS DEPT; - -CREATE TABLE DEPT ( - deptno INTEGER UNIQUE, - dname VARCHAR(30), - loc VARCHAR(100)); -INSERT INTO DEPT (deptno, dname, loc) VALUES (10, 'APPSERVER', 'NEW YORK'); - -CREATE TABLE EMP ( - empno INTEGER PRIMARY KEY, - ename VARCHAR(100), - job VARCHAR(30), - deptno INTEGER REFERENCES DEPT (deptno), - etype VARCHAR(30)); -INSERT INTO EMP (empno, ename, job, deptno, etype ) VALUES (7369, 'SMITH', 'CLERK', 10, 'PART_TIME'); - -CREATE TABLE LIKES ( - id INTEGER, - likeType VARCHAR(30), - likedObj VARCHAR(100)); -INSERT INTO LIKES (id, likeType, likedObj) VALUES (7369, 'Playing', 'Soccer'); -INSERT INTO LIKES (id, likeType, likedObj) VALUES (7369, 'Watching', 'Basketball'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/mapping.ttl deleted file mode 100644 index 64f797ae..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/mapping.ttl +++ /dev/null @@ -1,31 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT EMP.*, (CASE job - WHEN 'CLERK' THEN 'general-office' - WHEN 'NIGHTGUARD' THEN 'security' - WHEN 'ENGINEER' THEN 'engineering' - END) AS ROLE FROM EMP - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:template "http://data.example.com/roles/{ROLE}" - ]; - rml:predicate ex:role - ]; - rml:subjectMap [ - rml:template "http://data.example.com/employee/{empno}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/output.nq deleted file mode 100644 index a1025c8a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/output.nq +++ /dev/null @@ -1 +0,0 @@ - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/resource.sql deleted file mode 100644 index d39327c0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0014d-SQLServer/resource.sql +++ /dev/null @@ -1,24 +0,0 @@ -USE TestDB; -EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT all' -EXEC sp_msforeachtable 'DROP TABLE ?' - -CREATE TABLE DEPT ( - deptno INTEGER UNIQUE, - dname VARCHAR(30), - loc VARCHAR(100)); -INSERT INTO DEPT (deptno, dname, loc) VALUES (10, 'APPSERVER', 'NEW YORK'); - -CREATE TABLE EMP ( - empno INTEGER PRIMARY KEY, - ename VARCHAR(100), - job VARCHAR(30), - deptno INTEGER REFERENCES DEPT (deptno), - etype VARCHAR(30)); -INSERT INTO EMP (empno, ename, job, deptno, etype ) VALUES (7369, 'SMITH', 'CLERK', 10, 'PART_TIME'); - -CREATE TABLE LIKES ( - id INTEGER, - likeType VARCHAR(30), - likedObj VARCHAR(100)); -INSERT INTO LIKES (id, likeType, likedObj) VALUES (7369, 'Playing', 'Soccer'); -INSERT INTO LIKES (id, likeType, likedObj) VALUES (7369, 'Watching', 'Basketball'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/country_en.csv b/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/country_en.csv deleted file mode 100644 index 4dd0aa39..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/country_en.csv +++ /dev/null @@ -1,3 +0,0 @@ -Code,Name -BO,"Bolivia, Plurinational State of" -IE,Ireland diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/country_es.csv b/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/country_es.csv deleted file mode 100644 index 63d50851..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/country_es.csv +++ /dev/null @@ -1,3 +0,0 @@ -Code,Name -BO,"Estado Plurinacional de Bolivia" -IE,Irlanda diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/mapping.ttl deleted file mode 100644 index 61d558f6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/mapping.ttl +++ /dev/null @@ -1,40 +0,0 @@ -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_en.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "en"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_es.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "es"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/output.nq deleted file mode 100644 index a80dd6a3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-CSV/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - "Bolivia, Plurinational State of"@en . - "Estado Plurinacional de Bolivia"@es . - "Ireland"@en . - "Irlanda"@es . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/README.md new file mode 100644 index 00000000..4fa5e58a --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/README.md @@ -0,0 +1,77 @@ +## RMLTC0015a-JSON + +**Title**: "Generation of language tags from a table with language information" + +**Description**: "Generation of language tags from a table with language information" + +**Error expected?** No + +**Input** +``` +{ + "countries": [ + {"Code": "BO", "Name": "Estado Plurinacional de Bolivia"}, + {"Code": "IE", "Name": "Irlanda"} + ] +} + +``` + +**Mapping** +``` +@prefix rdfs: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_en.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:language "en"; + rml:reference "$.Name" + ]; + rml:predicate rdfs:label + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Code}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_es.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:language "es"; + rml:reference "$.Name" + ]; + rml:predicate rdfs:label + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Code}" + ] . + +``` + +**Output** +``` + "Bolivia, Plurinational State of"@en . + "Estado Plurinacional de Bolivia"@es . + "Ireland"@en . + "Irlanda"@es . + + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/mapping.ttl index a9e90bfb..4c3a5035 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0015a-JSON/mapping.ttl @@ -13,12 +13,12 @@ rml:predicateObjectMap [ rml:objectMap [ rml:language "en"; - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate rdfs:label ]; rml:subjectMap [ - rml:template "http://example.com/{Code}" + rml:template "http://example.com/{$.Code}" ] . a rml:TriplesMap; @@ -33,10 +33,10 @@ rml:predicateObjectMap [ rml:objectMap [ rml:language "es"; - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate rdfs:label ]; rml:subjectMap [ - rml:template "http://example.com/{Code}" + rml:template "http://example.com/{$.Code}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/mapping.ttl deleted file mode 100644 index a09b514a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "en"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'ES'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "es"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/output.nq deleted file mode 100644 index a80dd6a3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - "Bolivia, Plurinational State of"@en . - "Estado Plurinacional de Bolivia"@es . - "Ireland"@en . - "Irlanda"@es . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/resource.sql deleted file mode 100644 index 52a4c88e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-MySQL/resource.sql +++ /dev/null @@ -1,13 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Country; - -CREATE TABLE Country ( - Code VARCHAR(2), - Name VARCHAR(100), - Lan VARCHAR(10), - PRIMARY KEY (Code,Lan) -); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Ireland', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Irlanda', 'ES'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/mapping.ttl deleted file mode 100644 index a25b190b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "en"; - rml:reference "name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'ES'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "es"; - rml:reference "name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/output.nq deleted file mode 100644 index a80dd6a3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - "Bolivia, Plurinational State of"@en . - "Estado Plurinacional de Bolivia"@es . - "Ireland"@en . - "Irlanda"@es . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/resource.sql deleted file mode 100644 index 5640c8f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-PostgreSQL/resource.sql +++ /dev/null @@ -1,12 +0,0 @@ -DROP TABLE IF EXISTS Country; - -CREATE TABLE Country ( - Code VARCHAR(2), - Name VARCHAR(100), - Lan VARCHAR(10), - PRIMARY KEY (Code,Lan) -); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Ireland', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Irlanda', 'ES'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/mapping.ttl deleted file mode 100644 index ceca9dad..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "en"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT \"Code\", \"Name\", \"Lan\" - FROM \"Country\" - WHERE \"Lan\" = 'ES'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "es"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/output.nq deleted file mode 100644 index a80dd6a3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - "Bolivia, Plurinational State of"@en . - "Estado Plurinacional de Bolivia"@es . - "Ireland"@en . - "Irlanda"@es . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/resource.sql deleted file mode 100644 index a0a684ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-SQLServer/resource.sql +++ /dev/null @@ -1,13 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Country; - -CREATE TABLE Country ( - Code VARCHAR(2), - Name VARCHAR(100), - Lan VARCHAR(10), - PRIMARY KEY (Code,Lan) -); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Ireland', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Irlanda', 'ES'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/country_en.xml b/src/test/resources/new-test-cases/core/RMLTC0015a-XML/country_en.xml deleted file mode 100644 index be754f17..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/country_en.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - BOBolivia, Plurinational State of - IEIreland - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/country_es.xml b/src/test/resources/new-test-cases/core/RMLTC0015a-XML/country_es.xml deleted file mode 100644 index 62bb8e4a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/country_es.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - BOEstado Plurinacional de Bolivia - IEIrlanda - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015a-XML/mapping.ttl deleted file mode 100644 index 68f671ee..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/mapping.ttl +++ /dev/null @@ -1,42 +0,0 @@ -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/countries/country"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_en.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "en"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/countries/country"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_es.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "es"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0015a-XML/output.nq deleted file mode 100644 index a80dd6a3..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015a-XML/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - "Bolivia, Plurinational State of"@en . - "Estado Plurinacional de Bolivia"@es . - "Ireland"@en . - "Irlanda"@es . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/country_en.csv b/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/country_en.csv deleted file mode 100644 index 4dd0aa39..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/country_en.csv +++ /dev/null @@ -1,3 +0,0 @@ -Code,Name -BO,"Bolivia, Plurinational State of" -IE,Ireland diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/country_es.csv b/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/country_es.csv deleted file mode 100644 index 63d50851..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/country_es.csv +++ /dev/null @@ -1,3 +0,0 @@ -Code,Name -BO,"Estado Plurinacional de Bolivia" -IE,Irlanda diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/mapping.ttl deleted file mode 100644 index 247e382b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-CSV/mapping.ttl +++ /dev/null @@ -1,40 +0,0 @@ -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_en.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-english"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_es.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-spanish"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/README.md new file mode 100644 index 00000000..728ee730 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/README.md @@ -0,0 +1,66 @@ +## RMLTC0015b-JSON + +**Title**: "Generation of language tags from a table with language information, and a term map with invalid rml:language value" + +**Description**: "Tests a term map with an invalid rml:language value, which is an error" + +**Error expected?** Yes + +**Input** +``` +{ + "countries": [ + {"Code": "BO", "Name": "Estado Plurinacional de Bolivia"}, + {"Code": "IE", "Name": "Irlanda"} + ] +} + +``` + +**Mapping** +``` +@prefix rdfs: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_en.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:language "a-english"; + rml:reference "$.Name" + ]; + rml:predicate rdfs:label + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Code}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.countries[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "country_en.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:language "a-spanish"; + rml:reference "$.Name" + ]; + rml:predicate rdfs:label + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Code}" + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/mapping.ttl index 168ef9d5..6f485f7d 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0015b-JSON/mapping.ttl @@ -13,12 +13,12 @@ rml:predicateObjectMap [ rml:objectMap [ rml:language "a-english"; - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate rdfs:label ]; rml:subjectMap [ - rml:template "http://example.com/{Code}" + rml:template "http://example.com/{$.Code}" ] . a rml:TriplesMap; @@ -33,10 +33,10 @@ rml:predicateObjectMap [ rml:objectMap [ rml:language "a-spanish"; - rml:reference "Name" + rml:reference "$.Name" ]; rml:predicate rdfs:label ]; rml:subjectMap [ - rml:template "http://example.com/{Code}" + rml:template "http://example.com/{$.Code}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015b-MySQL/mapping.ttl deleted file mode 100644 index ec8847cf..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-MySQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-english"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-spanish"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0015b-MySQL/resource.sql deleted file mode 100644 index 52a4c88e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-MySQL/resource.sql +++ /dev/null @@ -1,13 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Country; - -CREATE TABLE Country ( - Code VARCHAR(2), - Name VARCHAR(100), - Lan VARCHAR(10), - PRIMARY KEY (Code,Lan) -); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Ireland', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Irlanda', 'ES'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015b-PostgreSQL/mapping.ttl deleted file mode 100644 index f0def09e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-english"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-spanish"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0015b-PostgreSQL/resource.sql deleted file mode 100644 index 5640c8f8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-PostgreSQL/resource.sql +++ /dev/null @@ -1,12 +0,0 @@ -DROP TABLE IF EXISTS Country; - -CREATE TABLE Country ( - Code VARCHAR(2), - Name VARCHAR(100), - Lan VARCHAR(10), - PRIMARY KEY (Code,Lan) -); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Ireland', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Irlanda', 'ES'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015b-SQLServer/mapping.ttl deleted file mode 100644 index b1a77f3b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-SQLServer/mapping.ttl +++ /dev/null @@ -1,51 +0,0 @@ -@prefix d2rq: . -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-english"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ - rml:iterator """ - SELECT Code, Name, Lan - FROM Country - WHERE Lan = 'EN'; - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-spanish"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0015b-SQLServer/resource.sql deleted file mode 100644 index a0a684ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-SQLServer/resource.sql +++ /dev/null @@ -1,13 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Country; - -CREATE TABLE Country ( - Code VARCHAR(2), - Name VARCHAR(100), - Lan VARCHAR(10), - PRIMARY KEY (Code,Lan) -); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Ireland', 'EN'); -INSERT INTO Country (Code, Name, Lan) VALUES ('IE', 'Irlanda', 'ES'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-XML/country_en.xml b/src/test/resources/new-test-cases/core/RMLTC0015b-XML/country_en.xml deleted file mode 100644 index be754f17..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-XML/country_en.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - BOBolivia, Plurinational State of - IEIreland - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-XML/country_es.xml b/src/test/resources/new-test-cases/core/RMLTC0015b-XML/country_es.xml deleted file mode 100644 index 62bb8e4a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-XML/country_es.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - BOEstado Plurinacional de Bolivia - IEIrlanda - diff --git a/src/test/resources/new-test-cases/core/RMLTC0015b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0015b-XML/mapping.ttl deleted file mode 100644 index 41211467..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0015b-XML/mapping.ttl +++ /dev/null @@ -1,42 +0,0 @@ -@prefix rdfs: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/countries/country"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_en.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-english"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/countries/country"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "country_es.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:language "a-spanish"; - rml:reference "Name" - ]; - rml:predicate rdfs:label - ]; - rml:subjectMap [ - rml:template "http://example.com/{Code}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/mapping.ttl deleted file mode 100644 index 7d8ac19c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sex" - ]; - rml:predicate ex:gender - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient/{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/output.nq deleted file mode 100644 index c854ecf9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/output.nq +++ /dev/null @@ -1,16 +0,0 @@ - . - "10"^^ . - "Monica" . - "Geller" . - "female" . - . - "11"^^ . - "Rachel" . - "Green" . - "female" . - . - "12"^^ . - "Chandler" . - "Bing" . - "male" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/resource.sql deleted file mode 100644 index 1b0346e7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-MySQL/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/mapping.ttl deleted file mode 100644 index 18ede22b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "sex" - ]; - rml:predicate ex:gender - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "id" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "firstname" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "lastname" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient/{id}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/output.nq deleted file mode 100644 index c854ecf9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/output.nq +++ /dev/null @@ -1,16 +0,0 @@ - . - "10"^^ . - "Monica" . - "Geller" . - "female" . - . - "11"^^ . - "Rachel" . - "Green" . - "female" . - . - "12"^^ . - "Chandler" . - "Bing" . - "male" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/resource.sql deleted file mode 100644 index 3fa73e67..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-PostgreSQL/resource.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo BYTEA, -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/mapping.ttl deleted file mode 100644 index 29373f89..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "Sex" - ]; - rml:predicate ex:gender - ], [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "ID" - ]; - rml:predicate ex:id - ], [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate ex:firstName - ], [ - rml:objectMap [ - rml:reference "LastName" - ]; - rml:predicate ex:lastName - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient/{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/output.nq deleted file mode 100644 index c854ecf9..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/output.nq +++ /dev/null @@ -1,16 +0,0 @@ - . - "10"^^ . - "Monica" . - "Geller" . - "female" . - . - "11"^^ . - "Rachel" . - "Green" . - "female" . - . - "12"^^ . - "Chandler" . - "Bing" . - "male" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/resource.sql deleted file mode 100644 index e1607220..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016a-SQLServer/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate DATETIME, -PaidInAdvance BIT, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',0, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/mapping.ttl deleted file mode 100644 index bafd2c79..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "Weight" - ]; - rml:predicate ex:weight - ], [ - rml:objectMap [ - rml:reference "Height" - ]; - rml:predicate ex:height - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/output.nq deleted file mode 100644 index 0801105b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/output.nq +++ /dev/null @@ -1,9 +0,0 @@ - . - "8.025E1"^^ . - "1.65E0"^^ . - . - "7.022E1"^^ . - "1.7E0"^^ . - . - "9.031E1"^^ . - "1.76E0"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/resource.sql deleted file mode 100644 index 1b0346e7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-MySQL/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/mapping.ttl deleted file mode 100644 index 14b93e75..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "weight" - ]; - rml:predicate ex:weight - ], [ - rml:objectMap [ - rml:reference "height" - ]; - rml:predicate ex:height - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{id}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/output.nq deleted file mode 100644 index 0801105b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/output.nq +++ /dev/null @@ -1,9 +0,0 @@ - . - "8.025E1"^^ . - "1.65E0"^^ . - . - "7.022E1"^^ . - "1.7E0"^^ . - . - "9.031E1"^^ . - "1.76E0"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/resource.sql deleted file mode 100644 index 3fa73e67..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-PostgreSQL/resource.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo BYTEA, -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/mapping.ttl deleted file mode 100644 index e0e8d53b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "Weight" - ]; - rml:predicate ex:weight - ], [ - rml:objectMap [ - rml:reference "Height" - ]; - rml:predicate ex:height - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/output.nq deleted file mode 100644 index 0801105b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/output.nq +++ /dev/null @@ -1,9 +0,0 @@ - . - "8.025E1"^^ . - "1.65E0"^^ . - . - "7.022E1"^^ . - "1.7E0"^^ . - . - "9.031E1"^^ . - "1.76E0"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/resource.sql deleted file mode 100644 index e1607220..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016b-SQLServer/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate DATETIME, -PaidInAdvance BIT, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',0, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/mapping.ttl deleted file mode 100644 index ea0d4e4e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "BirthDate" - ]; - rml:predicate ex:birthdate - ], [ - rml:objectMap [ - rml:reference "EntranceDate" - ]; - rml:predicate ex:entrancedate - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/output.nq deleted file mode 100644 index 020b5b7c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/output.nq +++ /dev/null @@ -1,9 +0,0 @@ - . - "1981-10-10"^^ . - "2009-10-10T12:12:22"^^ . - . - "1982-11-12"^^ . - "2008-11-12T09:45:44"^^ . - . - "1978-04-06"^^ . - "2007-03-12T02:13:14"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/resource.sql deleted file mode 100644 index 1b0346e7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-MySQL/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/mapping.ttl deleted file mode 100644 index b7eba2d1..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "birthdate" - ]; - rml:predicate ex:birthdate - ], [ - rml:objectMap [ - rml:reference "entrancedate" - ]; - rml:predicate ex:entrancedate - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{id}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/output.nq deleted file mode 100644 index 020b5b7c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/output.nq +++ /dev/null @@ -1,9 +0,0 @@ - . - "1981-10-10"^^ . - "2009-10-10T12:12:22"^^ . - . - "1982-11-12"^^ . - "2008-11-12T09:45:44"^^ . - . - "1978-04-06"^^ . - "2007-03-12T02:13:14"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/resource.sql deleted file mode 100644 index 3fa73e67..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-PostgreSQL/resource.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo BYTEA, -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/mapping.ttl deleted file mode 100644 index ead4ab31..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/mapping.ttl +++ /dev/null @@ -1,35 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "BirthDate" - ]; - rml:predicate ex:birthdate - ], [ - rml:objectMap [ - rml:reference "EntranceDate" - ]; - rml:predicate ex:entrancedate - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/output.nq deleted file mode 100644 index 020b5b7c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/output.nq +++ /dev/null @@ -1,9 +0,0 @@ - . - "1981-10-10"^^ . - "2009-10-10T12:12:22"^^ . - . - "1982-11-12"^^ . - "2008-11-12T09:45:44"^^ . - . - "1978-04-06"^^ . - "2007-03-12T02:13:14"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/resource.sql deleted file mode 100644 index e1607220..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016c-SQLServer/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate DATETIME, -PaidInAdvance BIT, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',0, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/mapping.ttl deleted file mode 100644 index 4164f6f2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "PaidInAdvance" - ]; - rml:predicate ex:paid - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/output.nq deleted file mode 100644 index 578b074e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - "false"^^ . - . - "true"^^ . - . - "true"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/resource.sql deleted file mode 100644 index 1b0346e7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-MySQL/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/mapping.ttl deleted file mode 100644 index 5105f9af..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "paidinadvance" - ]; - rml:predicate ex:paid - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{id}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/output.nq deleted file mode 100644 index 578b074e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - "false"^^ . - . - "true"^^ . - . - "true"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/resource.sql deleted file mode 100644 index 3fa73e67..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-PostgreSQL/resource.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo BYTEA, -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -'\\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/mapping.ttl deleted file mode 100644 index 691cefd5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:reference "PaidInAdvance" - ]; - rml:predicate ex:paid - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/output.nq deleted file mode 100644 index 578b074e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - "false"^^ . - . - "true"^^ . - . - "true"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/resource.sql deleted file mode 100644 index e1607220..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016d-SQLServer/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate DATETIME, -PaidInAdvance BIT, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',0, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/mapping.ttl deleted file mode 100644 index 34086d5f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:template "data:image/png;hex,{Photo}" - ]; - rml:predicate ex:photo - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/output.nq deleted file mode 100644 index 789a3e30..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/resource.sql deleted file mode 100644 index 1b0346e7..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-MySQL/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -X'89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/mapping.ttl deleted file mode 100644 index f6d99e51..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:template "data:image/png;hex,{photo}" - ]; - rml:predicate ex:photo - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{id}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/output.nq deleted file mode 100644 index 789a3e30..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/resource.sql deleted file mode 100644 index 51e63e7b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-PostgreSQL/resource.sql +++ /dev/null @@ -1,27 +0,0 @@ -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate TIMESTAMP, -PaidInAdvance BOOLEAN, -Photo BYTEA, -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',FALSE, -'\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',TRUE, -'\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',TRUE, -'\x89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/mapping.ttl deleted file mode 100644 index 2fbf776c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Patient" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ], [ - rml:objectMap [ - rml:template "data:image/png;hex,{Photo}" - ]; - rml:predicate ex:photo - ]; - rml:subjectMap [ - rml:template "http://example.com/Patient{ID}" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/output.nq deleted file mode 100644 index 789a3e30..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/output.nq +++ /dev/null @@ -1,6 +0,0 @@ - . - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/resource.sql deleted file mode 100644 index e1607220..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0016e-SQLServer/resource.sql +++ /dev/null @@ -1,28 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Patient; - -CREATE TABLE Patient ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50), -Sex VARCHAR(6), -Weight REAL, -Height FLOAT, -BirthDate DATE, -EntranceDate DATETIME, -PaidInAdvance BIT, -Photo VARBINARY(200), -PRIMARY KEY (ID) -); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (10,'Monica','Geller','female',80.25,1.65,'1981-10-10','2009-10-10 12:12:22',0, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (11,'Rachel','Green','female',70.22,1.70,'1982-11-12','2008-11-12 09:45:44',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFF3FC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); - -INSERT INTO Patient (ID, FirstName,LastName,Sex,Weight,Height,BirthDate,EntranceDate,PaidInAdvance,Photo) -VALUES (12,'Chandler','Bing','male',90.31,1.76,'1978-04-06','2007-03-12 02:13:14',1, -CAST('89504E470D0A1A0A0000000D49484452000000050000000508060000008D6F26E50000001C4944415408D763F9FFFEBFC37F062005C3201284D031F18258CD04000EF535CBD18E0E1F0000000049454E44AE426082' as VARBINARY)); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/mapping.ttl deleted file mode 100644 index 5618ce88..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/output.nq deleted file mode 100644 index d07559d8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "http://example.com/ns#Jhon" . - "Carlos" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/persons.csv b/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/persons.csv deleted file mode 100644 index d1b36144..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-CSV/persons.csv +++ /dev/null @@ -1,3 +0,0 @@ -ID,FirstName,LastName -10,http://example.com/ns#Jhon,Smith -20,Carlos,Mendoza diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/README.md new file mode 100644 index 00000000..6c906c7d --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/README.md @@ -0,0 +1,60 @@ +## RMLTC0019a-JSON + +**Title**: "Generation of triples by using IRI value in columns" + +**Description**: "Test the generation of triples by using IRI value in attributes" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + { + "ID": 10, + "FirstName": "http://example.com/ns#Jhon", + "LastName": "Smith" + }, + { + "ID": 20, + "FirstName": "Carlos", + "LastName": "Mendoza" + } + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:reference "$.FirstName" + ] . + +``` + +**Output** +``` + "http://example.com/ns#Jhon" . + "Carlos" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/mapping.ttl index 63a7b5f9..2870ff6e 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0019a-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/mapping.ttl deleted file mode 100644 index 514e6594..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT ID, FirstName, LastName - FROM Employee - WHERE ID < 30 - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/output.nq deleted file mode 100644 index d07559d8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "http://example.com/ns#Jhon" . - "Carlos" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/resource.sql deleted file mode 100644 index 24988be6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-MySQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Employee; - -CREATE TABLE Employee ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50) -); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (10,'http://example.com/ns#Jhon','Smith'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (20,'Carlos','Mendoza'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (30,'Juan Daniel','Crespo'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/mapping.ttl deleted file mode 100644 index 0a57c29f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT ID, FirstName, LastName - FROM Employee - WHERE ID < 30 - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "firstname" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "firstname" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/output.nq deleted file mode 100644 index d07559d8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "http://example.com/ns#Jhon" . - "Carlos" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/resource.sql deleted file mode 100644 index ae78dc8a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-PostgreSQL/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS Employee; - -CREATE TABLE Employee ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50) -); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (10,'http://example.com/ns#Jhon','Smith'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (20,'Carlos','Mendoza'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (30,'Juan Daniel','Crespo'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/mapping.ttl deleted file mode 100644 index 808b17d2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - SELECT ID, FirstName, LastName - FROM Employee - WHERE ID < 30 - """; - rml:source ; - rml:referenceFormulation rml:SQL2008Query - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/output.nq deleted file mode 100644 index d07559d8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "http://example.com/ns#Jhon" . - "Carlos" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/resource.sql deleted file mode 100644 index 2ff708ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-SQLServer/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Employee; - -CREATE TABLE Employee ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50) -); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (10,'http://example.com/ns#Jhon','Smith'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (20,'Carlos','Mendoza'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (30,'Juan Daniel','Crespo'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019a-XML/mapping.ttl deleted file mode 100644 index 75e60005..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/persons/person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0019a-XML/output.nq deleted file mode 100644 index d07559d8..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-XML/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "http://example.com/ns#Jhon" . - "Carlos" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019a-XML/persons.xml b/src/test/resources/new-test-cases/core/RMLTC0019a-XML/persons.xml deleted file mode 100644 index 7579d58b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019a-XML/persons.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - 10 - http://example.com/ns#Jhon - Smith - - - 20 - Carlos - Mendoza - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019b-CSV/mapping.ttl deleted file mode 100644 index 5618ce88..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-CSV/persons.csv b/src/test/resources/new-test-cases/core/RMLTC0019b-CSV/persons.csv deleted file mode 100644 index a89aea2e..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-CSV/persons.csv +++ /dev/null @@ -1,4 +0,0 @@ -ID,FirstName,LastName -10,http://example.com/ns#Jhon,Smith -20,Carlos,Mendoza -30,Juan Daniel,Crespo diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/README.md new file mode 100644 index 00000000..73dcd7b4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/README.md @@ -0,0 +1,63 @@ +## RMLTC0019b-JSON + +**Title**: "Generation of triples by using IRI value in columns, with data error" + +**Description**: "Test the generation of triples by using IRI value in attributes, conforming RML mapping with data error (and limited results)" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + { + "ID": 10, + "FirstName": "http://example.com/ns#Jhon", + "LastName": "Smith" + }, + { + "ID": 20, + "FirstName": "Carlos", + "LastName": "Mendoza" + }, + { + "ID": 30, + "FirstName": "Juan Daniel", + "LastName": "Crespo" + } + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.FirstName" + ]; + rml:predicate foaf:name + ]; + rml:subjectMap [ + rml:reference "$.FirstName" + ] . + +``` + +**Output** +``` + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/mapping.ttl index 63a7b5f9..2870ff6e 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/mapping.ttl @@ -12,10 +12,10 @@ ]; rml:predicateObjectMap [ rml:objectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ]; rml:predicate foaf:name ]; rml:subjectMap [ - rml:reference "FirstName" + rml:reference "$.FirstName" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0019b-JSON/output.nq similarity index 100% rename from src/test/resources/new-test-cases/core/RMLTC0000-SPARQL/output.nq rename to src/test/resources/new-test-cases/core/RMLTC0019b-JSON/output.nq diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019b-MySQL/mapping.ttl deleted file mode 100644 index 788d1cce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Employee" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0019b-MySQL/resource.sql deleted file mode 100644 index 24988be6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-MySQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Employee; - -CREATE TABLE Employee ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50) -); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (10,'http://example.com/ns#Jhon','Smith'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (20,'Carlos','Mendoza'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (30,'Juan Daniel','Crespo'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019b-PostgreSQL/mapping.ttl deleted file mode 100644 index e7f00f33..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Employee" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "firstname" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "firstname" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0019b-PostgreSQL/resource.sql deleted file mode 100644 index ae78dc8a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-PostgreSQL/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS Employee; - -CREATE TABLE Employee ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50) -); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (10,'http://example.com/ns#Jhon','Smith'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (20,'Carlos','Mendoza'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (30,'Juan Daniel','Crespo'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019b-SQLServer/mapping.ttl deleted file mode 100644 index 9172f6ce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Employee" - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0019b-SQLServer/resource.sql deleted file mode 100644 index 2ff708ef..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-SQLServer/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Employee; - -CREATE TABLE Employee ( -ID INTEGER, -FirstName VARCHAR(50), -LastName VARCHAR(50) -); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (10,'http://example.com/ns#Jhon','Smith'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (20,'Carlos','Mendoza'); -INSERT INTO Employee (ID,FirstName,LastName) VALUES (30,'Juan Daniel','Crespo'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0019b-XML/mapping.ttl deleted file mode 100644 index 75e60005..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/persons/person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "persons.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "FirstName" - ]; - rml:predicate foaf:name - ]; - rml:subjectMap [ - rml:reference "FirstName" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0019b-XML/persons.xml b/src/test/resources/new-test-cases/core/RMLTC0019b-XML/persons.xml deleted file mode 100644 index 4f01b2e5..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0019b-XML/persons.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 10 - http://example.com/ns#Jhon - Smith - - - 20 - Carlos - Mendoza - - - 30 - Juan Daniel - Crespo - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/mapping.ttl deleted file mode 100644 index fb9c8f5d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/mapping.ttl +++ /dev/null @@ -1,20 +0,0 @@ -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "{Name}"; - rml:termType rml:IRI - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/output.nq deleted file mode 100644 index 65071a55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/student.csv deleted file mode 100644 index 289cde5c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-CSV/student.csv +++ /dev/null @@ -1,6 +0,0 @@ -Name -http://example.com/company/Alice -Bob -Bob/Charles -path/../Danny -Emily Smith diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/README.md new file mode 100644 index 00000000..1458831b --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/README.md @@ -0,0 +1,58 @@ +## RMLTC0020a-JSON + +**Title**: "Generation of triples by using IRI value in columns" + +**Description**: "Test the generation of triples by using IRI value in attributes" + +**Error expected?** No + +**Input** +``` +{ + "students": [ + {"Name": "http://example.com/company/Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "path/../Danny"}, + {"Name": "Emily Smith"} + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "{$.Name}"; + rml:termType rml:IRI + ] . + +``` + +**Output** +``` + . + . + . + . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/mapping.ttl index e3268b17..0d2892f8 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0020a-JSON/mapping.ttl @@ -16,6 +16,6 @@ rml:predicate rdf:type ]; rml:subjectMap [ - rml:template "{Name}"; + rml:template "{$.Name}"; rml:termType rml:IRI ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/mapping.ttl deleted file mode 100644 index f60f5907..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "{Name}"; - rml:termType rml:IRI - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/output.nq deleted file mode 100644 index 65071a55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/resource.sql deleted file mode 100644 index f9b025b2..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-MySQL/resource.sql +++ /dev/null @@ -1,13 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.Student_Sport; -DROP TABLE IF EXISTS test.Student; - -CREATE TABLE Student ( -Name VARCHAR(50) -); - -INSERT INTO Student (Name) VALUES ('http://example.com/company/Alice'); -INSERT INTO Student (Name) VALUES ('Bob'); -INSERT INTO Student (Name) VALUES ('Bob/Charles'); -INSERT INTO Student (Name) VALUES ('path/../Danny'); -INSERT INTO Student (Name) VALUES ('Emily Smith'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/mapping.ttl deleted file mode 100644 index 5b5e1d9b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "{name}"; - rml:termType rml:IRI - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password "password"; - d2rq:username "postgres" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/output.nq deleted file mode 100644 index 65071a55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/resource.sql deleted file mode 100644 index 0bee3169..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-PostgreSQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -DROP TABLE IF EXISTS Student; - -CREATE TABLE Student ( -Name VARCHAR(50) -); - -INSERT INTO Student (Name) VALUES ('http://example.com/company/Alice'); -INSERT INTO Student (Name) VALUES ('Bob'); -INSERT INTO Student (Name) VALUES ('Bob/Charles'); -INSERT INTO Student (Name) VALUES ('path/../Danny'); -INSERT INTO Student (Name) VALUES ('Emily Smith'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/mapping.ttl deleted file mode 100644 index f6e5b4f0..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix d2rq: . -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Student" - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "{Name}"; - rml:termType rml:IRI - ] . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/output.nq deleted file mode 100644 index 65071a55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/resource.sql deleted file mode 100644 index 959a905b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-SQLServer/resource.sql +++ /dev/null @@ -1,12 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS Student; - -CREATE TABLE Student ( -Name VARCHAR(50) -); - -INSERT INTO Student (Name) VALUES ('http://example.com/company/Alice'); -INSERT INTO Student (Name) VALUES ('Bob'); -INSERT INTO Student (Name) VALUES ('Bob/Charles'); -INSERT INTO Student (Name) VALUES ('path/../Danny'); -INSERT INTO Student (Name) VALUES ('Emily Smith'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0020a-XML/mapping.ttl deleted file mode 100644 index 8a179cce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-XML/mapping.ttl +++ /dev/null @@ -1,21 +0,0 @@ -@prefix foaf: . -@prefix rdf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:object foaf:Person; - rml:predicate rdf:type - ]; - rml:subjectMap [ - rml:template "{Name}"; - rml:termType rml:IRI - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0020a-XML/output.nq deleted file mode 100644 index 65071a55..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - . - . - . - . diff --git a/src/test/resources/new-test-cases/core/RMLTC0020a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0020a-XML/student.xml deleted file mode 100644 index 467bf17d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0020a-XML/student.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - http://example.com/company/Alice - Bob - Bob/Charles - path/../Danny - Emily Smith - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/mapping.ttl deleted file mode 100644 index 79799413..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/mapping.ttl +++ /dev/null @@ -1,25 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "Sport" - ]; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:sameSportAs - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/output.nq deleted file mode 100644 index 4488c582..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - . - . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/student.csv deleted file mode 100644 index 8a96794b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-CSV/student.csv +++ /dev/null @@ -1,4 +0,0 @@ -ID,Name,Sport -10,Venus Williams,Tennis -20,Serena Williams,Tennis -30,Loena Hendrickx,Figure skating diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/README.md new file mode 100644 index 00000000..b5511f29 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/README.md @@ -0,0 +1,73 @@ +## RMLTC0021a-JSON + +**Title**: "Generation of triples referencing object map" + +**Description**: "Tests the mapping specification referencing object map with same logical source and join condition" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus Williams", + "Sport": "Tennis" + }, { + "ID": 20, + "Name":"Serena Williams", + "Sport": "Tennis" + }, { + "ID": 30, + "Name":"Loena Hendrickx", + "Sport": "Figure skating" + }] +} + +``` + +**Mapping** +``` +@prefix activity: . +@prefix ex: . +@prefix rdf: . +@prefix rml: . + + a rml:RefObjectMap; + rml:joinCondition [ + rml:child "$.Sport"; + rml:parent "$.Sport" + ]; + rml:parentTriplesMap . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap ; + rml:predicate ex:sameSportAs + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.ID}/{$.Name}" + ] . + +``` + +**Output** +``` + . + . + . + . + . + + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/mapping.ttl index 0603e541..f7a7d85a 100644 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/mapping.ttl +++ b/src/test/resources/new-test-cases/core/RMLTC0021a-JSON/mapping.ttl @@ -5,8 +5,8 @@ a rml:RefObjectMap; rml:joinCondition [ - rml:child "Sport"; - rml:parent "Sport" + rml:child "$.Sport"; + rml:parent "$.Sport" ]; rml:parentTriplesMap . @@ -24,5 +24,5 @@ rml:predicate ex:sameSportAs ]; rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" + rml:template "http://example.com/Student/{$.ID}/{$.Name}" ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/mapping.ttl deleted file mode 100644 index 079d449f..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.mysql.cj.jdbc.Driver"; - d2rq:password ""; - d2rq:username "root" . - - a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "Sport" - ]; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:sameSportAs - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/output.nq deleted file mode 100644 index 4488c582..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - . - . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/resource.sql deleted file mode 100644 index d7f421d4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-MySQL/resource.sql +++ /dev/null @@ -1,11 +0,0 @@ -USE test; -DROP TABLE IF EXISTS test.student; - -CREATE TABLE student ( - ID INTEGER, - Name VARCHAR(50), - Sport VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); -INSERT INTO student values ('20', 'Serena Williams', 'Tennis'); -INSERT INTO student values ('30', 'Loena Hendrickx', 'Figure skating'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/mapping.ttl deleted file mode 100644 index 7d2dff27..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "org.postgresql.Driver"; - d2rq:password ""; - d2rq:username "postgres" . - - a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "Sport" - ]; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:sameSportAs - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/output.nq deleted file mode 100644 index 4488c582..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - . - . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/resource.sql deleted file mode 100644 index 9e31d74b..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-PostgreSQL/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -DROP TABLE IF EXISTS student; - -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); -INSERT INTO student values ('20', 'Serena Williams', 'Tennis'); -INSERT INTO student values ('30', 'Loena Hendrickx', 'Figure skating'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/mapping.ttl deleted file mode 100644 index 5e44b45c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/mapping.ttl +++ /dev/null @@ -1,40 +0,0 @@ -@prefix ex: . -@prefix formats: . -@prefix rml: . -@prefix sd: . - -ex:RefObjectMap1 a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport.value"; - rml:parent "Sport.value" - ]; - rml:parentTriplesMap ex:TriplesMap1 . - -ex:TriplesMap1 a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator """ - PREFIX rdfs: - PREFIX foaf: - PREFIX rdf: - SELECT ?Name ?ID - WHERE { - ?x foaf:name ?Name ; - rdf:ID ?ID ; - } """; - rml:referenceFormulation formats:SPARQL_Results_JSON; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path - ] - ]; - rml:predicateObjectMap [ - rml:objectMap ex:RefObjectMap1; - rml:predicate ex:sameSportAs - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID.value}/{Name.value}" - ] . - - a sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/output.nq b/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/output.nq deleted file mode 100644 index 4488c582..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - . - . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/resource.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/resource.ttl deleted file mode 100644 index fd943016..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-SPARQL/resource.ttl +++ /dev/null @@ -1,19 +0,0 @@ -@prefix foaf: . -@prefix ns1: . -@prefix rdf: . - -[] ns1:plays [ a ns1:Sport ; - foaf:name "Tennis" ] ; - rdf:ID "10" ; - foaf:name "Venus Williams" . - -[] ns1:plays [ a ns1:Sport ; - foaf:name "Tennis" ] ; - rdf:ID "20" ; - foaf:name "Serena Williams" . - -[] ns1:plays [ a ns1:Sport ; - foaf:name "Figure skating" ] ; - rdf:ID "30" ; - foaf:name "Loena Hendrickx" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/mapping.ttl deleted file mode 100644 index a3be9075..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/mapping.ttl +++ /dev/null @@ -1,30 +0,0 @@ -@prefix d2rq: . -@prefix ex: . -@prefix rml: . - - a d2rq:Database; - d2rq:jdbcDSN "CONNECTIONDSN"; - d2rq:jdbcDriver "com.microsoft.sqlserver.jdbc.SQLServerDriver"; - d2rq:password "YourSTRONG!Passw0rd;"; - d2rq:username "sa" . - - a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "Sport" - ]; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ - rml:source ; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "student" - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:sameSportAs - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/output.nq b/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/output.nq deleted file mode 100644 index 4488c582..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - . - . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/resource.sql b/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/resource.sql deleted file mode 100644 index 76d1c3e6..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-SQLServer/resource.sql +++ /dev/null @@ -1,10 +0,0 @@ -USE TestDB; -DROP TABLE IF EXISTS student; -CREATE TABLE student ( - "ID" INTEGER, - "Name" VARCHAR(50), - "Sport" VARCHAR(50) -); -INSERT INTO student values ('10', 'Venus Williams', 'Tennis'); -INSERT INTO student values ('20', 'Serena Williams', 'Tennis'); -INSERT INTO student values ('30', 'Loena Hendrickx', 'Figure skating'); diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0021a-XML/mapping.ttl deleted file mode 100644 index 60bf4a18..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-XML/mapping.ttl +++ /dev/null @@ -1,26 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:RefObjectMap; - rml:joinCondition [ - rml:child "Sport"; - rml:parent "Sport" - ]; - rml:parentTriplesMap . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/students/student"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap ; - rml:predicate ex:sameSportAs - ]; - rml:subjectMap [ - rml:template "http://example.com/Student/{ID}/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0021a-XML/output.nq deleted file mode 100644 index 4488c582..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-XML/output.nq +++ /dev/null @@ -1,7 +0,0 @@ - . - . - . - . - . - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0021a-XML/student.xml b/src/test/resources/new-test-cases/core/RMLTC0021a-XML/student.xml deleted file mode 100644 index 2b184f7d..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0021a-XML/student.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - 10 - Venus Williams - Tennis - - - 20 - Serena Williams - Tennis - - - 30 - Loena Hendrickx - Figure skating - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/mapping.ttl deleted file mode 100644 index af948398..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/mapping.ttl +++ /dev/null @@ -1,29 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . -@prefix xsd: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "student.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:datatype xsd:string; - rml:reference "Name" - ]; - rml:predicate foaf:name - ], [ - rml:objectMap [ - rml:datatype xsd:int; - rml:reference "Age" - ]; - rml:predicate ex:age - ]; - rml:subjectMap [ - rml:template "http://example.com/{Name}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/output.nq deleted file mode 100644 index a25ee88a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "Venus"^^ . - "21"^^ . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/student.csv b/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/student.csv deleted file mode 100644 index 7af01247..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022a-CSV/student.csv +++ /dev/null @@ -1,2 +0,0 @@ -Name,Age -Venus,21 diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/README.md new file mode 100644 index 00000000..d3d9f9e2 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/README.md @@ -0,0 +1,62 @@ +## RMLTC0022a-JSON + +**Title**: "Generating of triples with constant datatype" + +**Description**: "Test triples with a fixed constant datatype" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus", + "Age": 21 + }] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . +@prefix xsd: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:datatype xsd:string; + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ + rml:datatype xsd:int; + rml:reference "$.Age" + ]; + rml:predicate ex:age + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Name}" + ] . + +``` + +**Output** +``` + "Venus"^^ . + "21"^^ . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/mapping.ttl new file mode 100644 index 00000000..761e5507 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/mapping.ttl @@ -0,0 +1,30 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . +@prefix xsd: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:datatype xsd:string; + rml:reference "$.Name" + ]; + rml:predicate foaf:name + ], [ + rml:objectMap [ + rml:datatype xsd:int; + rml:reference "$.Age" + ]; + rml:predicate ex:age + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.Name}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/output.nq new file mode 100644 index 00000000..f18b6f47 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/output.nq @@ -0,0 +1,2 @@ + "Venus"^^ . + "21"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/student.json new file mode 100644 index 00000000..b51a0d81 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022a-JSON/student.json @@ -0,0 +1,7 @@ +{ + "students": [{ + "ID": 10, + "Name":"Venus", + "Age": 21 + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/data.csv b/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/data.csv deleted file mode 100644 index 00a92ee4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/data.csv +++ /dev/null @@ -1,3 +0,0 @@ -FOO,BAR -1,string -2,int diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/mapping.ttl deleted file mode 100644 index 40a4c33a..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/mapping.ttl +++ /dev/null @@ -1,23 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "data.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:datatypeMap [ - rml:template "http://www.w3.org/2001/XMLSchema#{BAR}" - ]; - rml:reference "FOO" - ]; - rml:predicate ex:x - ]; - rml:subjectMap [ - rml:template "http://example.com/{FOO}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/output.nq deleted file mode 100644 index c81c7378..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022b-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "1"^^ . - "2"^^ . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/README.md new file mode 100644 index 00000000..0c904842 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/README.md @@ -0,0 +1,54 @@ +## RMLTC0022b-JSON + +**Title**: "Generating of triples with datatypeMap" + +**Description**: "Test triples with a XSD datatype generated from the data" + +**Error expected?** No + +**Input** +``` +[ + { "FOO": 1, "BAR": "string"}, + { "FOO": 2, "BAR": "int"} +] + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "data.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:datatypeMap [ + rml:template "http://www.w3.org/2001/XMLSchema#{$.BAR}" + ]; + rml:reference "$.FOO" + ]; + rml:predicate ex:x + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.FOO}" + ] . + + +``` + +**Output** +``` + "1"^^ . + "2"^^ . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/data.json b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/data.json new file mode 100644 index 00000000..6b0dcef9 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/data.json @@ -0,0 +1,4 @@ +[ + { "FOO": 1, "BAR": "string"}, + { "FOO": 2, "BAR": "int"} +] diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/mapping.ttl new file mode 100644 index 00000000..0f519282 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/mapping.ttl @@ -0,0 +1,25 @@ +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "data.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:datatypeMap [ + rml:template "http://www.w3.org/2001/XMLSchema#{$.BAR}" + ]; + rml:reference "$.FOO" + ]; + rml:predicate ex:x + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.FOO}" + ] . + diff --git a/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/output.nq new file mode 100644 index 00000000..0e3c60c4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022b-JSON/output.nq @@ -0,0 +1,2 @@ + "1"^^ . + "2"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/data.csv b/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/data.csv deleted file mode 100644 index 00a92ee4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/data.csv +++ /dev/null @@ -1,3 +0,0 @@ -FOO,BAR -1,string -2,int diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/mapping.ttl deleted file mode 100644 index 3aa1c86c..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/mapping.ttl +++ /dev/null @@ -1,23 +0,0 @@ -@prefix ex: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:referenceFormulation rml:CSV; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "data.csv" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:datatypeMap [ - rml:template "datatype#{BAR}" - ]; - rml:reference "FOO" - ]; - rml:predicate ex:x - ]; - rml:subjectMap [ - rml:template "http://example.com/{FOO}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/output.nq b/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/output.nq deleted file mode 100644 index 593f6c51..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0022c-CSV/output.nq +++ /dev/null @@ -1,2 +0,0 @@ - "1"^^ . - "2"^^ . \ No newline at end of file diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/README.md new file mode 100644 index 00000000..e5af7d70 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/README.md @@ -0,0 +1,53 @@ +## RMLTC0022c-JSON + +**Title**: "Generating of triples with datatypeMap with custom datatype" + +**Description**: "Test triples with a custom datype from the data" + +**Error expected?** No + +**Input** +``` +[ + { "FOO": 1, "BAR": "string"}, + { "FOO": 2, "BAR": "int"} +] + +``` + +**Mapping** +``` +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "data.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:datatypeMap [ + rml:template "datatype#{$.BAR}" + ]; + rml:reference "$.FOO" + ]; + rml:predicate ex:x + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.FOO}" + ] . + +``` + +**Output** +``` + "1"^^ . + "2"^^ . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/data.json b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/data.json new file mode 100644 index 00000000..6b0dcef9 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/data.json @@ -0,0 +1,4 @@ +[ + { "FOO": 1, "BAR": "string"}, + { "FOO": 2, "BAR": "int"} +] diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/mapping.ttl new file mode 100644 index 00000000..3bc1cd72 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/mapping.ttl @@ -0,0 +1,24 @@ +@prefix ex: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "data.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:datatypeMap [ + rml:template "datatype#{$.BAR}" + ]; + rml:reference "$.FOO" + ]; + rml:predicate ex:x + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.FOO}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/output.nq new file mode 100644 index 00000000..f08f0a1b --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0022c-JSON/output.nq @@ -0,0 +1,2 @@ + "1"^^ . + "2"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/README.md new file mode 100644 index 00000000..d117d362 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/README.md @@ -0,0 +1,40 @@ +## RMLTC0023a-JSON + +**Title**: "Invalid IRI template 1" + +**Description**: "Test handling of invalid IRI template" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{NON_EXISTING_COLUMN}"; + rml:class foaf:Person; + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/mapping.ttl new file mode 100644 index 00000000..0e890d83 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/mapping.ttl @@ -0,0 +1,16 @@ +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{NON_EXISTING_COLUMN}"; + rml:class foaf:Person; + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/student.json new file mode 100644 index 00000000..0f6f797f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023a-JSON/student.json @@ -0,0 +1,6 @@ +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0023a-XML/ious.xml b/src/test/resources/new-test-cases/core/RMLTC0023a-XML/ious.xml deleted file mode 100644 index aad50963..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0023a-XML/ious.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/src/test/resources/new-test-cases/core/RMLTC0023a-XML/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023a-XML/mapping.ttl deleted file mode 100644 index 16ac0cce..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0023a-XML/mapping.ttl +++ /dev/null @@ -1,23 +0,0 @@ -@prefix ex: . -@prefix foaf: . -@prefix rml: . - - a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:iterator "/persons/person"; - rml:referenceFormulation rml:XPath; - rml:source [ a rml:RelativePathSource; - rml:root rml:MappingDirectory; - rml:path "ious.xml" - ] - ]; - rml:predicateObjectMap [ - rml:objectMap [ - rml:reference "@amount" - ]; - rml:predicate ex:owes - ]; - rml:subjectMap [ - rml:class foaf:Person; - rml:template "http://example.com/{@fname};{@lname}" - ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0023a-XML/output.nq b/src/test/resources/new-test-cases/core/RMLTC0023a-XML/output.nq deleted file mode 100644 index 64e91da4..00000000 --- a/src/test/resources/new-test-cases/core/RMLTC0023a-XML/output.nq +++ /dev/null @@ -1,5 +0,0 @@ - . - "30.0E0" . - . - "20.0E0" . - diff --git a/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/README.md new file mode 100644 index 00000000..ac69aec3 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/README.md @@ -0,0 +1,40 @@ +## RMLTC0023b-JSON + +**Title**: "Invalid IRI template 2" + +**Description**: "Test handling of invalid IRI template" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "{Name}":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{{Name}}"; + rml:class foaf:Person; + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/mapping.ttl new file mode 100644 index 00000000..4c4e6923 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/mapping.ttl @@ -0,0 +1,16 @@ +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{{Name}}"; + rml:class foaf:Person; + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/student.json new file mode 100644 index 00000000..2aa21689 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023b-JSON/student.json @@ -0,0 +1,6 @@ +{ + "students": [{ + "ID": 10, + "{Name}":"Venus" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/README.md new file mode 100644 index 00000000..2b7b103d --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/README.md @@ -0,0 +1,41 @@ +## RMLTC0023c-JSON + +**Title**: "Invalid IRI template 3" + +**Description**: "Test handling of invalid IRI template" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "N\ame":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{N\ame}"; + rml:class foaf:Person; + ] . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/mapping.ttl new file mode 100644 index 00000000..e23f6935 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/mapping.ttl @@ -0,0 +1,17 @@ +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{N\ame}"; + rml:class foaf:Person; + ] . + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/student.json new file mode 100644 index 00000000..a905e537 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023c-JSON/student.json @@ -0,0 +1,6 @@ +{ + "students": [{ + "ID": 10, + "N\ame":"Venus" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/README.md new file mode 100644 index 00000000..c3073f9c --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/README.md @@ -0,0 +1,41 @@ +## RMLTC0023d-JSON + +**Title**: "Invalid IRI template 4" + +**Description**: "Test handling of invalid IRI template" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{Name\}"; + rml:class foaf:Person; + ] . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/mapping.ttl new file mode 100644 index 00000000..0b46f351 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/mapping.ttl @@ -0,0 +1,17 @@ +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{Name\}"; + rml:class foaf:Person; + ] . + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/student.json new file mode 100644 index 00000000..0f6f797f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023d-JSON/student.json @@ -0,0 +1,6 @@ +{ + "students": [{ + "ID": 10, + "Name":"Venus" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/README.md new file mode 100644 index 00000000..f53f3caf --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/README.md @@ -0,0 +1,41 @@ +## RMLTC0023e-JSON + +**Title**: "Invalid IRI template 5" + +**Description**: "Test handling of invalid IRI template" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "{Name}":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{\\{Name\\}}"; + rml:class foaf:Person; + ] . + + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/mapping.ttl new file mode 100644 index 00000000..6a619068 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/mapping.ttl @@ -0,0 +1,17 @@ +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{\\{Name\\}}"; + rml:class foaf:Person; + ] . + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/student.json new file mode 100644 index 00000000..2aa21689 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023e-JSON/student.json @@ -0,0 +1,6 @@ +{ + "students": [{ + "ID": 10, + "{Name}":"Venus" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/README.md new file mode 100644 index 00000000..ab1bb28b --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/README.md @@ -0,0 +1,40 @@ +## RMLTC0023f-JSON + +**Title**: "Invalid IRI template 6" + +**Description**: "Test handling of invalid IRI template" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "ID": 10, + "N\ame":"Venus" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{N\\\ame}"; + rml:class foaf:Person; + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/mapping.ttl new file mode 100644 index 00000000..98c1d29e --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/mapping.ttl @@ -0,0 +1,16 @@ +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.students[*]"; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:subjectMap [ + rml:template "http://example.com/{N\\\ame}"; + rml:class foaf:Person; + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/student.json new file mode 100644 index 00000000..a905e537 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0023f-JSON/student.json @@ -0,0 +1,6 @@ +{ + "students": [{ + "ID": 10, + "N\ame":"Venus" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/README.md new file mode 100644 index 00000000..5bf2ee67 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/README.md @@ -0,0 +1,53 @@ +## RMLTC0025a-JSON + +**Title**: "Generation of triples with constant blank node " + +**Description**: "Tests the generation of triples with a constant blank node" + +**Error expected?** No + +**Input** +``` +{ + "students": [{ + "Name":"Venus" + }, + { + "Name":"Julio" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . +@prefix ex: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:student + ]; + rml:subject _:School . + +``` + +**Output** +``` +_:School "Julio" . +_:School "Venus" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/mapping.ttl new file mode 100644 index 00000000..fb1a85a8 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/mapping.ttl @@ -0,0 +1,20 @@ +@prefix foaf: . +@prefix rml: . +@prefix ex: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:student + ]; + rml:subject _:School . diff --git a/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/output.nq new file mode 100644 index 00000000..0c848cda --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/output.nq @@ -0,0 +1,2 @@ +_:School "Julio" . +_:School "Venus" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/student.json new file mode 100644 index 00000000..10ebb2e1 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025a-JSON/student.json @@ -0,0 +1,8 @@ +{ + "students": [{ + "Name":"Venus" + }, + { + "Name":"Julio" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/README.md new file mode 100644 index 00000000..d2bb61be --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/README.md @@ -0,0 +1,49 @@ +## RMLTC0025b-JSON + +**Title**: "Usage of constant term maps in combination with explicitly defined term types" + +**Description**: "Tests the usage of constant term maps in combination with explicitly defined term types" + +**Error expected?** Yes + +**Input** +``` +{ + "students": [{ + "Name":"Venus" + }, + { + "Name":"Julio" + }] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rml: . +@prefix ex: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:student + ]; + rml:subjectMap [ + rml:constant "School"; + rml:termType rml:BlankNode + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/mapping.ttl new file mode 100644 index 00000000..387a3943 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/mapping.ttl @@ -0,0 +1,23 @@ +@prefix foaf: . +@prefix rml: . +@prefix ex: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.Name" + ]; + rml:predicate ex:student + ]; + rml:subjectMap [ + rml:constant "School"; + rml:termType rml:BlankNode + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/student.json new file mode 100644 index 00000000..10ebb2e1 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0025b-JSON/student.json @@ -0,0 +1,8 @@ +{ + "students": [{ + "Name":"Venus" + }, + { + "Name":"Julio" + }] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/README.md new file mode 100644 index 00000000..def1aa02 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/README.md @@ -0,0 +1,53 @@ +## RMLTC0026a-JSON + +**Title**: "Generation of triples from arrays" + +**Description**: "Tests the generation of triples from array input data structures" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amounts":[30, 40, 50]} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amounts[*]" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.fname}/{$.lname}" + ] . + +``` + +**Output** +``` + "30" . + "40" . + "50" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/mapping.ttl new file mode 100644 index 00000000..ea839cde --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/mapping.ttl @@ -0,0 +1,22 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amounts[*]" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.fname}/{$.lname}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/output.nq new file mode 100644 index 00000000..3b8e09fb --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/output.nq @@ -0,0 +1,3 @@ + "30" . + "40" . + "50" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/persons.json b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/persons.json new file mode 100644 index 00000000..705406a9 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026a-JSON/persons.json @@ -0,0 +1,5 @@ +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amounts":[30, 40, 50]} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/README.md new file mode 100644 index 00000000..61e74f5c --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/README.md @@ -0,0 +1,45 @@ +## RMLTC0026b-JSON + +**Title**: "Generation of triples from arrays with wrong reference" + +**Description**: "Tests the generation of triples from array input data structures. Test should fail as reference points to the array and not the values of the array" + +**Error expected?** Yes + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amounts":[30, 40, 50]} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amounts" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.fname}/{$.lname}" + ] . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/mapping.ttl new file mode 100644 index 00000000..780bd99a --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/mapping.ttl @@ -0,0 +1,22 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amounts" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "http://example.com/Student/{$.fname}/{$.lname}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/persons.json b/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/persons.json new file mode 100644 index 00000000..705406a9 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0026b-JSON/persons.json @@ -0,0 +1,5 @@ +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amounts":[30, 40, 50]} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/README.md new file mode 100644 index 00000000..f1710ce8 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/README.md @@ -0,0 +1,75 @@ +## RMLTC0027a-JSON + +**Title**: "Two triples maps, one with rml:baseIRI and one without and generating absolute IRIs" + +**Description**: "Tests the generation of triples from relative IRIs using base IRI" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.lname}" + ] . + +``` + +**Output** +``` + "30" . + "20" . + "30" . + "20" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/mapping.ttl new file mode 100644 index 00000000..41ed54da --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/mapping.ttl @@ -0,0 +1,42 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "http://example.com/{$.lname}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/output.nq new file mode 100644 index 00000000..0fbfa129 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/output.nq @@ -0,0 +1,4 @@ + "30" . + "20" . + "30" . + "20" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/persons.json b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/persons.json new file mode 100644 index 00000000..b7f1a04f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027a-JSON/persons.json @@ -0,0 +1,6 @@ +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/README.md new file mode 100644 index 00000000..0caf95be --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/README.md @@ -0,0 +1,76 @@ +## RMLTC0027b-JSON + +**Title**: "Two triples maps, one with rml:baseIRI one one without and generating relative IRIs using baseIRI parameter" + +**Description**: "Tests the generation of triples from relative IRI using base IRI parameter" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . +@base . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.lname}" + ] . + +``` + +**Output** +``` + "30" . + "20" . + "30" . + "20" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/mapping.ttl new file mode 100644 index 00000000..bf2b788c --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/mapping.ttl @@ -0,0 +1,43 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . +@base . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.lname}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/output.nq new file mode 100644 index 00000000..59137781 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/output.nq @@ -0,0 +1,4 @@ + "30" . + "20" . + "30" . + "20" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/persons.json b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/persons.json new file mode 100644 index 00000000..b7f1a04f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027b-JSON/persons.json @@ -0,0 +1,6 @@ +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/README.md new file mode 100644 index 00000000..b93968e1 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/README.md @@ -0,0 +1,76 @@ +## RMLTC0027c-JSON + +**Title**: "Two triples maps, both with rml:baseIRI defined" + +**Description**: "Tests the generation of triples using relative IRIs with base IRIs defined only in triples maps, without base IRI parameter" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.lname}" + ] . + +``` + +**Output** +``` + "30" . + "20" . + "30" . + "20" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/mapping.ttl new file mode 100644 index 00000000..d2825418 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/mapping.ttl @@ -0,0 +1,43 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.lname}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/output.nq new file mode 100644 index 00000000..0fbfa129 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/output.nq @@ -0,0 +1,4 @@ + "30" . + "20" . + "30" . + "20" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/persons.json b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/persons.json new file mode 100644 index 00000000..b7f1a04f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027c-JSON/persons.json @@ -0,0 +1,6 @@ +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/README.md new file mode 100644 index 00000000..1b730883 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/README.md @@ -0,0 +1,77 @@ +## RMLTC0027d-JSON + +**Title**: "Two triples maps,both with rml:bseIRI defined and baseIRI parameter defined" + +**Description**: "Tests the generation of triples by with base IRIs different than the base IRI parameter" + +**Error expected?** No + +**Input** +``` +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} + +``` + +**Mapping** +``` +@prefix ex: . +@prefix foaf: . +@prefix rml: . +@base . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.lname}" + ] . + +``` + +**Output** +``` + "30" . + "20" . + "30" . + "20" . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/mapping.ttl new file mode 100644 index 00000000..09c495ce --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/mapping.ttl @@ -0,0 +1,44 @@ +@prefix ex: . +@prefix foaf: . +@prefix rml: . +@base . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.fname}" + ] . + + a rml:TriplesMap; + rml:baseIRI ; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.persons[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "persons.json" + ] + ]; + rml:predicateObjectMap [ + rml:objectMap [ + rml:reference "$.amount" + ]; + rml:predicate ex:amount + ]; + rml:subjectMap [ + rml:template "{$.lname}" + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/output.nq new file mode 100644 index 00000000..d39b1093 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/output.nq @@ -0,0 +1,4 @@ + "30" . + "20" . + "30" . + "20" . diff --git a/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/persons.json b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/persons.json new file mode 100644 index 00000000..b7f1a04f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0027d-JSON/persons.json @@ -0,0 +1,6 @@ +{ + "persons": [ + {"fname":"Bob","lname":"Smith","amount":30}, + {"fname":"Sue","lname":"Jones","amount":20} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/README.md new file mode 100644 index 00000000..533278be --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/README.md @@ -0,0 +1,58 @@ +## RMLTC0028a-JSON + +**Title**: "Generation of triples using the URI term type" + +**Description**: "Tests the generation of triples with a URI term type in the subject or object" + +**Error expected?** No + +**Input** +``` +{ + "students": [ + {"Name": "Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "Danny"}, + {"Name": "Emily Smith"} + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.Name}"; + rml:termType rml:URI + ] . + +``` + +**Output** +``` + . + . + . + . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/mapping.ttl new file mode 100644 index 00000000..2d873b5a --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/mapping.ttl @@ -0,0 +1,21 @@ +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.Name}"; + rml:termType rml:URI + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/output.nq new file mode 100644 index 00000000..0d4f5564 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + . diff --git a/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/student.json new file mode 100644 index 00000000..c1c6e961 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028a-JSON/student.json @@ -0,0 +1,9 @@ +{ + "students": [ + {"Name": "Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "Danny"}, + {"Name": "Emily Smith"} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/README.md new file mode 100644 index 00000000..8622292f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/README.md @@ -0,0 +1,58 @@ +## RMLTC0028b-JSON + +**Title**: "Generation of triples using the UnsafeURI term type" + +**Description**: "Tests the generation of triples with a UnsafeURI term type in the subject or object" + +**Error expected?** No + +**Input** +``` +{ + "students": [ + {"Name": "Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "Danny"}, + {"Name": "Emily Smith"} + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.Name}"; + rml:termType rml:UnsafeURI + ] . + +``` + +**Output** +``` + . + . + . + . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/mapping.ttl new file mode 100644 index 00000000..803c17e1 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/mapping.ttl @@ -0,0 +1,21 @@ +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.Name}"; + rml:termType rml:UnsafeURI + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/output.nq new file mode 100644 index 00000000..0d4f5564 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + . diff --git a/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/student.json new file mode 100644 index 00000000..c1c6e961 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028b-JSON/student.json @@ -0,0 +1,9 @@ +{ + "students": [ + {"Name": "Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "Danny"}, + {"Name": "Emily Smith"} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/README.md new file mode 100644 index 00000000..45998be4 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/README.md @@ -0,0 +1,58 @@ +## RMLTC0028c-JSON + +**Title**: "Generation of triples using the UnsafeIRI term type" + +**Description**: "Tests the generation of triples with a UnsafeIRI term type in the subject or object" + +**Error expected?** No + +**Input** +``` +{ + "students": [ + {"Name": "Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "Danny"}, + {"Name": "Emily Smith"} + ] +} + +``` + +**Mapping** +``` +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.Name}"; + rml:termType rml:UnsafeIRI + ] . + +``` + +**Output** +``` + . + . + . + . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/mapping.ttl new file mode 100644 index 00000000..4a03ab54 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/mapping.ttl @@ -0,0 +1,21 @@ +@prefix foaf: . +@prefix rdf: . +@prefix rml: . + + a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:iterator "$.students[*]"; + rml:referenceFormulation rml:JSONPath; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "student.json" + ] + ]; + rml:predicateObjectMap [ + rml:object foaf:Person; + rml:predicate rdf:type + ]; + rml:subjectMap [ + rml:template "http://example.com/Person/{$.Name}"; + rml:termType rml:UnsafeIRI + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/output.nq new file mode 100644 index 00000000..0d4f5564 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/output.nq @@ -0,0 +1,5 @@ + . + . + . + . + . diff --git a/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/student.json b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/student.json new file mode 100644 index 00000000..c1c6e961 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0028c-JSON/student.json @@ -0,0 +1,9 @@ +{ + "students": [ + {"Name": "Alice"}, + {"Name": "Bob"}, + {"Name": "Bob/Charles"}, + {"Name": "Danny"}, + {"Name": "Emily Smith"} + ] +} diff --git a/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/README.md new file mode 100644 index 00000000..47f6bdc6 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/README.md @@ -0,0 +1,44 @@ +## RMLTC0029a-JSON + +**Title**: "Generation of the right datatype for a constant in the mapping" + +**Description**: "Test the honoring of the datatype specified by the constant term in the mapping" + +**Error expected?** No + +**Input** +``` +[ { "id": "0", "foo": "bar" } ] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix rr: . +@prefix ql: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + ]; + rr:predicateObjectMap [ + rr:predicate ; + rr:object true ; # datatype is boolean + ]; + ] . + +``` + +**Output** +``` + "true"^^ . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/data.json b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/data.json new file mode 100644 index 00000000..64a11ae8 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/data.json @@ -0,0 +1 @@ +[ { "id": "0", "foo": "bar" } ] diff --git a/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/mapping.ttl new file mode 100644 index 00000000..336afb27 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/mapping.ttl @@ -0,0 +1,19 @@ +@prefix rml: . +@prefix rr: . +@prefix ql: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + ]; + rr:predicateObjectMap [ + rr:predicate ; + rr:object true ; # datatype is boolean + ]; + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/output.nq new file mode 100644 index 00000000..ed7a2cd1 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029a-JSON/output.nq @@ -0,0 +1 @@ + "true"^^ . diff --git a/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/README.md new file mode 100644 index 00000000..840a7b00 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/README.md @@ -0,0 +1,50 @@ +## RMLTC0029b-JSON + +**Title**: "Generation of all named graphs when rml:defaultGraph is involved" + +**Description**: "Test if the default graph is also generated correctly." + +**Error expected?** No + +**Input** +``` +[ { "id": "0", "name": "Alice" } ] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix rr: . +@prefix ql: . +@prefix s: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + rr:class s:Person ; + rr:graph ; + ]; + rr:predicateObjectMap [ + rr:predicate s:givenName ; + rr:objectMap [ rml:reference "name" ] ; + rr:graph rr:defaultGraph ; + ]; + ] . + +``` + +**Output** +``` + "Alice". + "Alice" . + . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/data.json b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/data.json new file mode 100644 index 00000000..4087270d --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/data.json @@ -0,0 +1 @@ +[ { "id": "0", "name": "Alice" } ] diff --git a/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/mapping.ttl new file mode 100644 index 00000000..6f1a8f8f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rml: . +@prefix rr: . +@prefix ql: . +@prefix s: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + rr:class s:Person ; + rr:graph ; + ]; + rr:predicateObjectMap [ + rr:predicate s:givenName ; + rr:objectMap [ rml:reference "name" ] ; + rr:graph rr:defaultGraph ; + ]; + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/output.nq new file mode 100644 index 00000000..8e306356 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029b-JSON/output.nq @@ -0,0 +1,3 @@ + "Alice". + "Alice" . + . diff --git a/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/README.md b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/README.md new file mode 100644 index 00000000..8050f926 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/README.md @@ -0,0 +1,44 @@ +## RMLTC0029c-JSON + +**Title**: "Generation of the right language tag for a constant in the mapping" + +**Description**: "Test the honoring of the language tag specified by the constant term in the mapping" + +**Error expected?** No + +**Input** +``` +[ { "id": "0", "foo": "bar" } ] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix rr: . +@prefix ql: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + ]; + rr:predicateObjectMap [ + rr:predicate ; + rr:object "train"@en ; + ]; + ] . + +``` + +**Output** +``` + "train"@en . + +``` + diff --git a/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/data.json b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/data.json new file mode 100644 index 00000000..64a11ae8 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/data.json @@ -0,0 +1 @@ +[ { "id": "0", "foo": "bar" } ] diff --git a/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/mapping.ttl b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/mapping.ttl new file mode 100644 index 00000000..e6cf554f --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/mapping.ttl @@ -0,0 +1,19 @@ +@prefix rml: . +@prefix rr: . +@prefix ql: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + ]; + rr:predicateObjectMap [ + rr:predicate ; + rr:object "train"@en ; + ]; + ] . diff --git a/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/output.nq b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/output.nq new file mode 100644 index 00000000..55246cc3 --- /dev/null +++ b/src/test/resources/new-test-cases/core/RMLTC0029c-JSON/output.nq @@ -0,0 +1 @@ + "train"@en . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0001a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0001a/README.md new file mode 100644 index 00000000..21e82669 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0001a/README.md @@ -0,0 +1,94 @@ +## RMLSTC0001a + +**Title**: Source with UTF-8 encoding + +**Description**: Test source with UTF-8 encoding + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json" + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0001a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0001a/mapping.ttl index f7534527..6ebc43f3 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0001a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0001a/mapping.ttl @@ -1,16 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:encoding rml:UTF-8; -. <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json" + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0001b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0001b/README.md new file mode 100644 index 00000000..32997daa --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0001b/README.md @@ -0,0 +1,94 @@ +## RMLSTC0001b + +**Title**: Source with UTF-16 encoding + +**Description**: Test source with UTF-16 encoding + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-UTF16.json" + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0001b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0001b/mapping.ttl index 46c9b385..f669f6b3 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0001b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0001b/mapping.ttl @@ -1,16 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:encoding rml:UTF-16; -. <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-UTF16.json" + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0002a/README.md new file mode 100644 index 00000000..d7f3ae9a --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0002a/README.md @@ -0,0 +1,94 @@ +## RMLSTC0002a + +**Title**: Source no compression + +**Description**: Test source without compression + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json" + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0002a/mapping.ttl index 5275717a..6ebc43f3 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0002a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0002a/mapping.ttl @@ -1,15 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json" + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0002b/README.md new file mode 100644 index 00000000..2919e46e --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0002b/README.md @@ -0,0 +1,66 @@ +## RMLSTC0002b + +**Title**: Source GZip compression + +**Description**: Test source with GZip compression + +**Error expected?** No + +**Input** + `Friends.json.gz` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.gz"; + rml:compression rml:gzip; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0002b/mapping.ttl index 3420a299..c76bb87d 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0002b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0002b/mapping.ttl @@ -1,16 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:compression rml:gzip; -. <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.gz"; + rml:compression rml:gzip; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002c/README.md b/src/test/resources/new-test-cases/io/RMLSTC0002c/README.md new file mode 100644 index 00000000..13324fcc --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0002c/README.md @@ -0,0 +1,65 @@ +## RMLSTC0002c + +**Title**: Source Zip compression + +**Description**: Test source with ZIP compression + +**Error expected?** No + +**Input** + `Friends.json.zip` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.zip"; + rml:compression rml:zip; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0002c/mapping.ttl index c06e93be..18a50cf2 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0002c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0002c/mapping.ttl @@ -1,16 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:compression rml:zip; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.zip"; + rml:compression rml:zip; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002d/README.md b/src/test/resources/new-test-cases/io/RMLSTC0002d/README.md new file mode 100644 index 00000000..74d1a384 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0002d/README.md @@ -0,0 +1,65 @@ +## RMLSTC0002d + +**Title**: Source TarXz compression + +**Description**: Test source with TarXZ compression + +**Error expected?** No + +**Input** + `Friends.json.tar.xz` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.tar.xz"; + rml:compression rml:tarxz; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0002d/mapping.ttl index 43c5922e..175631be 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0002d/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0002d/mapping.ttl @@ -1,16 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:compression rml:tarxz; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.tar.xz"; + rml:compression rml:tarxz; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002e/README.md b/src/test/resources/new-test-cases/io/RMLSTC0002e/README.md new file mode 100644 index 00000000..b7144ef3 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0002e/README.md @@ -0,0 +1,65 @@ +## RMLSTC0002e + +**Title**: Source TarGzip compression + +**Description**: Test source with TarGZip compression + +**Error expected?** No + +**Input** + `Friends.json.tar.gz` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.tar.gz"; + rml:compression rml:targz; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0002e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0002e/mapping.ttl index 9fc116f6..d08b82bd 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0002e/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0002e/mapping.ttl @@ -1,16 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:compression rml:targz; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json.tar.gz"; + rml:compression rml:targz; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0003/README.md b/src/test/resources/new-test-cases/io/RMLSTC0003/README.md new file mode 100644 index 00000000..0376f5dd --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0003/README.md @@ -0,0 +1,83 @@ +## RMLSTC0003 + +**Title**: Source with query + +**Description**: Test source which requires a query + +**Error expected?** No + +**Input** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:path "./Friends.nt"; + ]; + rml:iterator """ + PREFIX foaf: + + SELECT ?person ?name ?age WHERE { + ?person foaf:name ?name . + ?person foaf:age ?age . + } + """; + rml:referenceFormulation formats:SPARQL_Results_CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:reference "person"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0003/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0003/mapping.ttl index f4a8bc06..78cbc569 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0003/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0003/mapping.ttl @@ -1,12 +1,11 @@ @prefix rml: . @prefix foaf: . -@prefix void: . @prefix formats: . @base . <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source [ a rml:RelativePathSource; + rml:source [ a rml:FilePath; rml:path "./Friends.nt"; ]; rml:iterator """ diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004a/Friends-NULL.csv b/src/test/resources/new-test-cases/io/RMLSTC0004a/Friends-NULL.csv index ab5f1924..6a82739b 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0004a/Friends-NULL.csv +++ b/src/test/resources/new-test-cases/io/RMLSTC0004a/Friends-NULL.csv @@ -1,7 +1,7 @@ -id;name;age -0;Monica Geller;33 -1;Rachel Green;34 -2;Joey Tribbiani;35 -3;Chandler Bing;36 -4;Ross Geller;37 -5;; +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 +5,, diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0004a/README.md new file mode 100644 index 00000000..21f0a61b --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0004a/README.md @@ -0,0 +1,73 @@ +## RMLSTC0004a + +**Title**: Source with default NULL values + +**Description**: Test source with default NULL values + +**Error expected?** No + +**Input** +``` +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 +5,, + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-NULL.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004a/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0004a/default.nq index 93cbe17d..d9456768 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0004a/default.nq +++ b/src/test/resources/new-test-cases/io/RMLSTC0004a/default.nq @@ -8,5 +8,3 @@ "Chandler Bing" . "37" . "Ross Geller" . - "" . - "" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0004a/mapping.ttl index ff1b01ad..aa44cf16 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0004a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0004a/mapping.ttl @@ -1,21 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix csvw: . @prefix xsd: . @base . -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0004a/Friends-NULL.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - ]; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-NULL.csv"; + ]; rml:referenceFormulation rml:CSV; ]; rml:subjectMap [ a rml:SubjectMap; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004b/Friends-NULL.csv b/src/test/resources/new-test-cases/io/RMLSTC0004b/Friends-NULL.csv index ab5f1924..6a82739b 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0004b/Friends-NULL.csv +++ b/src/test/resources/new-test-cases/io/RMLSTC0004b/Friends-NULL.csv @@ -1,7 +1,7 @@ -id;name;age -0;Monica Geller;33 -1;Rachel Green;34 -2;Joey Tribbiani;35 -3;Chandler Bing;36 -4;Ross Geller;37 -5;; +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 +5,, diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0004b/README.md new file mode 100644 index 00000000..52cbcb47 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0004b/README.md @@ -0,0 +1,74 @@ +## RMLSTC0004b + +**Title**: Source with one NULL value + +**Description**: Test source with one NULL value defined + +**Error expected?** No + +**Input** +``` +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 +5,, + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-NULL.csv"; + rml:null ""; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0004b/mapping.ttl index 69dcc3c9..bb39b80c 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0004b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0004b/mapping.ttl @@ -1,23 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix csvw: . @prefix xsd: . @base . -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0004b/Friends-NULL.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - ]; - # Empty value is considered NULL - rml:null ""; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-NULL.csv"; + rml:null ""; + ]; rml:referenceFormulation rml:CSV; ]; rml:subjectMap [ a rml:SubjectMap; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004c/Friends-NULL.csv b/src/test/resources/new-test-cases/io/RMLSTC0004c/Friends-NULL.csv new file mode 100644 index 00000000..9fe19573 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0004c/Friends-NULL.csv @@ -0,0 +1,8 @@ +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 +5,, +6,NULL,NULL diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004c/Friends-NULL2.csv b/src/test/resources/new-test-cases/io/RMLSTC0004c/Friends-NULL2.csv deleted file mode 100644 index 2bbf9a5d..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0004c/Friends-NULL2.csv +++ /dev/null @@ -1,8 +0,0 @@ -id;name;age -0;Monica Geller;33 -1;Rachel Green;34 -2;Joey Tribbiani;35 -3;Chandler Bing;36 -4;Ross Geller;37 -5;; -6;NULL;NULL diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004c/README.md b/src/test/resources/new-test-cases/io/RMLSTC0004c/README.md new file mode 100644 index 00000000..936b9430 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0004c/README.md @@ -0,0 +1,76 @@ +## RMLSTC0004c + +**Title**: Source with multiple NULL values + +**Description**: Test source with multiple NULL values defined + +**Error expected?** No + +**Input** +``` +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 +5,, +6,NULL,NULL + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-NULL.csv"; + rml:null ""; + rml:null "NULL"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0004c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0004c/mapping.ttl index 5adc9201..e864a958 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0004c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0004c/mapping.ttl @@ -1,24 +1,16 @@ @prefix rml: . @prefix foaf: . -@prefix csvw: . @prefix xsd: . @base . -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0004c/Friends-NULL2.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - ]; - # Empty value and 'NULL' are both considered NULL - rml:null ""; - rml:null "NULL"; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends-NULL.csv"; + rml:null ""; + rml:null "NULL"; + ]; rml:referenceFormulation rml:CSV; ]; rml:subjectMap [ a rml:SubjectMap; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0005a/Friends-NULL.csv b/src/test/resources/new-test-cases/io/RMLSTC0005a/Friends-NULL.csv deleted file mode 100644 index ab5f1924..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0005a/Friends-NULL.csv +++ /dev/null @@ -1,7 +0,0 @@ -id;name;age -0;Monica Geller;33 -1;Rachel Green;34 -2;Joey Tribbiani;35 -3;Chandler Bing;36 -4;Ross Geller;37 -5;; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0005a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0005a/mapping.ttl deleted file mode 100644 index 454e551f..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0005a/mapping.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix csvw: . -@prefix xsd: . -@base . - -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0005a/Friends-NULL.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - csvw:null "NULL"; - ]; - # Empty value is considered NULL and overrides CSVW - rml:null ""; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; - rml:referenceFormulation rml:CSV; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "age"; - ]; - ]; -. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0005b/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0005b/Friends.csv deleted file mode 100644 index 0d40425f..00000000 Binary files a/src/test/resources/new-test-cases/io/RMLSTC0005b/Friends.csv and /dev/null differ diff --git a/src/test/resources/new-test-cases/io/RMLSTC0005b/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0005b/default.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0005b/default.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0005b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0005b/mapping.ttl deleted file mode 100644 index 37280258..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0005b/mapping.ttl +++ /dev/null @@ -1,42 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix csvw: . -@prefix xsd: . -@base . - -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0005b/Friends.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - ]; - # Encoding is UTF-16 and overrides CSVW - rml:encoding rml:UTF-16; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; - rml:referenceFormulation rml:CSV; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "age"; - ]; - ]; -. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006a/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0006a/Friends.csv new file mode 100644 index 00000000..752cdfe4 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0006a/Friends.csv @@ -0,0 +1,6 @@ +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0006a/README.md new file mode 100644 index 00000000..3e7b5c95 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0006a/README.md @@ -0,0 +1,77 @@ +## RMLSTC0006a + +**Title**: Source with D2RQ access description + +**Description**: Test source with D2RQ access description for SQL databases + +**Error expected?** No + +**Input** +``` +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix d2rq: . +@prefix xsd: . +@base . + +<#D2RQSourceAccess> a rml:Source, d2rq:Database; + d2rq:jdbcDSN "$CONNECTIONDSN"; + d2rq:username "$USERNAME"; + d2rq:password "$PASSWORD" +. + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source <#D2RQSourceAccess>; + rml:referenceFormulation rml:SQL2008Table; + rml:iterator "Friends"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0006a/mapping.ttl index a5ff74ce..f8011e89 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0006a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0006a/mapping.ttl @@ -1,27 +1,30 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . +@prefix d2rq: . +@prefix xsd: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; +<#D2RQSourceAccess> a rml:Source, d2rq:Database; + d2rq:jdbcDSN "$CONNECTIONDSN"; + d2rq:username "$USERNAME"; + d2rq:password "$PASSWORD" . <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; - rml:referenceFormulation rml:JSONPath; - rml:iterator "$[*]"; + rml:source <#D2RQSourceAccess>; + rml:referenceFormulation rml:SQL2008Table; + rml:iterator "Friends"; ]; rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{$.id}"; + rml:template "http://example.org/{id}"; ]; rml:predicateObjectMap [ a rml:PredicateObjectMap; rml:predicateMap [ a rml:PredicateMap; rml:constant foaf:name; ]; rml:objectMap [ a rml:ObjectMap; - rml:reference "$.name"; + rml:reference "name"; ]; ]; rml:predicateObjectMap [ a rml:PredicateObjectMap; @@ -29,7 +32,7 @@ rml:constant foaf:age; ]; rml:objectMap [ a rml:ObjectMap; - rml:reference "$.age"; + rml:reference "age"; ]; ]; . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006b/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0006b/Friends.csv new file mode 100644 index 00000000..752cdfe4 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0006b/Friends.csv @@ -0,0 +1,6 @@ +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006b/Friends.nt b/src/test/resources/new-test-cases/io/RMLSTC0006b/Friends.nt deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006b/Friends.nt +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0006b/README.md new file mode 100644 index 00000000..73c9ad58 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0006b/README.md @@ -0,0 +1,72 @@ +## RMLSTC0006b + +**Title**: Source with a Relative Path Source + +**Description**: Test access to a file + +**Error expected?** No + +**Input** +``` +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath, rml:Source; + rml:root rml:CurrentWorkingDirectory; + rml:path "./Friends.csv" + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0006b/mapping.ttl index a8277c66..f0d0f98e 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0006b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0006b/mapping.ttl @@ -1,26 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix void: . -@prefix formats: . +@prefix xsd: . @base . -<#VoIDSourceAccess> a rml:Source, void:Dataset; - void:dataDump ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#VoIDSourceAccess>; - rml:iterator """ - PREFIX foaf: - - SELECT ?id ?name ?age WHERE { - ?person foaf:name ?name . - ?person foaf:age ?age . - BIND(REPLACE(STR(?person),"http://example.org/", "") AS ?id) . - } - """; - rml:referenceFormulation formats:SPARQL_Results_CSV; + rml:source [ a rml:FilePath, rml:Source; + rml:root rml:CurrentWorkingDirectory; + rml:path "./Friends.csv" + ]; + rml:referenceFormulation rml:CSV; ]; rml:subjectMap [ a rml:SubjectMap; rml:template "http://example.org/{id}"; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006c/Friends.nt b/src/test/resources/new-test-cases/io/RMLSTC0006c/Friends.nt deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006c/Friends.nt +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006c/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0006c/default.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006c/default.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0006c/mapping.ttl deleted file mode 100644 index 30bbffa5..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006c/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix sd: . -@prefix formats: . -@base . - -<#SDSourceAccess> a rml:Source, sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Query; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#SDSourceAccess>; - rml:iterator """ - PREFIX foaf: - - SELECT ?id ?name ?age WHERE { - ?person foaf:name ?name . - ?person foaf:age ?age . - BIND(REPLACE(STR(?person),"http://example.org/", "") AS ?id) . - } - """; - rml:referenceFormulation formats:SPARQL_Results_CSV; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "age"; - ]; - ]; -. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006d/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0006d/Friends.csv deleted file mode 100644 index 04680d7c..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006d/Friends.csv +++ /dev/null @@ -1,6 +0,0 @@ -id;name;age -0;Monica Geller;33 -1;Rachel Green;34 -2;Joey Tribbiani;35 -3;Chandler Bing;36 -4;Ross Geller;37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006d/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0006d/default.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006d/default.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0006d/mapping.ttl deleted file mode 100644 index a00c9107..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006d/mapping.ttl +++ /dev/null @@ -1,40 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix csvw: . -@prefix xsd: . -@base . - -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0006d/Friends.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - ]; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; - rml:referenceFormulation rml:CSV; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "age"; - ]; - ]; -. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006e/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0006e/default.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006e/default.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0006e/mapping.ttl deleted file mode 100644 index bc4ef572..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006e/mapping.ttl +++ /dev/null @@ -1,43 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix td: . -@prefix htv: . -@prefix hctl: . -@base . - -<#WoTSourceAccess> a rml:Source, td:Thing; - td:hasPropertyAffordance [ - td:hasForm [ - # URL and content type - hctl:hasTarget "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0006e/Friends.json"; - hctl:forContentType "application/json"; - ]; - ]; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#WoTSourceAccess>; - rml:referenceFormulation rml:JSONPath; - rml:iterator "$[*]"; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{$.id}"; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.age"; - ]; - ]; -. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006f/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0006f/Friends.csv deleted file mode 100644 index 928f08c1..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006f/Friends.csv +++ /dev/null @@ -1,6 +0,0 @@ -id, name, age -0, Monica Geller, 33 -1, Rachel Green, 34 -2, Joey Tribbiani, 35 -3, Chandler Bing, 36 -4, Ross Geller, 37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006f/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0006f/default.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006f/default.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006f/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0006f/mapping.ttl deleted file mode 100644 index 2c3edd1c..00000000 --- a/src/test/resources/new-test-cases/io/RMLSTC0006f/mapping.ttl +++ /dev/null @@ -1,39 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix d2rq: . -@prefix xsd: . -@base . - -<#D2RQSourceAccess> a rml:Source, d2rq:Database; - d2rq:jdbcDSN "jdbc://host:port/database"; - d2rq:Driver "" - d2rq:username "username"; - d2rq:password "password" -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#D2RQSourceAccess>; - rml:referenceFormulation rml:SQL2008Table; - rml:iterator "Friends"; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "age"; - ]; - ]; -. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0007a/README.md new file mode 100644 index 00000000..94abd46c --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0007a/README.md @@ -0,0 +1,94 @@ +## RMLSTC0007a + +**Title**: Source with JSONPath reference formulation + +**Description**: Test source with JSONPath reference formulation + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0007a/mapping.ttl index e1389226..00a2f99e 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0007a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0007a/mapping.ttl @@ -1,16 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; - rml:encoding rml:UTF-8; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0007b/README.md new file mode 100644 index 00000000..90d9e4b9 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0007b/README.md @@ -0,0 +1,72 @@ +## RMLSTC0007b + +**Title**: Source with CSV reference formulation + +**Description**: Test source with Tabular reference formulation + +**Error expected?** No + +**Input** +``` +id,name,age +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0007b/mapping.ttl index 408e6e46..a1771888 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0007b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0007b/mapping.ttl @@ -1,21 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix csvw: . @prefix xsd: . @base . -<#CSVWSourceAccess> a rml:Source, csvw:Table; - csvw:url "https://kg-construct.github.io/rml-resources/resources/rml-io/RMLSTC0007b/Friends.csv"^^xsd:anyURI ; - csvw:dialect [ a csvw:Dialect; - csvw:delimiter ";"; - csvw:encoding "UTF-8"; - csvw:header "1"^^xsd:boolean; - ]; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#CSVWSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; rml:referenceFormulation rml:CSV; ]; rml:subjectMap [ a rml:SubjectMap; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007c/README.md b/src/test/resources/new-test-cases/io/RMLSTC0007c/README.md new file mode 100644 index 00000000..234696f6 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0007c/README.md @@ -0,0 +1,88 @@ +## RMLSTC0007c + +**Title**: Source with XPath reference formulation + +**Description**: Test source with XPath reference formulation + +**Error expected?** No + +**Input** +``` + + + Monica Geller + 33 + + + Rachel Green + 34 + + + Joey Tribbiani + 35 + + + Chandler Bing + 36 + + + Ross Geller + 37 + + + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.xml" + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "//Friends/Character"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name/text()"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age/text()"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0007c/mapping.ttl index 4dabf96a..a4373532 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0007c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0007c/mapping.ttl @@ -1,20 +1,18 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.xml" + ]; rml:referenceFormulation rml:XPath; - rml:iterator "//Friends/Character/"; + rml:iterator "//Friends/Character"; ]; rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; + rml:template "http://example.org/{@id}"; ]; rml:predicateObjectMap [ a rml:PredicateObjectMap; rml:predicateMap [ a rml:PredicateMap; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007d/README.md b/src/test/resources/new-test-cases/io/RMLSTC0007d/README.md new file mode 100644 index 00000000..ce969228 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0007d/README.md @@ -0,0 +1,93 @@ +## RMLSTC0007d + +**Title**: Source with XPath reference formulation with namespaces + +**Description**: Test source with XPath reference formulation with namespaces + +**Error expected?** No + +**Input** +``` + + + Monica Geller + 33 + + + Rachel Green + 34 + + + Joey Tribbiani + 35 + + + Chandler Bing + 36 + + + Ross Geller + 37 + + + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.xml" + ]; + rml:referenceFormulation [ a rml:XPathReferenceFormulation; + rml:namespace [ a rml:Namespace; + rml:namespacePrefix "ex"; + rml:namespaceURL "http://example.org"; + ]; + ]; + rml:iterator "//Friends/ex:Character"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "ex:name/text()"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "ex:age/text()"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0007d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0007d/mapping.ttl index 3d1f1d18..14f45ed2 100644 --- a/src/test/resources/new-test-cases/io/RMLSTC0007d/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLSTC0007d/mapping.ttl @@ -1,25 +1,23 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.xml" + ]; rml:referenceFormulation [ a rml:XPathReferenceFormulation; rml:namespace [ a rml:Namespace; rml:namespacePrefix "ex"; rml:namespaceURL "http://example.org"; ]; ]; - rml:iterator "//Friends/ex:Character/"; + rml:iterator "//Friends/ex:Character"; ]; rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{id}"; + rml:template "http://example.org/{@id}"; ]; rml:predicateObjectMap [ a rml:PredicateObjectMap; rml:predicateMap [ a rml:PredicateMap; diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006a/Friends.json b/src/test/resources/new-test-cases/io/RMLSTC0008a/Friends.json similarity index 100% rename from src/test/resources/new-test-cases/io/RMLSTC0006a/Friends.json rename to src/test/resources/new-test-cases/io/RMLSTC0008a/Friends.json diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008a/Friends2.json b/src/test/resources/new-test-cases/io/RMLSTC0008a/Friends2.json new file mode 100644 index 00000000..415235fa --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008a/Friends2.json @@ -0,0 +1,7 @@ +[ + { + "id": 6, + "name": "Phoebe Buffay", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0008a/README.md new file mode 100644 index 00000000..20e36b20 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008a/README.md @@ -0,0 +1,127 @@ +## RMLSTC0008a + +**Title**: Multiple sources of same type + +**Description**: Tests the generation of all triples from multiple homogeneous sources + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "Friends2.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + "37" . + "Phoebe Buffay" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008a/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0008a/default.nq new file mode 100644 index 00000000..3250fcc8 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008a/default.nq @@ -0,0 +1,12 @@ + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + "37" . + "Phoebe Buffay" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0008a/mapping.ttl new file mode 100644 index 00000000..1b53bd1d --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008a/mapping.ttl @@ -0,0 +1,65 @@ +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "Friends2.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008b/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0008b/Friends.csv new file mode 100644 index 00000000..69665237 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008b/Friends.csv @@ -0,0 +1,2 @@ +id,name,age +6,Phoebe Buffay,37 \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0006e/Friends.json b/src/test/resources/new-test-cases/io/RMLSTC0008b/Friends.json similarity index 100% rename from src/test/resources/new-test-cases/io/RMLSTC0006e/Friends.json rename to src/test/resources/new-test-cases/io/RMLSTC0008b/Friends.json diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0008b/README.md new file mode 100644 index 00000000..18fea470 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008b/README.md @@ -0,0 +1,126 @@ +## RMLSTC0008b + +**Title**: Multiple sources of different type + +**Description**: Tests the generation of all triples from multiple heterogeneous sources + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + "37" . + "Phoebe Buffay" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008b/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0008b/default.nq new file mode 100644 index 00000000..3250fcc8 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008b/default.nq @@ -0,0 +1,12 @@ + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + "37" . + "Phoebe Buffay" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0008b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0008b/mapping.ttl new file mode 100644 index 00000000..8fd68c4d --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0008b/mapping.ttl @@ -0,0 +1,64 @@ +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:RelativePathSource; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0009a/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0009a/Friends.csv new file mode 100644 index 00000000..66cc9dcc --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0009a/Friends.csv @@ -0,0 +1,6 @@ +"id","name","age" +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0009a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0009a/README.md new file mode 100644 index 00000000..e8d8a64e --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0009a/README.md @@ -0,0 +1,57 @@ +## RMLSTC0009a + +**Title**: Source with quoted columns + +**Description**: Tests the generation of triples where columns are quoted + +**Error expected?** Yes + +**Input** +``` +"id","name","age" +0,Monica Geller,33 +1,Rachel Green,34 +2,Joey Tribbiani,35 +3,Chandler Bing,36 +4,Ross Geller,37 + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0009a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0009a/mapping.ttl new file mode 100644 index 00000000..a1771888 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0009a/mapping.ttl @@ -0,0 +1,33 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]; +. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0005a/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0009a/output.nq similarity index 100% rename from src/test/resources/new-test-cases/io/RMLSTC0005a/default.nq rename to src/test/resources/new-test-cases/io/RMLSTC0009a/output.nq diff --git a/src/test/resources/new-test-cases/io/RMLSTC0010a/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0010a/Friends.csv new file mode 100644 index 00000000..1b386cf0 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0010a/Friends.csv @@ -0,0 +1,2 @@ +id,name,age +6,Phoebe Buffay 37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0010a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0010a/README.md new file mode 100644 index 00000000..d960a59b --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0010a/README.md @@ -0,0 +1,52 @@ +## RMLSTC0010a + +**Title**: Invalid CSV source, reference to invalid column + +**Description**: Tests the identification of invalid CSV sources + +**Error expected?** Yes + +**Input** +``` +id,name,age +6,Phoebe Buffay 37 + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]. + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0010a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0010a/mapping.ttl new file mode 100644 index 00000000..84392963 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0010a/mapping.ttl @@ -0,0 +1,32 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "age"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0010b/Friends.csv b/src/test/resources/new-test-cases/io/RMLSTC0010b/Friends.csv new file mode 100644 index 00000000..1b386cf0 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0010b/Friends.csv @@ -0,0 +1,2 @@ +id,name,age +6,Phoebe Buffay 37 diff --git a/src/test/resources/new-test-cases/io/RMLSTC0010b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0010b/README.md new file mode 100644 index 00000000..83bee15a --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0010b/README.md @@ -0,0 +1,44 @@ +## RMLSTC0010b + +**Title**: Invalid CSV source, no reference to invalid column + +**Description**: Tests the identification of invalid CSV sources, even when all columns referenced are valid + +**Error expected?** Yes + +**Input** +``` +id,name,age +6,Phoebe Buffay 37 + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]. + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0010b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0010b/mapping.ttl new file mode 100644 index 00000000..d4e5fe58 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0010b/mapping.ttl @@ -0,0 +1,24 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.csv"; + ]; + rml:referenceFormulation rml:CSV; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0011a/README.md new file mode 100644 index 00000000..bf4cdbed --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011a/README.md @@ -0,0 +1,48 @@ +## RMLSTC0011a + +**Title**: Complex JSON source + +**Description**: Tests the generation of triples from complex JSON sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0011a/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0011a/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]. + +``` + +**Output** +``` + "InnovateX" . + "TechCorp" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011a/companies.json b/src/test/resources/new-test-cases/io/RMLSTC0011a/companies.json new file mode 100644 index 00000000..28355038 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011a/companies.json @@ -0,0 +1,91 @@ +{ + "companies": [ + { + "name": "TechCorp", + "location": { + "country": "USA", + "state": "California", + "city": "San Francisco" + }, + "departments": [ + { + "name": "Engineering", + "manager": { + "name": "Alice Johnson", + "age": 42 + }, + "employees": [ + { + "name": "Bob Smith", + "role": "Software Engineer", + "skills": ["Python", "JavaScript", "AWS"] + }, + { + "name": "Eve Davis", + "role": "DevOps Engineer", + "skills": ["Docker", "Kubernetes", "Terraform"] + } + ] + }, + { + "name": "Marketing", + "manager": { + "name": "John Doe", + "age": 39 + }, + "employees": [ + { + "name": "Sarah Lee", + "role": "Marketing Specialist", + "skills": ["SEO", "Google Ads", "Copywriting"] + } + ] + } + ] + }, + { + "name": "InnovateX", + "location": { + "country": "Canada", + "state": "Ontario", + "city": "Toronto" + }, + "departments": [ + { + "name": "Research & Development", + "manager": { + "name": "Emma Wilson", + "age": 45 + }, + "employees": [ + { + "name": "Liam Brown", + "role": "AI Researcher", + "skills": ["Machine Learning", "Deep Learning", "Python"] + }, + { + "name": "Sophia White", + "role": "Data Scientist", + "skills": ["Data Analysis", "R", "SQL"] + } + ] + }, + { + "name": "Sales", + "manager": { + "name": "Michael Green", + "age": 38 + }, + "employees": [ + { + "name": "Olivia Martinez", + "role": "Sales Executive", + "skills": ["Negotiation", "CRM", "Lead Generation"] + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011a/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0011a/default.nq new file mode 100644 index 00000000..77a21531 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011a/default.nq @@ -0,0 +1,2 @@ + "InnovateX" . + "TechCorp" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0011a/mapping.ttl new file mode 100644 index 00000000..ac102a3b --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011a/mapping.ttl @@ -0,0 +1,25 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0011b/README.md new file mode 100644 index 00000000..6a0f0bfc --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011b/README.md @@ -0,0 +1,51 @@ +## RMLSTC0011b + +**Title**: Complex JSON source + +**Description**: Tests the generation of triples from complex JSON sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0011b/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0011b/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:department; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.departments[*].name"; + ]; + ]. + +``` + +**Output** +``` + "Research & Development" . + "Sales" . + "Engineering" . + "Marketing" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011b/companies.json b/src/test/resources/new-test-cases/io/RMLSTC0011b/companies.json new file mode 100644 index 00000000..28355038 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011b/companies.json @@ -0,0 +1,91 @@ +{ + "companies": [ + { + "name": "TechCorp", + "location": { + "country": "USA", + "state": "California", + "city": "San Francisco" + }, + "departments": [ + { + "name": "Engineering", + "manager": { + "name": "Alice Johnson", + "age": 42 + }, + "employees": [ + { + "name": "Bob Smith", + "role": "Software Engineer", + "skills": ["Python", "JavaScript", "AWS"] + }, + { + "name": "Eve Davis", + "role": "DevOps Engineer", + "skills": ["Docker", "Kubernetes", "Terraform"] + } + ] + }, + { + "name": "Marketing", + "manager": { + "name": "John Doe", + "age": 39 + }, + "employees": [ + { + "name": "Sarah Lee", + "role": "Marketing Specialist", + "skills": ["SEO", "Google Ads", "Copywriting"] + } + ] + } + ] + }, + { + "name": "InnovateX", + "location": { + "country": "Canada", + "state": "Ontario", + "city": "Toronto" + }, + "departments": [ + { + "name": "Research & Development", + "manager": { + "name": "Emma Wilson", + "age": 45 + }, + "employees": [ + { + "name": "Liam Brown", + "role": "AI Researcher", + "skills": ["Machine Learning", "Deep Learning", "Python"] + }, + { + "name": "Sophia White", + "role": "Data Scientist", + "skills": ["Data Analysis", "R", "SQL"] + } + ] + }, + { + "name": "Sales", + "manager": { + "name": "Michael Green", + "age": 38 + }, + "employees": [ + { + "name": "Olivia Martinez", + "role": "Sales Executive", + "skills": ["Negotiation", "CRM", "Lead Generation"] + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011b/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0011b/default.nq new file mode 100644 index 00000000..600758be --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011b/default.nq @@ -0,0 +1,4 @@ + "Research & Development" . + "Sales" . + "Engineering" . + "Marketing" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0011b/mapping.ttl new file mode 100644 index 00000000..91a597ea --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011b/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:department; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.departments[*].name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011c/README.md b/src/test/resources/new-test-cases/io/RMLSTC0011c/README.md new file mode 100644 index 00000000..aed00dd3 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011c/README.md @@ -0,0 +1,53 @@ +## RMLSTC0011c + +**Title**: Complex JSON source + +**Description**: Tests the generation of triples from complex JSON sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0011c/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0011c/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:employee; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.departments[*].employees[*].name"; + ]; + ]. + +``` + +**Output** +``` + "Liam Brown" . + "Olivia Martinez" . + "Sophia White" . + "Bob Smith" . + "Eve Davis" . + "Sarah Lee" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011c/companies.json b/src/test/resources/new-test-cases/io/RMLSTC0011c/companies.json new file mode 100644 index 00000000..28355038 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011c/companies.json @@ -0,0 +1,91 @@ +{ + "companies": [ + { + "name": "TechCorp", + "location": { + "country": "USA", + "state": "California", + "city": "San Francisco" + }, + "departments": [ + { + "name": "Engineering", + "manager": { + "name": "Alice Johnson", + "age": 42 + }, + "employees": [ + { + "name": "Bob Smith", + "role": "Software Engineer", + "skills": ["Python", "JavaScript", "AWS"] + }, + { + "name": "Eve Davis", + "role": "DevOps Engineer", + "skills": ["Docker", "Kubernetes", "Terraform"] + } + ] + }, + { + "name": "Marketing", + "manager": { + "name": "John Doe", + "age": 39 + }, + "employees": [ + { + "name": "Sarah Lee", + "role": "Marketing Specialist", + "skills": ["SEO", "Google Ads", "Copywriting"] + } + ] + } + ] + }, + { + "name": "InnovateX", + "location": { + "country": "Canada", + "state": "Ontario", + "city": "Toronto" + }, + "departments": [ + { + "name": "Research & Development", + "manager": { + "name": "Emma Wilson", + "age": 45 + }, + "employees": [ + { + "name": "Liam Brown", + "role": "AI Researcher", + "skills": ["Machine Learning", "Deep Learning", "Python"] + }, + { + "name": "Sophia White", + "role": "Data Scientist", + "skills": ["Data Analysis", "R", "SQL"] + } + ] + }, + { + "name": "Sales", + "manager": { + "name": "Michael Green", + "age": 38 + }, + "employees": [ + { + "name": "Olivia Martinez", + "role": "Sales Executive", + "skills": ["Negotiation", "CRM", "Lead Generation"] + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011c/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0011c/default.nq new file mode 100644 index 00000000..c83222b8 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011c/default.nq @@ -0,0 +1,6 @@ + "Liam Brown" . + "Olivia Martinez" . + "Sophia White" . + "Bob Smith" . + "Eve Davis" . + "Sarah Lee" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0011c/mapping.ttl new file mode 100644 index 00000000..8c92295f --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011c/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:employee; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.departments[*].employees[*].name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011d/README.md b/src/test/resources/new-test-cases/io/RMLSTC0011d/README.md new file mode 100644 index 00000000..cb2caaf1 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011d/README.md @@ -0,0 +1,51 @@ +## RMLSTC0011d + +**Title**: Complex JSON source + +**Description**: Tests the generation of triples from complex JSON sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0011d/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0011d/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*].departments[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.manager.name"; + ]; + ]. + +``` + +**Output** +``` + "Alice Johnson" . + "John Doe" . + "Emma Wilson" . + "Michael Green" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011d/companies.json b/src/test/resources/new-test-cases/io/RMLSTC0011d/companies.json new file mode 100644 index 00000000..28355038 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011d/companies.json @@ -0,0 +1,91 @@ +{ + "companies": [ + { + "name": "TechCorp", + "location": { + "country": "USA", + "state": "California", + "city": "San Francisco" + }, + "departments": [ + { + "name": "Engineering", + "manager": { + "name": "Alice Johnson", + "age": 42 + }, + "employees": [ + { + "name": "Bob Smith", + "role": "Software Engineer", + "skills": ["Python", "JavaScript", "AWS"] + }, + { + "name": "Eve Davis", + "role": "DevOps Engineer", + "skills": ["Docker", "Kubernetes", "Terraform"] + } + ] + }, + { + "name": "Marketing", + "manager": { + "name": "John Doe", + "age": 39 + }, + "employees": [ + { + "name": "Sarah Lee", + "role": "Marketing Specialist", + "skills": ["SEO", "Google Ads", "Copywriting"] + } + ] + } + ] + }, + { + "name": "InnovateX", + "location": { + "country": "Canada", + "state": "Ontario", + "city": "Toronto" + }, + "departments": [ + { + "name": "Research & Development", + "manager": { + "name": "Emma Wilson", + "age": 45 + }, + "employees": [ + { + "name": "Liam Brown", + "role": "AI Researcher", + "skills": ["Machine Learning", "Deep Learning", "Python"] + }, + { + "name": "Sophia White", + "role": "Data Scientist", + "skills": ["Data Analysis", "R", "SQL"] + } + ] + }, + { + "name": "Sales", + "manager": { + "name": "Michael Green", + "age": 38 + }, + "employees": [ + { + "name": "Olivia Martinez", + "role": "Sales Executive", + "skills": ["Negotiation", "CRM", "Lead Generation"] + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011d/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0011d/default.nq new file mode 100644 index 00000000..bf945c75 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011d/default.nq @@ -0,0 +1,4 @@ + "Alice Johnson" . + "John Doe" . + "Emma Wilson" . + "Michael Green" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0011d/mapping.ttl new file mode 100644 index 00000000..84360e1d --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011d/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*].departments[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.manager.name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011e/README.md b/src/test/resources/new-test-cases/io/RMLSTC0011e/README.md new file mode 100644 index 00000000..1685d967 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011e/README.md @@ -0,0 +1,65 @@ +## RMLSTC0011e + +**Title**: Complex JSON source + +**Description**: Tests the generation of triples from complex JSON sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0011e/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0011e/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*].departments[*].employees[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:skill; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.skills[*]"; + ]; + ]. + +``` + +**Output** +``` + "AWS" . + "JavaScript" . + "Python" . + "Docker" . + "Kubernetes" . + "Terraform" . + "Deep Learning" . + "Machine Learning" . + "Python" . + "CRM" . + "Lead Generation" . + "Negotiation" . + "Copywriting" . + "Google Ads" . + "SEO" . + "Data Analysis" . + "R" . + "SQL" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011e/companies.json b/src/test/resources/new-test-cases/io/RMLSTC0011e/companies.json new file mode 100644 index 00000000..28355038 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011e/companies.json @@ -0,0 +1,91 @@ +{ + "companies": [ + { + "name": "TechCorp", + "location": { + "country": "USA", + "state": "California", + "city": "San Francisco" + }, + "departments": [ + { + "name": "Engineering", + "manager": { + "name": "Alice Johnson", + "age": 42 + }, + "employees": [ + { + "name": "Bob Smith", + "role": "Software Engineer", + "skills": ["Python", "JavaScript", "AWS"] + }, + { + "name": "Eve Davis", + "role": "DevOps Engineer", + "skills": ["Docker", "Kubernetes", "Terraform"] + } + ] + }, + { + "name": "Marketing", + "manager": { + "name": "John Doe", + "age": 39 + }, + "employees": [ + { + "name": "Sarah Lee", + "role": "Marketing Specialist", + "skills": ["SEO", "Google Ads", "Copywriting"] + } + ] + } + ] + }, + { + "name": "InnovateX", + "location": { + "country": "Canada", + "state": "Ontario", + "city": "Toronto" + }, + "departments": [ + { + "name": "Research & Development", + "manager": { + "name": "Emma Wilson", + "age": 45 + }, + "employees": [ + { + "name": "Liam Brown", + "role": "AI Researcher", + "skills": ["Machine Learning", "Deep Learning", "Python"] + }, + { + "name": "Sophia White", + "role": "Data Scientist", + "skills": ["Data Analysis", "R", "SQL"] + } + ] + }, + { + "name": "Sales", + "manager": { + "name": "Michael Green", + "age": 38 + }, + "employees": [ + { + "name": "Olivia Martinez", + "role": "Sales Executive", + "skills": ["Negotiation", "CRM", "Lead Generation"] + } + ] + } + ] + } + ] + } + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011e/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0011e/default.nq new file mode 100644 index 00000000..9403b1fb --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011e/default.nq @@ -0,0 +1,18 @@ + "AWS" . + "JavaScript" . + "Python" . + "Docker" . + "Kubernetes" . + "Terraform" . + "Deep Learning" . + "Machine Learning" . + "Python" . + "CRM" . + "Lead Generation" . + "Negotiation" . + "Copywriting" . + "Google Ads" . + "SEO" . + "Data Analysis" . + "R" . + "SQL" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0011e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0011e/mapping.ttl new file mode 100644 index 00000000..871a4e81 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0011e/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$.companies[*].departments[*].employees[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:skill; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.skills[*]"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012a/README.md b/src/test/resources/new-test-cases/io/RMLSTC0012a/README.md new file mode 100644 index 00000000..35634247 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012a/README.md @@ -0,0 +1,49 @@ +## RMLSTC0012a + +**Title**: Complex XML source + +**Description**: Tests the generation of triples from complex XML sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0012a/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0012a/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]. + +``` + +**Output** +``` + "TechCorp" . + "InnovateX" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012a/companies.xml b/src/test/resources/new-test-cases/io/RMLSTC0012a/companies.xml new file mode 100644 index 00000000..6cf391ea --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012a/companies.xml @@ -0,0 +1,112 @@ + + + TechCorp + + USA + California + San Francisco + + + + Engineering + + Alice Johnson + 42 + + + + Bob Smith + Software Engineer + + Python + JavaScript + AWS + + + + Eve Davis + DevOps Engineer + + Docker + Kubernetes + Terraform + + + + + + Marketing + + John Doe + 39 + + + + Sarah Lee + Marketing Specialist + + SEO + Google Ads + Copywriting + + + + + + + + InnovateX + + Canada + Ontario + Toronto + + + + Research & Development + + Emma Wilson + 45 + + + + Liam Brown + AI Researcher + + Machine Learning + Deep Learning + Python + + + + Sophia White + Data Scientist + + Data Analysis + R + SQL + + + + + + Sales + + Michael Green + 38 + + + + Olivia Martinez + Sales Executive + + Negotiation + CRM + Lead Generation + + + + + + + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012a/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0012a/default.nq new file mode 100644 index 00000000..2d195a8a --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012a/default.nq @@ -0,0 +1,2 @@ + "TechCorp" . + "InnovateX" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0012a/mapping.ttl new file mode 100644 index 00000000..e506815c --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012a/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012b/README.md b/src/test/resources/new-test-cases/io/RMLSTC0012b/README.md new file mode 100644 index 00000000..33121fd8 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012b/README.md @@ -0,0 +1,51 @@ +## RMLSTC0012b + +**Title**: Complex XML source + +**Description**: Tests the generation of triples from complex XML sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0012b/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0012b/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{../@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:department; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "department/name"; + ]; + ]. + +``` + +**Output** +``` + "Engineering" . + "Marketing" . + "Research & Development" . + "Sales" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012b/companies.xml b/src/test/resources/new-test-cases/io/RMLSTC0012b/companies.xml new file mode 100644 index 00000000..6cf391ea --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012b/companies.xml @@ -0,0 +1,112 @@ + + + TechCorp + + USA + California + San Francisco + + + + Engineering + + Alice Johnson + 42 + + + + Bob Smith + Software Engineer + + Python + JavaScript + AWS + + + + Eve Davis + DevOps Engineer + + Docker + Kubernetes + Terraform + + + + + + Marketing + + John Doe + 39 + + + + Sarah Lee + Marketing Specialist + + SEO + Google Ads + Copywriting + + + + + + + + InnovateX + + Canada + Ontario + Toronto + + + + Research & Development + + Emma Wilson + 45 + + + + Liam Brown + AI Researcher + + Machine Learning + Deep Learning + Python + + + + Sophia White + Data Scientist + + Data Analysis + R + SQL + + + + + + Sales + + Michael Green + 38 + + + + Olivia Martinez + Sales Executive + + Negotiation + CRM + Lead Generation + + + + + + + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012b/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0012b/default.nq new file mode 100644 index 00000000..a6ddb028 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012b/default.nq @@ -0,0 +1,4 @@ + "Engineering" . + "Marketing" . + "Research & Development" . + "Sales" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0012b/mapping.ttl new file mode 100644 index 00000000..bc6e289a --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012b/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{../@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:department; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "department/name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012c/README.md b/src/test/resources/new-test-cases/io/RMLSTC0012c/README.md new file mode 100644 index 00000000..b89b6478 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012c/README.md @@ -0,0 +1,53 @@ +## RMLSTC0012c + +**Title**: Complex XML source + +**Description**: Tests the generation of triples from complex XML sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0012c/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0012c/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments/department/employees"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{../../../@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:employee; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "employee/name"; + ]; + ]. + +``` + +**Output** +``` + "Bob Smith" . + "Eve Davis" . + "Sarah Lee" . + "Liam Brown" . + "Olivia Martinez" . + "Sophia White" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012c/companies.xml b/src/test/resources/new-test-cases/io/RMLSTC0012c/companies.xml new file mode 100644 index 00000000..6cf391ea --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012c/companies.xml @@ -0,0 +1,112 @@ + + + TechCorp + + USA + California + San Francisco + + + + Engineering + + Alice Johnson + 42 + + + + Bob Smith + Software Engineer + + Python + JavaScript + AWS + + + + Eve Davis + DevOps Engineer + + Docker + Kubernetes + Terraform + + + + + + Marketing + + John Doe + 39 + + + + Sarah Lee + Marketing Specialist + + SEO + Google Ads + Copywriting + + + + + + + + InnovateX + + Canada + Ontario + Toronto + + + + Research & Development + + Emma Wilson + 45 + + + + Liam Brown + AI Researcher + + Machine Learning + Deep Learning + Python + + + + Sophia White + Data Scientist + + Data Analysis + R + SQL + + + + + + Sales + + Michael Green + 38 + + + + Olivia Martinez + Sales Executive + + Negotiation + CRM + Lead Generation + + + + + + + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012c/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0012c/default.nq new file mode 100644 index 00000000..e7dab8b6 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012c/default.nq @@ -0,0 +1,6 @@ + "Bob Smith" . + "Eve Davis" . + "Sarah Lee" . + "Liam Brown" . + "Olivia Martinez" . + "Sophia White" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0012c/mapping.ttl new file mode 100644 index 00000000..5388d754 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012c/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments/department/employees"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{../../../@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:employee; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "employee/name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012d/README.md b/src/test/resources/new-test-cases/io/RMLSTC0012d/README.md new file mode 100644 index 00000000..a322b1af --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012d/README.md @@ -0,0 +1,51 @@ +## RMLSTC0012d + +**Title**: Complex XML source + +**Description**: Tests the generation of triples from complex XML sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0012d/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0012d/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments/department"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{../../@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:manager; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "manager/name"; + ]; + ]. + +``` + +**Output** +``` + "Alice Johnson" . + "John Doe" . + "Emma Wilson" . + "Michael Green" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012d/companies.xml b/src/test/resources/new-test-cases/io/RMLSTC0012d/companies.xml new file mode 100644 index 00000000..6cf391ea --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012d/companies.xml @@ -0,0 +1,112 @@ + + + TechCorp + + USA + California + San Francisco + + + + Engineering + + Alice Johnson + 42 + + + + Bob Smith + Software Engineer + + Python + JavaScript + AWS + + + + Eve Davis + DevOps Engineer + + Docker + Kubernetes + Terraform + + + + + + Marketing + + John Doe + 39 + + + + Sarah Lee + Marketing Specialist + + SEO + Google Ads + Copywriting + + + + + + + + InnovateX + + Canada + Ontario + Toronto + + + + Research & Development + + Emma Wilson + 45 + + + + Liam Brown + AI Researcher + + Machine Learning + Deep Learning + Python + + + + Sophia White + Data Scientist + + Data Analysis + R + SQL + + + + + + Sales + + Michael Green + 38 + + + + Olivia Martinez + Sales Executive + + Negotiation + CRM + Lead Generation + + + + + + + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012d/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0012d/default.nq new file mode 100644 index 00000000..13a0c585 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012d/default.nq @@ -0,0 +1,4 @@ + "Alice Johnson" . + "John Doe" . + "Emma Wilson" . + "Michael Green" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0012d/mapping.ttl new file mode 100644 index 00000000..a97be77d --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012d/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments/department"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{../../@id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:manager; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "manager/name"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012e/README.md b/src/test/resources/new-test-cases/io/RMLSTC0012e/README.md new file mode 100644 index 00000000..436b7cc1 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012e/README.md @@ -0,0 +1,65 @@ +## RMLSTC0012e + +**Title**: Complex XML source + +**Description**: Tests the generation of triples from complex XML sources + +**Error expected?** No + +**Input** + [http://w3id.org/rml/resources/rml-io/RMLSTC0012e/Friends.json](http://w3id.org/rml/resources/rml-io/RMLSTC0012e/Friends.json) + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments/department/employees/employee"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:skill; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "skills/skill"; + ]; + ]. + +``` + +**Output** +``` + "AWS" . + "JavaScript" . + "Python" . + "Docker" . + "Kubernetes" . + "Terraform" . + "Deep Learning" . + "Machine Learning" . + "Python" . + "CRM" . + "Lead Generation" . + "Negotiation" . + "Copywriting" . + "Google Ads" . + "SEO" . + "Data Analysis" . + "R" . + "SQL" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012e/companies.xml b/src/test/resources/new-test-cases/io/RMLSTC0012e/companies.xml new file mode 100644 index 00000000..6cf391ea --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012e/companies.xml @@ -0,0 +1,112 @@ + + + TechCorp + + USA + California + San Francisco + + + + Engineering + + Alice Johnson + 42 + + + + Bob Smith + Software Engineer + + Python + JavaScript + AWS + + + + Eve Davis + DevOps Engineer + + Docker + Kubernetes + Terraform + + + + + + Marketing + + John Doe + 39 + + + + Sarah Lee + Marketing Specialist + + SEO + Google Ads + Copywriting + + + + + + + + InnovateX + + Canada + Ontario + Toronto + + + + Research & Development + + Emma Wilson + 45 + + + + Liam Brown + AI Researcher + + Machine Learning + Deep Learning + Python + + + + Sophia White + Data Scientist + + Data Analysis + R + SQL + + + + + + Sales + + Michael Green + 38 + + + + Olivia Martinez + Sales Executive + + Negotiation + CRM + Lead Generation + + + + + + + \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012e/default.nq b/src/test/resources/new-test-cases/io/RMLSTC0012e/default.nq new file mode 100644 index 00000000..9403b1fb --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012e/default.nq @@ -0,0 +1,18 @@ + "AWS" . + "JavaScript" . + "Python" . + "Docker" . + "Kubernetes" . + "Terraform" . + "Deep Learning" . + "Machine Learning" . + "Python" . + "CRM" . + "Lead Generation" . + "Negotiation" . + "Copywriting" . + "Google Ads" . + "SEO" . + "Data Analysis" . + "R" . + "SQL" . diff --git a/src/test/resources/new-test-cases/io/RMLSTC0012e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLSTC0012e/mapping.ttl new file mode 100644 index 00000000..91af0f2b --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLSTC0012e/mapping.ttl @@ -0,0 +1,26 @@ +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "companies.xml"; + ]; + rml:referenceFormulation rml:XPath; + rml:iterator "/companies/company/departments/department/employees/employee"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{name}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant ex:skill; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "skills/skill"; + ]; + ]. diff --git a/src/test/resources/new-test-cases/io/RMLTTC0000/README.md b/src/test/resources/new-test-cases/io/RMLTTC0000/README.md new file mode 100644 index 00000000..f7669dbb --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0000/README.md @@ -0,0 +1,94 @@ +## RMLTTC0000 + +**Title**: Default target + +**Description**: Test exporting all triples to the default Target when not Targets are specified. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +``` + +**Output** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0000/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0000/mapping.ttl index b8f99122..00a2f99e 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0000/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0000/mapping.ttl @@ -1,15 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + rml:encoding rml:UTF-8 + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0001a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0001a/README.md new file mode 100644 index 00000000..34fa66db --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001a/README.md @@ -0,0 +1,108 @@ +## RMLTTC0001a + +**Title**: Single Target: Subject Map + +**Description**: Test exporting all triples to a single Target with a given subject. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0001a/mapping.ttl index a8567d38..a6215d4c 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0001a/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001b/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0001b/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001b/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001b/README.md b/src/test/resources/new-test-cases/io/RMLTTC0001b/README.md new file mode 100644 index 00000000..009ff1dd --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001b/README.md @@ -0,0 +1,108 @@ +## RMLTTC0001b + +**Title**: Single Target: Predicate Map + +**Description**: Test exporting all triples to a single Target with a given predicate. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "33". + "34". + "35". + "36". + "37". + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0001b/mapping.ttl index 1a3dd5ff..ac7eea7c 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0001b/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001c/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0001c/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001c/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001c/README.md b/src/test/resources/new-test-cases/io/RMLTTC0001c/README.md new file mode 100644 index 00000000..eb3ac753 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001c/README.md @@ -0,0 +1,108 @@ +## RMLTTC0001c + +**Title**: Single Target: Object Map + +**Description**: Test exporting all triples to a single Target with a given object reference. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "33". + "34". + "35". + "36". + "37". + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0001c/mapping.ttl index 7cadaabb..3b58386e 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0001c/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001d/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0001d/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001d/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001d/README.md b/src/test/resources/new-test-cases/io/RMLTTC0001d/README.md new file mode 100644 index 00000000..86577052 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001d/README.md @@ -0,0 +1,113 @@ +## RMLTTC0001d + +**Title**: Single Target: Graph Map + +**Description**: Test exporting all triples within a named graph to a single Target. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix dcat: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001d/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0001d/dump1.nq index e69de29b..adcefd04 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001d/dump1.nq +++ b/src/test/resources/new-test-cases/io/RMLTTC0001d/dump1.nq @@ -0,0 +1,10 @@ + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0001d/mapping.ttl index 7c71c03f..40b34da4 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001d/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0001d/mapping.ttl @@ -1,18 +1,16 @@ @prefix rml: . @prefix foaf: . @prefix dcat: . -@prefix void: . @prefix formats: . @prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -42,8 +40,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001e/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0001e/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001e/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001e/README.md b/src/test/resources/new-test-cases/io/RMLTTC0001e/README.md new file mode 100644 index 00000000..ae87dfe1 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001e/README.md @@ -0,0 +1,111 @@ +## RMLTTC0001e + +**Title**: Single Target: Language Map + +**Description**: Test exporting all triples with a given language tag to a single Target. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:languageMap [ a rml:LanguageMap; + rml:constant "en"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "33". + "34". + "35". + "36". + "37". + +``` + +**Output 2** +``` + "Monica Geller"@en . + "Rachel Green"@en . + "Joey Tribbiani"@en . + "Chandler Bing"@en . + "Ross Geller"@en . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0001e/mapping.ttl index d6455b8c..51a5bbf2 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001e/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0001e/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -41,8 +38,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001f/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0001f/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001f/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001f/README.md b/src/test/resources/new-test-cases/io/RMLTTC0001f/README.md new file mode 100644 index 00000000..1fb6a2b5 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0001f/README.md @@ -0,0 +1,112 @@ +## RMLTTC0001f + +**Title**: Single Target: Datatype Map + +**Description**: Test exporting all triples with a given datatype to a single Target. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:datatypeMap [ a rml:DatatypeMap; + rml:constant xsd:integer; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 2** +``` + "33"^^. + "34"^^. + "35"^^. + "36"^^. + "37"^^. + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0001f/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0001f/mapping.ttl index ce8f4a78..e8f8fac1 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0001f/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0001f/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix xsd: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -42,8 +39,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002a/README.md new file mode 100644 index 00000000..299577a2 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002a/README.md @@ -0,0 +1,132 @@ +## RMLTTC0002a + +**Title**: Multiple Targets: Same Term Map + +**Description**: Test exporting all triples to multiple Targets in the same Term Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + rml:logicalTarget <#TargetDump2>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002a/mapping.ttl index 8a6e98d9..a6647f3c 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002a/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,15 +36,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002b/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002b/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002b/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002b/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002b/README.md new file mode 100644 index 00000000..f24589b1 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002b/README.md @@ -0,0 +1,127 @@ +## RMLTTC0002b + +**Title**: Multiple Targets: Subject Map and Predicate Map + +**Description**: Test exporting all triples to a Target in a Subject Map and a Target in a Predicate Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + rml:logicalTarget <#TargetDump2>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002b/mapping.ttl index f496e960..d218116d 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002b/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,15 +36,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002c/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002c/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002c/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002c/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002c/README.md new file mode 100644 index 00000000..e1c45b0d --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002c/README.md @@ -0,0 +1,127 @@ +## RMLTTC0002c + +**Title**: Multiple Targets: Subject Map and Object Map + +**Description**: Test exporting all triples to a Target in a Subject Map and a Target in a Object Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002c/mapping.ttl index 33dd7748..d5466bdc 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002c/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,15 +36,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002d/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002d/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002d/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002d/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002d/README.md new file mode 100644 index 00000000..76f1adfc --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002d/README.md @@ -0,0 +1,122 @@ +## RMLTTC0002d + +**Title**: Multiple Targets: Predicate Map and Object Map + +**Description**: Test exporting all triples to a Target in a Predicate Map and a Target in a Object Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002d/mapping.ttl index 1ef82efd..c3833569 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002d/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002d/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,15 +36,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002e/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002e/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002e/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002e/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002e/README.md new file mode 100644 index 00000000..73346493 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002e/README.md @@ -0,0 +1,131 @@ +## RMLTTC0002e + +**Title**: Multiple Targets: Subject Map, Predicate Map, and Object Map + +**Description**: Test exporting all triples to a Target in a Subject Map, a Target in a Predicate Map, and a Target in a Object Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump3>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump3> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump3.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002e/mapping.ttl index ce463ca6..9b7a9672 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002e/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002e/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -40,22 +37,25 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump3> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump3.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002f/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002f/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002f/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002f/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002f/README.md new file mode 100644 index 00000000..3e480183 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002f/README.md @@ -0,0 +1,131 @@ +## RMLTTC0002f + +**Title**: Multiple Targets: Subject Map and Graph Map + +**Description**: Test exporting all triples to a Target in a Subject Map and a Target in a Graph Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph; + rml:logicalTarget <#TargetDump2>; + ]; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + +**Output 3** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002f/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002f/mapping.ttl index 5d95abdb..3263e08f 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002f/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002f/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -43,15 +40,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002g/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002g/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002g/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002g/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002g/README.md new file mode 100644 index 00000000..957cf963 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002g/README.md @@ -0,0 +1,126 @@ +## RMLTTC0002g + +**Title**: Multiple Targets: Predicate Map and Graph Map + +**Description**: Test exporting all triples to a Target in a Predicate Map and a Target in a Graph Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph; + rml:logicalTarget <#TargetDump2>; + ]; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + +**Output 3** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002g/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0002g/dump1.nq index 95ee6e21..35a39502 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002g/dump1.nq +++ b/src/test/resources/new-test-cases/io/RMLTTC0002g/dump1.nq @@ -1,5 +1,5 @@ - "33" . - "34" . - "35" . - "36" . - "37" . + "33" . + "34" . + "35" . + "36" . + "37" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002g/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002g/mapping.ttl index 91e77b2f..1aa3b3a4 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002g/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002g/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . -@prefix ex: . +@prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -43,15 +40,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002h/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002h/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002h/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002h/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002h/README.md new file mode 100644 index 00000000..878af28c --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002h/README.md @@ -0,0 +1,126 @@ +## RMLTTC0002h + +**Title**: Multiple Targets: Object Map and Graph Map + +**Description**: Test exporting all triples to a Target in a Object Map and a Target in a Graph Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph; + rml:logicalTarget <#TargetDump2>; + ]; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + +**Output 3** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002h/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0002h/dump1.nq index 95ee6e21..35a39502 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002h/dump1.nq +++ b/src/test/resources/new-test-cases/io/RMLTTC0002h/dump1.nq @@ -1,5 +1,5 @@ - "33" . - "34" . - "35" . - "36" . - "37" . + "33" . + "34" . + "35" . + "36" . + "37" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002h/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002h/mapping.ttl index 1732c03b..76ab7663 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002h/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002h/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . -@prefix ex: . +@prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -43,15 +40,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002i/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002i/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002i/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002i/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002i/README.md new file mode 100644 index 00000000..371a4cc3 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002i/README.md @@ -0,0 +1,129 @@ +## RMLTTC0002i + +**Title**: Multiple Targets: Language Map and Graph Map + +**Description**: Test exporting all triples to a Target in a Language Map and a Target in a Graph Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:languageMap [ a rml:LanguageMap; + rml:constant "en"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + +**Output 3** +``` + "Monica Geller"@en . + "Rachel Green"@en . + "Joey Tribbiani"@en . + "Chandler Bing"@en . + "Ross Geller"@en . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002i/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002i/mapping.ttl index 7da4ece8..5a87ba92 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002i/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002i/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . -@prefix ex: . +@prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -46,15 +43,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002j/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002j/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002j/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002j/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002j/README.md new file mode 100644 index 00000000..0838260f --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002j/README.md @@ -0,0 +1,126 @@ +## RMLTTC0002j + +**Title**: Multiple Targets: Language Map and Object Map + +**Description**: Test exporting all triples to a Target in a Language Map and a Target in a Object Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:languageMap [ a rml:LanguageMap; + rml:constant "en"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + +**Output 3** +``` + "Monica Geller"@en . + "Rachel Green"@en . + "Joey Tribbiani"@en . + "Chandler Bing"@en . + "Ross Geller"@en . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002j/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002j/mapping.ttl index ed828143..fd7f1424 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002j/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002j/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -43,15 +40,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002k/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002k/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002k/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002k/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002k/README.md new file mode 100644 index 00000000..656b5cbb --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002k/README.md @@ -0,0 +1,135 @@ +## RMLTTC0002k + +**Title**: Multiple Targets: Datatype Map and Graph Map + +**Description**: Test exporting all triples to a Target in a Datatype Map and a Target in a Graph Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:datatypeMap [ a rml:DatatypeMap; + rml:constant xsd:integer; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "Monica Geller"@en . + "Rachel Green"@en . + "Joey Tribbiani"@en . + "Chandler Bing"@en . + "Ross Geller"@en . + +``` + +**Output 2** +``` + "33"^^ . + "34"^^ . + "35"^^ . + "36"^^ . + "37"^^ . + +``` + +**Output 3** +``` + "33"^^ . + "34"^^ . + "35"^^ . + "36"^^ . + "37"^^ . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002k/default.nq b/src/test/resources/new-test-cases/io/RMLTTC0002k/default.nq index e69de29b..8f081be1 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002k/default.nq +++ b/src/test/resources/new-test-cases/io/RMLTTC0002k/default.nq @@ -0,0 +1,5 @@ + "Monica Geller"@en . + "Rachel Green"@en . + "Joey Tribbiani"@en . + "Chandler Bing"@en . + "Ross Geller"@en . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002k/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002k/mapping.ttl index b993bb6a..112adeae 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002k/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002k/mapping.ttl @@ -1,19 +1,16 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @prefix xsd: . -@prefix ex: . +@prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -47,15 +44,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002l/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002l/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002l/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002l/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002l/README.md new file mode 100644 index 00000000..c688f6dd --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002l/README.md @@ -0,0 +1,127 @@ +## RMLTTC0002l + +**Title**: Multiple Targets: Datatype Map and Object Map + +**Description**: Test exporting all triples to a Target in a Datatype Map and a Target in a Object Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix xsd: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:datatypeMap [ a rml:DatatypeMap; + rml:constant xsd:integer; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33"^^ . + "34"^^ . + "35"^^ . + "36"^^ . + "37"^^ . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002l/dump2.nq b/src/test/resources/new-test-cases/io/RMLTTC0002l/dump2.nq index b92731fc..81c3a87e 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002l/dump2.nq +++ b/src/test/resources/new-test-cases/io/RMLTTC0002l/dump2.nq @@ -1,5 +1,5 @@ - "33"^^ . - "34"^^ . - "35"^^ . - "36"^^ . - "37"^^ . + "33"^^ . + "34"^^ . + "35"^^ . + "36"^^ . + "37"^^ . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002l/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002l/mapping.ttl index 204c2203..a2263a55 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002l/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002l/mapping.ttl @@ -1,19 +1,16 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @prefix xsd: . -@prefix ex: . +@prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -44,15 +41,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002m/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002m/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002m/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002m/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002m/README.md new file mode 100644 index 00000000..6727d987 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002m/README.md @@ -0,0 +1,122 @@ +## RMLTTC0002m + +**Title**: Multiple Targets: Multiple Predicate Maps + +**Description**: Test exporting all triples to Targets in multiple Predicate Maps. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + rml:logicalTarget <#TargetDump2>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002m/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002m/mapping.ttl index 49d4b0f2..d3fd84f1 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002m/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002m/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,15 +36,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002n/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002n/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002n/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002n/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002n/README.md new file mode 100644 index 00000000..e0a1076f --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002n/README.md @@ -0,0 +1,122 @@ +## RMLTTC0002n + +**Title**: Multiple Targets: Multiple Object Maps + +**Description**: Test exporting all triples to Targets in multiple Object Maps. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002n/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002n/mapping.ttl index aaca8cbe..6371637d 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002n/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002n/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,15 +36,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002o/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002o/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002o/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002o/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002o/README.md new file mode 100644 index 00000000..67d69c41 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002o/README.md @@ -0,0 +1,134 @@ +## RMLTTC0002o + +**Title**: Multiple Targets: Multiple Graph Maps + +**Description**: Test exporting all triples to Targets in multiple Graph Maps. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix dcat: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph1; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + rml:graphMap [ a rml:GraphMap; + rml:constant ex:PeopleGraph2; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + +**Output 3** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002o/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002o/mapping.ttl index b128425f..7ffad944 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002o/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002o/mapping.ttl @@ -1,18 +1,16 @@ @prefix rml: . @prefix foaf: . @prefix dcat: . -@prefix void: . @prefix formats: . @prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -31,8 +29,8 @@ rml:reference "$.name"; ]; rml:graphMap [ a rml:GraphMap; - rml:constant ex:PeopleGraph1; - rml:logicalTarget <#TargetDump1>; + rml:constant ex:PeopleGraph2; + rml:logicalTarget <#TargetDump2>; ]; ]; rml:predicateObjectMap [ a rml:PredicateObjectMap; @@ -46,8 +44,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. \ No newline at end of file diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002p/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002p/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002p/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002p/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002p/README.md new file mode 100644 index 00000000..8975f25b --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002p/README.md @@ -0,0 +1,141 @@ +## RMLTTC0002p + +**Title**: Multiple Targets: Multiple Language Maps + +**Description**: Test exporting all triples to Targets in multiple Language Maps. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:languageMap [ a rml:LanguageMap; + rml:constant "en"; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + rml:languageMap [ a rml:LanguageMap; + rml:constant "nl"; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "33". + "34". + "35". + "36". + "37". + +``` + +**Output 2** +``` + "Monica Geller"@en . + "Rachel Green"@en . + "Joey Tribbiani"@en . + "Chandler Bing"@en . + "Ross Geller"@en . + +``` + +**Output 3** +``` + "Monica Geller"@nl . + "Rachel Green"@nl . + "Joey Tribbiani"@nl . + "Chandler Bing"@nl . + "Ross Geller"@nl . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002p/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002p/mapping.ttl index c5634078..b7d772ea 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002p/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002p/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -53,15 +50,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002q/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002q/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002q/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002q/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002q/README.md new file mode 100644 index 00000000..e173efb3 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002q/README.md @@ -0,0 +1,142 @@ +## RMLTTC0002q + +**Title**: Multiple Targets: Multiple Datatype Maps + +**Description**: Test exporting all triples to Targets in multiple Datatype Maps. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix xsd: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:datatypeMap [ a rml:DatatypeMap; + rml:constant xsd:integer; + rml:logicalTarget <#TargetDump1>; + ]; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + rml:datatypeMap [ a rml:DatatypeMap; + rml:constant xsd:double; + rml:logicalTarget <#TargetDump2>; + ]; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 2** +``` + "33"^^. + "34"^^. + "35"^^. + "36"^^. + "37"^^. + +``` + +**Output 3** +``` + "33"^^. + "34"^^. + "35"^^. + "36"^^. + "37"^^. + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002q/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002q/mapping.ttl index b537d43b..a049f6db 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002q/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002q/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix xsd: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -54,15 +51,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002r/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0002r/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002r/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002r/README.md b/src/test/resources/new-test-cases/io/RMLTTC0002r/README.md new file mode 100644 index 00000000..06d17ffa --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0002r/README.md @@ -0,0 +1,109 @@ +## RMLTTC0002r + +**Title**: Multiple Targets: Multiple Term Maps with same Target + +**Description**: Test exporting all triples to same Target in multiple Term Maps. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + rml:logicalTarget <#TargetDump1>; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0002r/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0002r/mapping.ttl index e439ad20..97dfc619 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0002r/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0002r/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,8 +36,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0003a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0003a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0003a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0003a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0003a/README.md new file mode 100644 index 00000000..61447677 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0003a/README.md @@ -0,0 +1,136 @@ +## RMLTTC0003a + +**Title**: Overriding Targets: Seperate Triples Map + +**Description**: Test exporting some triples to a different Target with a separate Triples Map. + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump2>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TriplesMap2> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +<#TargetDump2> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + +``` + +**Output 3** +``` + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0003a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0003a/mapping.ttl index 9f3239ac..615f15e6 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0003a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0003a/mapping.ttl @@ -1,23 +1,20 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; rml:subjectMap [ a rml:SubjectMap; rml:template "http://example.org/{$.id}"; - rml:logicalTarget <#TargetDump1>; + rml:logicalTarget <#TargetDump2>; ]; rml:predicateObjectMap [ a rml:PredicateObjectMap; rml:predicateMap [ a rml:PredicateMap; @@ -31,7 +28,10 @@ <#TriplesMap2> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -50,15 +50,17 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . <#TargetDump2> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump2.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004a/README.md new file mode 100644 index 00000000..1233d592 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004a/README.md @@ -0,0 +1,131 @@ +## RMLTTC0004a + +**Title**: Target JSON-LD + +**Description**: Test export all triples as JSON-LD + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.jsonld"; + ]; + rml:serialization formats:JSON-LD; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` +{ + "@context": { + "foaf": "http://xmlns.com/foaf/0.1/" + }, + "@graph": [ + { + + "@id": "http://example.org/0", + "foaf:name": "Monica Geller", + "foaf:age": "33" + }, + { + "@id": "http://example.org/1", + "foaf:name": "Rachel Green", + "foaf:age": "34" + }, + { + "@id": "http://example.org/2", + "foaf:name": "Joey Tribbiani", + "foaf:age": "35" + }, + { + "@id": "http://example.org/3", + "foaf:name": "Chandler Bing", + "foaf:age": "36" + }, + { + "@id": "http://example.org/4", + "foaf:name": "Ross Geller", + "foaf:age": "37" + } + ] +} + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004a/mapping.ttl index 6cabce4a..7ed7673a 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004a/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.jsonld"; ]; rml:serialization formats:JSON-LD; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004b/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004b/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004b/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004b/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004b/README.md new file mode 100644 index 00000000..86e5e6d2 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004b/README.md @@ -0,0 +1,110 @@ +## RMLTTC0004b + +**Title**: Target N3 + +**Description**: Test export all triples as N3 + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.n3"; + ]; + rml:serialization formats:N3; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` +@prefix foaf: . +@prefix ex: . +ex:0 "33" ; + "Monica Geller" . +ex:1 "34" ; + "Rachel Green" . +ex:2 "35" ; + "Joey Tribbiani" . +ex:3 "36" ; + "Chandler Bing" . +ex:4 "37" ; + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004b/mapping.ttl index 2a2a6125..255349f2 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004b/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.n3"; ]; rml:serialization formats:N3; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004c/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004c/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004c/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004c/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004c/README.md new file mode 100644 index 00000000..72e1b327 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004c/README.md @@ -0,0 +1,108 @@ +## RMLTTC0004c + +**Title**: Target N-Triples + +**Description**: Test export all triples as N-Triples + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nt"; + ]; + rml:serialization formats:N-Triples; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004c/mapping.ttl index 3c9d4425..30977d24 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004c/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nt"; ]; rml:serialization formats:N-Triples; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004d/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004d/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004d/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004d/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004d/README.md new file mode 100644 index 00000000..68b41dbc --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004d/README.md @@ -0,0 +1,108 @@ +## RMLTTC0004d + +**Title**: Target N-Quads + +**Description**: Test export all triples as N-Quads + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004d/mapping.ttl index 25beafd0..e2b46141 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004d/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004d/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004e/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004e/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004e/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004e/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004e/README.md new file mode 100644 index 00000000..84c3c4c1 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004e/README.md @@ -0,0 +1,120 @@ +## RMLTTC0004e + +**Title**: Target RDF/JSON + +**Description**: Test export all triples as RDF/JSON + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.rdfjson"; + ]; + rml:serialization formats:RDF_JSON; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` +{ + "http://example.org/0" : { + "http://xmlns.com/foaf/0.1/age" : [ { "value" : "33" } ], + "http://xmlns.com/foaf/0.1/name" : [ { "value" : "Monica Geller" } ] + }, + "http://example.org/1" : { + "http://xmlns.com/foaf/0.1/age" : [ { "value" : "34" } ], + "http://xmlns.com/foaf/0.1/name" : [ { "value" : "Rachel Green" } ] + }, + "http://example.org/2" : { + "http://xmlns.com/foaf/0.1/age" : [ { "value" : "35" } ], + "http://xmlns.com/foaf/0.1/name" : [ { "value" : "Joey Tribbiani" } ] + }, + "http://example.org/3" : { + "http://xmlns.com/foaf/0.1/age" : [ { "value" : "36" } ], + "http://xmlns.com/foaf/0.1/name" : [ { "value" : "Chandler Bing" } ] + }, + "http://example.org/4" : { + "http://xmlns.com/foaf/0.1/age" : [ { "value" : "37" } ], + "http://xmlns.com/foaf/0.1/name" : [ { "value" : "Ross Geller" } ] + } +} + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004e/mapping.ttl index b03a280f..c27fded8 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004e/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004e/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.rdfjson"; ]; rml:serialization formats:RDF_JSON; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004f/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004f/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004f/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004f/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004f/README.md new file mode 100644 index 00000000..83c12590 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004f/README.md @@ -0,0 +1,121 @@ +## RMLTTC0004f + +**Title**: Target RDF/XML + +**Description**: Test export all triples as RDF/XML + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.rdfxml"; + ]; + rml:serialization formats:RDF_XML; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + + + 33 + Monica Geller + + + 34 + Rachel Green + + + 35 + Joey Tribbiani + + + 36 + Chandler Bing + + + 37 + Ross Geller + + + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004f/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004f/mapping.ttl index f8408af1..4a100eb8 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004f/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004f/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.rdfxml"; ]; rml:serialization formats:RDF_XML; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004g/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0004g/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004g/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004g/README.md b/src/test/resources/new-test-cases/io/RMLTTC0004g/README.md new file mode 100644 index 00000000..f44425ce --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0004g/README.md @@ -0,0 +1,108 @@ +## RMLTTC0004g + +**Title**: Target Turtle + +**Description**: Test export all triples as Turtle + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.ttl"; + ]; + rml:serialization formats:Turtle; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "Monica Geller" . + "Rachel Green" . + "Joey Tribbiani" . + "Chandler Bing" . + "Ross Geller" . + "33" . + "34" . + "35" . + "36" . + "37" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004g/dump1.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004g/dump1.ttl index d9456768..36247500 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004g/dump1.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004g/dump1.ttl @@ -1,10 +1,10 @@ - "33" . "Monica Geller" . - "34" . "Rachel Green" . - "35" . "Joey Tribbiani" . - "36" . "Chandler Bing" . - "37" . "Ross Geller" . + "33" . + "34" . + "35" . + "36" . + "37" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0004g/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0004g/mapping.ttl index 328d8414..7ebf1021 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0004g/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0004g/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.ttl"; ]; rml:serialization formats:Turtle; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0005a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0005a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0005a/README.md new file mode 100644 index 00000000..3e87f9b3 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0005a/README.md @@ -0,0 +1,109 @@ +## RMLTTC0005a + +**Title**: Target UTF-8 + +**Description**: Test export all triples with UTF-8 encoding + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; + rml:encoding rml:UTF-8; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0005a/mapping.ttl index 7c046dfa..8ec724a5 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0005a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0005a/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; rml:encoding rml:UTF-8; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005b/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0005b/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0005b/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005b/README.md b/src/test/resources/new-test-cases/io/RMLTTC0005b/README.md new file mode 100644 index 00000000..6f8b8933 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0005b/README.md @@ -0,0 +1,109 @@ +## RMLTTC0005b + +**Title**: Target UTF-16 + +**Description**: Test export all triples with UTF-16 encoding + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; + rml:encoding rml:UTF-16; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq index d9456768..0cb7fa22 100644 Binary files a/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq and b/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq differ diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq.utf16 b/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq.utf16 deleted file mode 100644 index 0cb7fa22..00000000 Binary files a/src/test/resources/new-test-cases/io/RMLTTC0005b/dump1.nq.utf16 and /dev/null differ diff --git a/src/test/resources/new-test-cases/io/RMLTTC0005b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0005b/mapping.ttl index 46c74a60..69dc45bc 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0005b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0005b/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; rml:encoding rml:UTF-16; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0006a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0006a/README.md new file mode 100644 index 00000000..96554c9e --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006a/README.md @@ -0,0 +1,108 @@ +## RMLTTC0006a + +**Title**: Target no compression + +**Description**: Test export all triples with no compression + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0006a/mapping.ttl index 7b49510a..e2b46141 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0006a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0006a/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006b/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0006b/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006b/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006b/README.md b/src/test/resources/new-test-cases/io/RMLTTC0006b/README.md new file mode 100644 index 00000000..52bb0398 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006b/README.md @@ -0,0 +1,97 @@ +## RMLTTC0006b + +**Title**: Target GZip compression + +**Description**: Test export all triples with GZip compression + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.gz"; + ]; + rml:serialization formats:N-Quads; + rml:compression rml:gzip; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** + `dump1.nq.gz` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006b/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0006b/dump1.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0006b/dump1.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0006b/mapping.ttl index f1ea89f7..ad46411f 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0006b/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0006b/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.gz"; ]; rml:serialization formats:N-Quads; rml:compression rml:gzip; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006c/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0006c/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006c/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006c/README.md b/src/test/resources/new-test-cases/io/RMLTTC0006c/README.md new file mode 100644 index 00000000..15435e90 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006c/README.md @@ -0,0 +1,97 @@ +## RMLTTC0006c + +**Title**: Target Zip compression + +**Description**: Test export all triples with ZIP compression + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.zip"; + ]; + rml:serialization formats:N-Quads; + rml:compression rml:zip; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** + `dump1.nq.zip` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006c/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0006c/dump1.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0006c/dump1.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0006c/mapping.ttl index 377a978c..e4395a84 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0006c/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0006c/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.zip"; ]; rml:serialization formats:N-Quads; rml:compression rml:zip; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006d/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0006d/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006d/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006d/README.md b/src/test/resources/new-test-cases/io/RMLTTC0006d/README.md new file mode 100644 index 00000000..d60b367d --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006d/README.md @@ -0,0 +1,98 @@ +## RMLTTC0006d + +**Title**: Target TarXz compression + +**Description**: Test export all triples with TarXZ compression + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@prefix ex: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.tar.xz"; + ]; + rml:serialization formats:N-Quads; + rml:compression rml:tarxz; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** + `dump1.nq.tar.xz` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0006d/mapping.ttl index dafac6b0..6c914e77 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0006d/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0006d/mapping.ttl @@ -1,18 +1,15 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @prefix ex: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -39,8 +36,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.tar.xz"; ]; rml:serialization formats:N-Quads; rml:compression rml:tarxz; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006e/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0006e/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006e/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006e/README.md b/src/test/resources/new-test-cases/io/RMLTTC0006e/README.md new file mode 100644 index 00000000..42e7ca17 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0006e/README.md @@ -0,0 +1,97 @@ +## RMLTTC0006e + +**Title**: Target TarGzip compression + +**Description**: Test export all triples with TarGZip compression + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.tar.gz"; + ]; + rml:serialization formats:N-Quads; + rml:compression rml:targz; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** + `dump1.nq.tar.gz` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0006e/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0006e/mapping.ttl index a56110fb..c71d369d 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0006e/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0006e/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq.tar.gz"; ]; rml:serialization formats:N-Quads; rml:compression rml:targz; diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007a/Friends.json b/src/test/resources/new-test-cases/io/RMLTTC0007a/Friends.json new file mode 100644 index 00000000..8e554498 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0007a/Friends.json @@ -0,0 +1,27 @@ +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007a/README.md b/src/test/resources/new-test-cases/io/RMLTTC0007a/README.md new file mode 100644 index 00000000..4e2f4339 --- /dev/null +++ b/src/test/resources/new-test-cases/io/RMLTTC0007a/README.md @@ -0,0 +1,108 @@ +## RMLTTC0007a + +**Title**: Target with FilePath description + +**Description**: Test export all triples to a target with File path access description + +**Error expected?** No + +**Input** +``` +[ + { + "id": 0, + "name": "Monica Geller", + "age": 33 + }, + { + "id": 1, + "name": "Rachel Green", + "age": 34 + }, + { + "id": 2, + "name": "Joey Tribbiani", + "age": 35 + }, + { + "id": 3, + "name": "Chandler Bing", + "age": 36 + }, + { + "id": 4, + "name": "Ross Geller", + "age": 37 + } +] + +``` + +**Mapping** +``` +@prefix rml: . +@prefix foaf: . +@prefix formats: . +@base . + +<#TriplesMap> a rml:TriplesMap; + rml:logicalSource [ a rml:LogicalSource; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; + rml:referenceFormulation rml:JSONPath; + rml:iterator "$[*]"; + ]; + rml:subjectMap [ a rml:SubjectMap; + rml:template "http://example.org/{$.id}"; + rml:logicalTarget <#TargetDump1>; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:name; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.name"; + ]; + ]; + rml:predicateObjectMap [ a rml:PredicateObjectMap; + rml:predicateMap [ a rml:PredicateMap; + rml:constant foaf:age; + ]; + rml:objectMap [ a rml:ObjectMap; + rml:reference "$.age"; + ]; + ]; +. + +<#TargetDump1> a rml:LogicalTarget; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; + ]; + rml:serialization formats:N-Quads; +. + +``` + +**Output 1** +``` + +``` + +**Output 2** +``` + "33" . + "Monica Geller" . + "34" . + "Rachel Green" . + "35" . + "Joey Tribbiani" . + "36" . + "Chandler Bing" . + "37" . + "Ross Geller" . + +``` + diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007a/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0007a/mapping.ttl index 05ab849c..e2b46141 100644 --- a/src/test/resources/new-test-cases/io/RMLTTC0007a/mapping.ttl +++ b/src/test/resources/new-test-cases/io/RMLTTC0007a/mapping.ttl @@ -1,17 +1,14 @@ @prefix rml: . @prefix foaf: . -@prefix dcat: . -@prefix void: . @prefix formats: . @base . -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - <#TriplesMap> a rml:TriplesMap; rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; + rml:source [ a rml:FilePath; + rml:root rml:MappingDirectory; + rml:path "Friends.json"; + ]; rml:referenceFormulation rml:JSONPath; rml:iterator "$[*]"; ]; @@ -38,8 +35,9 @@ . <#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, dcat:Distribution; - dcat:accessUrl ; + rml:target [ a rml:Target, rml:FilePath; + rml:root rml:CurrentWorkingDirectory; + rml:path "./dump1.nq"; ]; rml:serialization formats:N-Quads; . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007b/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0007b/dump1.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0007b/dump1.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007b/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0007b/mapping.ttl deleted file mode 100644 index 9cba1bcb..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0007b/mapping.ttl +++ /dev/null @@ -1,45 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix dcat: . -@prefix void: . -@prefix formats: . -@base . - -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; - rml:referenceFormulation rml:JSONPath; - rml:iterator "$[*]"; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{$.id}"; - rml:logicalTarget <#TargetDump1>; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.age"; - ]; - ]; -. - -<#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, void:Dataset; - void:dataDump ; - ]; - rml:serialization formats:N-Quads; -. diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007c/default.nq b/src/test/resources/new-test-cases/io/RMLTTC0007c/default.nq deleted file mode 100644 index e69de29b..00000000 diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007c/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0007c/dump1.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0007c/dump1.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007c/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0007c/mapping.ttl deleted file mode 100644 index 80389082..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0007c/mapping.ttl +++ /dev/null @@ -1,46 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix dcat: . -@prefix sd: . -@prefix formats: . -@base . - -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; - rml:referenceFormulation rml:JSONPath; - rml:iterator "$[*]"; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{$.id}"; - rml:logicalTarget <#TargetDump1>; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.age"; - ]; - ]; -. - -<#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, sd:Service; - sd:endpoint ; - sd:supportedLanguage sd:SPARQL11Update; - ]; - rml:serialization formats:N-Quads; -. diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007d/default.nq b/src/test/resources/new-test-cases/io/RMLTTC0007d/default.nq deleted file mode 100644 index e69de29b..00000000 diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007d/dump1.nq b/src/test/resources/new-test-cases/io/RMLTTC0007d/dump1.nq deleted file mode 100644 index d9456768..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0007d/dump1.nq +++ /dev/null @@ -1,10 +0,0 @@ - "33" . - "Monica Geller" . - "34" . - "Rachel Green" . - "35" . - "Joey Tribbiani" . - "36" . - "Chandler Bing" . - "37" . - "Ross Geller" . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007d/mapping.ttl b/src/test/resources/new-test-cases/io/RMLTTC0007d/mapping.ttl deleted file mode 100644 index a6ca9a3a..00000000 --- a/src/test/resources/new-test-cases/io/RMLTTC0007d/mapping.ttl +++ /dev/null @@ -1,52 +0,0 @@ -@prefix rml: . -@prefix foaf: . -@prefix dcat: . -@prefix td: . -@prefix htv: . -@prefix hctl: . -@prefix formats: . -@base . - -<#DCATSourceAccess> a rml:Source, dcat:Distribution; - dcat:downloadURL ; -. - -<#TriplesMap> a rml:TriplesMap; - rml:logicalSource [ a rml:LogicalSource; - rml:source <#DCATSourceAccess>; - rml:referenceFormulation rml:JSONPath; - rml:iterator "$[*]"; - ]; - rml:subjectMap [ a rml:SubjectMap; - rml:template "http://example.org/{$.id}"; - rml:logicalTarget <#TargetDump1>; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:name; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.name"; - ]; - ]; - rml:predicateObjectMap [ a rml:PredicateObjectMap; - rml:predicateMap [ a rml:PredicateMap; - rml:constant foaf:age; - ]; - rml:objectMap [ a rml:ObjectMap; - rml:reference "$.age"; - ]; - ]; -. - -<#TargetDump1> a rml:LogicalTarget; - rml:target [ a rml:Target, td:Thing; - td:hasPropertyAffordance [ - td:hasForm [ - hctl:hasTarget "http://localhost/data"; - hctl:forContentType "application/n-quads"; - ]; - ]; - ]; - rml:serialization formats:N-Quads; -. diff --git a/src/test/resources/solid-target/acl1/buildings.csv b/src/test/resources/solid-target/acl1/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/acl1/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/acl1/mapping.ttl b/src/test/resources/solid-target/acl1/mapping.ttl new file mode 100644 index 00000000..6835a56d --- /dev/null +++ b/src/test/resources/solid-target/acl1/mapping.ttl @@ -0,0 +1,106 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . +@prefix void: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid1/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:template "http://example.com/{BuildingID}"; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/acl1/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:constant "http://example.com/pod1-acl"; + rr:class acl:Authorization; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:agent; + rr:object ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Read; + ]; + rr:predicateObjectMap [ + rr:predicate acl:accessTo; + rr:object ; + ]. + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/acl1/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:constant "http://example.com/example-acl"; + rr:class acl:Authorization; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:agent; + rr:object ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Read; + ]; + rr:predicateObjectMap [ + rr:predicate acl:accessTo; + rr:object ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Control; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Write; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmlt:Target; + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building.ttl"; + rmle:userAuthentication ; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmlt:Target; + a rmle:LinkedHttpRequest; + rmle:linkingAbsoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building.ttl"; + rmle:linkRelation "acl"; + rmle:userAuthentication ; + ]. + + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId . + diff --git a/src/test/resources/solid-target/acl1/output1.nq b/src/test/resources/solid-target/acl1/output1.nq new file mode 100644 index 00000000..37c23859 --- /dev/null +++ b/src/test/resources/solid-target/acl1/output1.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/solid-target/acl2/buildings.csv b/src/test/resources/solid-target/acl2/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/acl2/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/acl2/mapping.ttl b/src/test/resources/solid-target/acl2/mapping.ttl new file mode 100644 index 00000000..90987b81 --- /dev/null +++ b/src/test/resources/solid-target/acl2/mapping.ttl @@ -0,0 +1,107 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . +@prefix void: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/acl2/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:template "http://example.com/{BuildingID}"; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/acl2/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:constant "http://example.com/pod1-acl"; + rr:class acl:Authorization; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:agent; + rr:object ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Read; + ]; + rr:predicateObjectMap [ + rr:predicate acl:accessTo; + rr:object ; + ]. + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/acl2/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:constant "http://example.com/example-acl"; + rr:class acl:Authorization; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:agent; + rr:object ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Read; + ]; + rr:predicateObjectMap [ + rr:predicate acl:accessTo; + rr:object ; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Control; + ]; + rr:predicateObjectMap [ + rr:predicate acl:mode; + rr:object acl:Write; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmlt:Target; + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:userAuthentication ; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmlt:Target; + a rmle:LinkedHttpRequest; + rmle:linkingAbsoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:linkRelation "acl"; + rmle:userAuthentication ; + ]. + + + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId . + diff --git a/src/test/resources/solid-target/acl2/output1.nq b/src/test/resources/solid-target/acl2/output1.nq new file mode 100644 index 00000000..37c23859 --- /dev/null +++ b/src/test/resources/solid-target/acl2/output1.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/solid-target/dynamic_solid1/buildings.csv b/src/test/resources/solid-target/dynamic_solid1/buildings.csv new file mode 100644 index 00000000..ca2d1f77 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid1/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID,webid +building1,user2,floortile1,https://pod.playground.solidlab.be/user2/profile/card#me +building2,user2,floortile2,https://pod.playground.solidlab.be/user2/profile/card#me +building3,user3,floortile1,https://pod.playground.solidlab.be/user3/profile/card#me diff --git a/src/test/resources/solid-target/dynamic_solid1/mapping.ttl b/src/test/resources/solid-target/dynamic_solid1/mapping.ttl new file mode 100644 index 00000000..b53de112 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid1/mapping.ttl @@ -0,0 +1,67 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rml:LogicalSource; + rml:source "src/test/resources/solid-target/dynamic_solid1/buildings.csv"; + rml:referenceFormulation ql:CSV. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "http://example.com/{BuildingID}"; + rmle:logicalTargetMap [ rr:template "logical_target/building/{OwnerID}" ]; + ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "logical_target/building/{OwnerID}"; + rr:class rml:LogicalTarget; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:serialization; + rr:object formats:Turtle; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:target; + rr:objectMap [ rr:template "target/building/{OwnerID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "target/building/{OwnerID}"; + rr:class rmlt:Target, rmle:DirectHttpRequest; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate htv:absoluteURI; + rr:objectMap [ rr:template "https://pod.playground.solidlab.be/user1/rmlmapper/building_{OwnerID}" ]; + ]; + rr:predicateObjectMap [ + rr:predicate rmle:userAuthentication; + rr:object ; + ]. + + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId . + diff --git a/src/test/resources/solid-target/dynamic_solid1/output1.nq b/src/test/resources/solid-target/dynamic_solid1/output1.nq new file mode 100644 index 00000000..73ad489c --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid1/output1.nq @@ -0,0 +1,2 @@ + . + . diff --git a/src/test/resources/solid-target/dynamic_solid1/output2.nq b/src/test/resources/solid-target/dynamic_solid1/output2.nq new file mode 100644 index 00000000..49f33f6f --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid1/output2.nq @@ -0,0 +1 @@ + . diff --git a/src/test/resources/solid-target/dynamic_solid2/buildings.csv b/src/test/resources/solid-target/dynamic_solid2/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid2/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/dynamic_solid2/mapping.ttl b/src/test/resources/solid-target/dynamic_solid2/mapping.ttl new file mode 100644 index 00000000..2a5b8846 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid2/mapping.ttl @@ -0,0 +1,75 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rml:LogicalSource; + rml:source "src/test/resources/solid-target/dynamic_solid2/buildings.csv"; + rml:referenceFormulation ql:CSV. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ rr:template "http://example.com/{BuildingID}" ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ + rr:template "http://example.com/product-{FloorTileID}"; + rmle:logicalTargetMap [ rr:template "logical_target/building/{OwnerID}" ]; + rml:logicalTarget ; + ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "logical_target/building/{OwnerID}"; + rr:class rml:LogicalTarget; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:serialization; + rr:object formats:Turtle; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:target; + rr:objectMap [ rr:template "target/building/{OwnerID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "target/building/{OwnerID}"; + rr:class rmlt:Target, rmle:DirectHttpRequest; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate htv:absoluteURI; + rr:objectMap [ rr:template "https://pod.playground.solidlab.be/user1/rmlmapper/building_{OwnerID}" ]; + ]; + rr:predicateObjectMap [ + rr:predicate rmle:userAuthentication; + rr:object ; + ]. + + rmlt:target [ + #rmlt:serialization formats:N-Quads; + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/floortile"; + rmle:userAuthentication ; +]. + + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId . + diff --git a/src/test/resources/solid-target/dynamic_solid2/output1.nq b/src/test/resources/solid-target/dynamic_solid2/output1.nq new file mode 100644 index 00000000..73ad489c --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid2/output1.nq @@ -0,0 +1,2 @@ + . + . diff --git a/src/test/resources/solid-target/dynamic_solid2/output2.nq b/src/test/resources/solid-target/dynamic_solid2/output2.nq new file mode 100644 index 00000000..49f33f6f --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid2/output2.nq @@ -0,0 +1 @@ + . diff --git a/src/test/resources/solid-target/dynamic_solid2/output3.nq b/src/test/resources/solid-target/dynamic_solid2/output3.nq new file mode 100644 index 00000000..aafe36a0 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid2/output3.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/solid-target/dynamic_solid3/buildings.csv b/src/test/resources/solid-target/dynamic_solid3/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid3/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/dynamic_solid3/mapping.ttl b/src/test/resources/solid-target/dynamic_solid3/mapping.ttl new file mode 100644 index 00000000..484a9d98 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid3/mapping.ttl @@ -0,0 +1,100 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rml:LogicalSource; + rml:source "src/test/resources/solid-target/dynamic_solid2/buildings.csv"; + rml:referenceFormulation ql:CSV. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ rr:template "http://example.com/{BuildingID}" ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ + rr:template "http://example.com/product-{FloorTileID}"; + rmle:logicalTargetMap [ rr:template "logical_target/building/{OwnerID}" ], + [ rr:template "logical_target/{FloorTileID}" ]; + ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "logical_target/building/{OwnerID}"; + rr:class rml:LogicalTarget; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:serialization; + rr:object formats:Turtle; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:target; + rr:objectMap [ rr:template "target/building/{OwnerID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "target/building/{OwnerID}"; + rr:class rmlt:Target, rmle:DirectHttpRequest; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate htv:absoluteURI; + rr:objectMap [ rr:template "https://pod.playground.solidlab.be/user1/rmlmapper/building_{OwnerID}" ]; + ]; + rr:predicateObjectMap [ + rr:predicate rmle:userAuthentication; + rr:object ; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "logical_target/{FloorTileID}"; + rr:class rml:LogicalTarget; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:serialization; + rr:object formats:Turtle; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:target; + rr:objectMap [ rr:template "target/{FloorTileID}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "target/{FloorTileID}"; + rr:class rmlt:Target, rmle:DirectHttpRequest; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate htv:absoluteURI; + rr:objectMap [ rr:template "https://pod.playground.solidlab.be/user1/rmlmapper/{FloorTileID}" ]; + ]; + rr:predicateObjectMap [ + rr:predicate rmle:userAuthentication; + rr:object ; + ]. + + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId . + diff --git a/src/test/resources/solid-target/dynamic_solid3/output1.nq b/src/test/resources/solid-target/dynamic_solid3/output1.nq new file mode 100644 index 00000000..73ad489c --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid3/output1.nq @@ -0,0 +1,2 @@ + . + . diff --git a/src/test/resources/solid-target/dynamic_solid3/output2.nq b/src/test/resources/solid-target/dynamic_solid3/output2.nq new file mode 100644 index 00000000..49f33f6f --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid3/output2.nq @@ -0,0 +1 @@ + . diff --git a/src/test/resources/solid-target/dynamic_solid3/output3.nq b/src/test/resources/solid-target/dynamic_solid3/output3.nq new file mode 100644 index 00000000..068150a9 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid3/output3.nq @@ -0,0 +1,3 @@ + . + . + diff --git a/src/test/resources/solid-target/dynamic_solid3/output4.nq b/src/test/resources/solid-target/dynamic_solid3/output4.nq new file mode 100644 index 00000000..d8ff7973 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid3/output4.nq @@ -0,0 +1,2 @@ + . + diff --git a/src/test/resources/solid-target/dynamic_solid4/mapping.ttl b/src/test/resources/solid-target/dynamic_solid4/mapping.ttl new file mode 100644 index 00000000..04b7f2e6 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid4/mapping.ttl @@ -0,0 +1,72 @@ +@prefix rr: . +@prefix foaf: . +@prefix ex: . +@prefix xsd: . +@prefix rml: . +@prefix ql: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . +@base . + + rml:logicalSource [ + rml:source "student.csv"; + rml:referenceFormulation ql:CSV + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "http://example.com/{ID}"; + ]; + rr:predicateObjectMap [ + rr:predicate ex:name ; + rr:objectMap [ + rml:reference "Name"; + rml:languageMap [ + rml:reference "lang"; + rmle:logicalTargetMap [ rr:template "logical_target/{lang}" ] + ] + ] + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "logical_target/{lang}"; + rr:class rml:LogicalTarget; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:serialization; + rr:object formats:Turtle; + ]; + rr:predicateObjectMap [ + rr:predicate rmlt:target; + rr:objectMap [ rr:template "target/{lang}" ]; + ]. + + a rr:TriplesMap; + rml:logicalSource ; + rr:subjectMap [ + rr:template "target/{lang}"; + rr:class rmlt:Target, rmle:DirectHttpRequest; + rml:logicalTarget rmle:ThisMapping; + ]; + rr:predicateObjectMap [ + rr:predicate htv:absoluteURI; + rr:objectMap [ rr:template "https://pod.playground.solidlab.be/user1/rmlmapper/student_{lang}" ]; + ]; + rr:predicateObjectMap [ + rr:predicate rmle:userAuthentication; + rr:object ; + ]. + + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId . + diff --git a/src/test/resources/solid-target/dynamic_solid4/output1.nq b/src/test/resources/solid-target/dynamic_solid4/output1.nq new file mode 100644 index 00000000..a4cc2409 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid4/output1.nq @@ -0,0 +1,2 @@ + "Venus"@en . + "William"@en . \ No newline at end of file diff --git a/src/test/resources/solid-target/dynamic_solid4/output2.nq b/src/test/resources/solid-target/dynamic_solid4/output2.nq new file mode 100644 index 00000000..83e18943 --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid4/output2.nq @@ -0,0 +1 @@ + "Bob"@nl . \ No newline at end of file diff --git a/src/test/resources/solid-target/dynamic_solid4/student.csv b/src/test/resources/solid-target/dynamic_solid4/student.csv new file mode 100644 index 00000000..37ec786c --- /dev/null +++ b/src/test/resources/solid-target/dynamic_solid4/student.csv @@ -0,0 +1,4 @@ +ID,Name,lang +10,Venus,en +20,William,en +30,Bob,nl \ No newline at end of file diff --git a/src/test/resources/solid-target/solid1/buildings.csv b/src/test/resources/solid-target/solid1/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/solid1/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/solid1/mapping.ttl b/src/test/resources/solid-target/solid1/mapping.ttl new file mode 100644 index 00000000..a0c53897 --- /dev/null +++ b/src/test/resources/solid-target/solid1/mapping.ttl @@ -0,0 +1,40 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix rmle: . +@prefix htv: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid1/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:template "http://example.com/{BuildingID}"; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmlt:Target, rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:userAuthentication [ + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId + ]; + ]. + diff --git a/src/test/resources/solid-target/solid1/output1.nq b/src/test/resources/solid-target/solid1/output1.nq new file mode 100644 index 00000000..37c23859 --- /dev/null +++ b/src/test/resources/solid-target/solid1/output1.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/solid-target/solid2/buildings.csv b/src/test/resources/solid-target/solid2/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/solid2/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/solid2/mapping.ttl b/src/test/resources/solid-target/solid2/mapping.ttl new file mode 100644 index 00000000..955a0a36 --- /dev/null +++ b/src/test/resources/solid-target/solid2/mapping.ttl @@ -0,0 +1,42 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid2/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ rr:template "http://example.com/{BuildingID}" ]; + rr:predicateObjectMap [ + rr:predicateMap [ + rr:constant o:has-floor-tile; + rml:logicalTarget ; + ]; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmle:Target; + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:userAuthentication [ + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId + ]; + ]. + diff --git a/src/test/resources/solid-target/solid2/output1.nq b/src/test/resources/solid-target/solid2/output1.nq new file mode 100644 index 00000000..37c23859 --- /dev/null +++ b/src/test/resources/solid-target/solid2/output1.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/solid-target/solid3/buildings.csv b/src/test/resources/solid-target/solid3/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/solid3/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/solid3/mapping.ttl b/src/test/resources/solid-target/solid3/mapping.ttl new file mode 100644 index 00000000..54e5b1c7 --- /dev/null +++ b/src/test/resources/solid-target/solid3/mapping.ttl @@ -0,0 +1,41 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid3/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ rr:template "http://example.com/{BuildingID}" ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ + rr:template "http://example.com/product-{FloorTileID}"; + rml:logicalTarget ; + ]; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:userAuthentication [ + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId + ]; + ]. + diff --git a/src/test/resources/solid-target/solid3/output1.nq b/src/test/resources/solid-target/solid3/output1.nq new file mode 100644 index 00000000..37c23859 --- /dev/null +++ b/src/test/resources/solid-target/solid3/output1.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/solid-target/solid4/buildings.csv b/src/test/resources/solid-target/solid4/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/solid4/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/solid4/mapping.ttl b/src/test/resources/solid-target/solid4/mapping.ttl new file mode 100644 index 00000000..8e6f0e39 --- /dev/null +++ b/src/test/resources/solid-target/solid4/mapping.ttl @@ -0,0 +1,45 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid4/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:template "http://example.com/{BuildingID}"; + rr:graphMap [ + a rr:GraphMap; + rr:constant ex:BuildingsGraph; + rml:logicalTarget ; + ]; + ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + rmlt:target [ + #rmlt:serialization formats:Turtle; + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:userAuthentication [ + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId + ]; +]. + diff --git a/src/test/resources/solid-target/solid4/output1.nq b/src/test/resources/solid-target/solid4/output1.nq new file mode 100644 index 00000000..8d99aa23 --- /dev/null +++ b/src/test/resources/solid-target/solid4/output1.nq @@ -0,0 +1,5 @@ + . + . + . + + diff --git a/src/test/resources/solid-target/solid5/buildings.csv b/src/test/resources/solid-target/solid5/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/solid5/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/solid5/mapping.ttl b/src/test/resources/solid-target/solid5/mapping.ttl new file mode 100644 index 00000000..9319e310 --- /dev/null +++ b/src/test/resources/solid-target/solid5/mapping.ttl @@ -0,0 +1,43 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix acl: . +@prefix rmle: . +@prefix htv: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid5/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ rr:template "http://example.com/{BuildingID}" ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + rr:graphMap [ + a rr:GraphMap; + rr:constant ex:BuildingsGraph; + rml:logicalTarget ; + ]; + ]. + + rmlt:target [ + #rmlt:serialization formats:Turtle; + a rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + rmle:userAuthentication [ + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId + ]; +]. + diff --git a/src/test/resources/solid-target/solid5/output1.nq b/src/test/resources/solid-target/solid5/output1.nq new file mode 100644 index 00000000..8d99aa23 --- /dev/null +++ b/src/test/resources/solid-target/solid5/output1.nq @@ -0,0 +1,5 @@ + . + . + . + + diff --git a/src/test/resources/solid-target/solid6/buildings.csv b/src/test/resources/solid-target/solid6/buildings.csv new file mode 100644 index 00000000..92cd61c6 --- /dev/null +++ b/src/test/resources/solid-target/solid6/buildings.csv @@ -0,0 +1,4 @@ +BuildingID,OwnerID,FloorTileID +building1,user2,floortile1 +building2,user2,floortile2 +building3,user3,floortile1 diff --git a/src/test/resources/solid-target/solid6/mapping.ttl b/src/test/resources/solid-target/solid6/mapping.ttl new file mode 100644 index 00000000..7e60f3f3 --- /dev/null +++ b/src/test/resources/solid-target/solid6/mapping.ttl @@ -0,0 +1,46 @@ +@base . +@prefix rr: . +@prefix rdf: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix o: . +@prefix ex: . +@prefix rmlt: . +@prefix formats: . +@prefix rmle: . +@prefix htv: . + + a rr:TriplesMap; + rml:logicalSource [ + rml:source "src/test/resources/solid-target/solid1/buildings.csv"; + rml:referenceFormulation ql:CSV; + ]; + rr:subjectMap [ + rr:template "http://example.com/{BuildingID}"; + rml:logicalTarget ; + ]; + rr:predicateObjectMap [ + rr:predicate o:has-floor-tile; + rr:objectMap [ rr:template "http://example.com/product-{FloorTileID}" ]; + ]. + + rmlt:serialization formats:Turtle; + rmlt:target [ + a rmlt:Target, rmle:DirectHttpRequest; + htv:absoluteURI "https://pod.playground.solidlab.be/user1/rmlmapper/building"; + htv:methodName "PUT"; + htv:headers ([ + a htv:RequestHeader; + htv:fieldName "Content-Type"; + htv:fieldValue "text/turtle"; + ]); + rmle:userAuthentication [ + a rmle:CssClientCredentialsAuthentication; + rmle:authEmail "user1@pod.playground.solidlab.be"; + rmle:authPassword "user1"; + rmle:authOidcIssuer ; + rmle:authWebId + ]; + ]. + diff --git a/src/test/resources/solid-target/solid6/output1.nq b/src/test/resources/solid-target/solid6/output1.nq new file mode 100644 index 00000000..37c23859 --- /dev/null +++ b/src/test/resources/solid-target/solid6/output1.nq @@ -0,0 +1,4 @@ + . + . + . + diff --git a/src/test/resources/test-cases/RMLTC0007h-CSV/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-CSV/mapping.ttl index e1aaa325..e6223646 100644 --- a/src/test/resources/test-cases/RMLTC0007h-CSV/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-CSV/mapping.ttl @@ -14,13 +14,13 @@ ]; rr:subjectMap [ - rr:template "http://example.com/Student/{ID}/{Name}"; - rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-CSV/student.csv b/src/test/resources/test-cases/RMLTC0007h-CSV/student.csv index df9d2d69..0f5454ff 100644 --- a/src/test/resources/test-cases/RMLTC0007h-CSV/student.csv +++ b/src/test/resources/test-cases/RMLTC0007h-CSV/student.csv @@ -1,2 +1,2 @@ -ID,Name -10,Venus +ID,FirstName,Lastname +10,Venus,Williams diff --git a/src/test/resources/test-cases/RMLTC0007h-EXCEL/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-EXCEL/mapping.ttl index a57f546e..da8f09a9 100644 --- a/src/test/resources/test-cases/RMLTC0007h-EXCEL/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-EXCEL/mapping.ttl @@ -15,12 +15,12 @@ rr:subjectMap [ rr:template "http://example.com/Student/{ID}/{FirstName}"; - rr:graph [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-JSON/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-JSON/mapping.ttl index 274148f6..9766f7fa 100644 --- a/src/test/resources/test-cases/RMLTC0007h-JSON/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-JSON/mapping.ttl @@ -15,14 +15,14 @@ ]; rr:subjectMap [ - rr:template "http://example.com/Student/{ID}/{Name}"; - rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-JSON/student.json b/src/test/resources/test-cases/RMLTC0007h-JSON/student.json index 0f6f797f..dcdd9388 100644 --- a/src/test/resources/test-cases/RMLTC0007h-JSON/student.json +++ b/src/test/resources/test-cases/RMLTC0007h-JSON/student.json @@ -1,6 +1,7 @@ { "students": [{ "ID": 10, - "Name":"Venus" + "FirstName":"Venus", + "LastName":"Williams" }] } diff --git a/src/test/resources/test-cases/RMLTC0007h-MySQL/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-MySQL/mapping.ttl index 3e60f029..44d0a908 100644 --- a/src/test/resources/test-cases/RMLTC0007h-MySQL/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-MySQL/mapping.ttl @@ -16,14 +16,14 @@ ]; rr:subjectMap [ - rr:template "http://example.com/Student/{ID}/{Name}"; - rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-MySQL/resource.sql b/src/test/resources/test-cases/RMLTC0007h-MySQL/resource.sql index 8b2b6d8f..0135d051 100644 --- a/src/test/resources/test-cases/RMLTC0007h-MySQL/resource.sql +++ b/src/test/resources/test-cases/RMLTC0007h-MySQL/resource.sql @@ -3,6 +3,7 @@ DROP TABLE IF EXISTS test.student; CREATE TABLE student ( ID INTEGER, - Name VARCHAR(50) + FirstName VARCHAR(50), + LastName VARCHAR(50) ); -INSERT INTO student values ('10', 'Venus'); +INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/test-cases/RMLTC0007h-ODS/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-ODS/mapping.ttl index 010cf719..755005b0 100644 --- a/src/test/resources/test-cases/RMLTC0007h-ODS/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-ODS/mapping.ttl @@ -15,12 +15,12 @@ rr:subjectMap [ rr:template "http://example.com/Student/{ID}/{FirstName}"; - rr:graph [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/mapping.ttl index 80438386..35927d1f 100644 --- a/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/mapping.ttl @@ -16,14 +16,14 @@ ]; rr:subjectMap [ - rr:template "http://example.com/Student/{ID}/{Name}"; - rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/resource.sql b/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/resource.sql index ae695f01..b5c63bc3 100644 --- a/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/resource.sql +++ b/src/test/resources/test-cases/RMLTC0007h-PostgreSQL/resource.sql @@ -2,6 +2,7 @@ DROP TABLE IF EXISTS student; CREATE TABLE student ( "ID" INTEGER, - "Name" VARCHAR(50) + "FirstName" VARCHAR(50), + "LastName" VARCHAR(50) ); -INSERT INTO student values ('10', 'Venus'); +INSERT INTO student values ('10', 'Venus', 'Williams'); diff --git a/src/test/resources/test-cases/RMLTC0007h-SPARQL/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-SPARQL/mapping.ttl index 12608320..15e9ae15 100644 --- a/src/test/resources/test-cases/RMLTC0007h-SPARQL/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-SPARQL/mapping.ttl @@ -35,12 +35,12 @@ rr:subjectMap [ rr:template "http://example.com/Student/{ID.value}/{FirstName.value}"; - rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:graphMap [ rml:reference "LastName.value"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name.value" + rml:reference "LastName.value" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-SQLServer/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-SQLServer/mapping.ttl index 14ae764b..02c5c8db 100644 --- a/src/test/resources/test-cases/RMLTC0007h-SQLServer/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-SQLServer/mapping.ttl @@ -16,14 +16,14 @@ ]; rr:subjectMap [ - rr:template "http://example.com/Student/{ID}/{Name}"; + rr:template "http://example.com/Student/{ID}/{FirstName}"; rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-SQLServer/resource.sql b/src/test/resources/test-cases/RMLTC0007h-SQLServer/resource.sql index 6263542f..dd21a31b 100644 --- a/src/test/resources/test-cases/RMLTC0007h-SQLServer/resource.sql +++ b/src/test/resources/test-cases/RMLTC0007h-SQLServer/resource.sql @@ -1,6 +1,8 @@ +USE TestDB; DROP TABLE IF EXISTS student; CREATE TABLE student ( "ID" INTEGER, - "Name" VARCHAR(50) + "FirstName" VARCHAR(50), + "LastName" VARCHAR(50) ); -INSERT INTO student values ('10', 'Venus'); +INSERT INTO student values ('10', 'Venus', 'Williams'); \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC0007h-XML/mapping.ttl b/src/test/resources/test-cases/RMLTC0007h-XML/mapping.ttl index efa03fc7..4e150e3a 100644 --- a/src/test/resources/test-cases/RMLTC0007h-XML/mapping.ttl +++ b/src/test/resources/test-cases/RMLTC0007h-XML/mapping.ttl @@ -15,13 +15,13 @@ ]; rr:subjectMap [ - rr:template "http://example.com/Student/{ID}/{Name}"; - rr:graphMap [ rml:reference "Name"; rr:termType rr:Literal; ] + rr:template "http://example.com/Student/{ID}/{FirstName}"; + rr:graphMap [ rml:reference "LastName"; rr:termType rr:Literal; ] ]; rr:predicateObjectMap [ rr:predicate foaf:name; rr:objectMap [ - rml:reference "Name" + rml:reference "LastName" ] ]. diff --git a/src/test/resources/test-cases/RMLTC0007h-XML/student.xml b/src/test/resources/test-cases/RMLTC0007h-XML/student.xml index b2a6a9ac..44eab80f 100644 --- a/src/test/resources/test-cases/RMLTC0007h-XML/student.xml +++ b/src/test/resources/test-cases/RMLTC0007h-XML/student.xml @@ -3,6 +3,7 @@ 10 - Venus + Venus + Williams diff --git a/src/test/resources/test-cases/RMLTC0009a-JSON/student.json b/src/test/resources/test-cases/RMLTC0009a-JSON/student.json index a99528c1..697be3cc 100644 --- a/src/test/resources/test-cases/RMLTC0009a-JSON/student.json +++ b/src/test/resources/test-cases/RMLTC0009a-JSON/student.json @@ -7,6 +7,7 @@ }, { "ID": 20, + "Sport": null, "Name": "Demi Moore" } ] diff --git a/src/test/resources/test-cases/RMLTC0009b-JSON/student.json b/src/test/resources/test-cases/RMLTC0009b-JSON/student.json index a99528c1..697be3cc 100644 --- a/src/test/resources/test-cases/RMLTC0009b-JSON/student.json +++ b/src/test/resources/test-cases/RMLTC0009b-JSON/student.json @@ -7,6 +7,7 @@ }, { "ID": 20, + "Sport": null, "Name": "Demi Moore" } ] diff --git a/src/test/resources/test-cases/RMLTC1035-XML/data.xml b/src/test/resources/test-cases/RMLTC1035-XML/data.xml new file mode 100644 index 00000000..caf111c5 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1035-XML/data.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1035-XML/mapping.ttl b/src/test/resources/test-cases/RMLTC1035-XML/mapping.ttl new file mode 100644 index 00000000..2883d792 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1035-XML/mapping.ttl @@ -0,0 +1,63 @@ +@prefix owl: . +@prefix rdf: . +@prefix rdfs: . +@prefix xsd: . +@prefix rr: . +@prefix rml: . +@prefix ql: . +@prefix ex: . +@prefix org: . +@prefix skos: . +@prefix fnml: . +@prefix fno: . +@prefix idlab-fn: . + +ex:Organizations a rr:TriplesMap; + rml:logicalSource [ + rml:source "test.xml"; + rml:iterator "/Directory/Organization"; + rml:referenceFormulation ql:XPath + ]; + rr:subjectMap [ + rr:template "http://data.example.org/resource/Organization_{ID}"; + rr:class org:Organization + ]; + rr:predicateObjectMap [ + rr:predicate org:name; + rr:objectMap + [ + rml:reference "Name" + ]; + ] ; + rr:predicateObjectMap [ + rr:predicate org:address; + rr:objectMap + [ + rr:parentTriplesMap ex:Addresses ; + rr:joinCondition [ + rr:child "path(.)"; + rr:parent "path(..)"; + ]; + ]; + ] +. + +ex:Addresses a rr:TriplesMap; + rml:logicalSource [ + rml:source "test.xml"; + rml:iterator "/Directory/Organization/Address"; + rml:referenceFormulation ql:XPath + ]; + rr:subjectMap [ + # rr:template "http://data.example.org/resource/Address_{generate-id(.)}"; + rml:reference "if(exists(StreetName)) then 'http://data.example.org/resource/Address_' || generate-id(.) else null"; + rr:class org:Address + ]; + rr:predicateObjectMap [ + rr:predicate org:streetName; + rr:objectMap + [ + rml:reference "StreetName" + ]; + ] ; +. diff --git a/src/test/resources/test-cases/RMLTC1035-XML/output.nq b/src/test/resources/test-cases/RMLTC1035-XML/output.nq new file mode 100644 index 00000000..4a0b7852 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1035-XML/output.nq @@ -0,0 +1,12 @@ + . + "99 Maine St" . + . + "ABC FastCo Lane" . + . + . + "ABC FastCo" . + . + "XYZ Inc." . + . + . + "MNO Ltd" . diff --git a/src/test/resources/test-cases/RMLTC1035-XML/test.xml b/src/test/resources/test-cases/RMLTC1035-XML/test.xml new file mode 100644 index 00000000..9810672d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1035-XML/test.xml @@ -0,0 +1,23 @@ + + + 123 + ABC FastCo +
+ ABC FastCo Lane +
+
+ + 456 + XYZ Inc. +
+ XYZ Metro +
+
+ + 789 + MNO Ltd +
+ 99 Maine St +
+
+
diff --git a/src/test/resources/test-cases/RMLTC1044-CSV/calendar.csv b/src/test/resources/test-cases/RMLTC1044-CSV/calendar.csv new file mode 100644 index 00000000..fa4e440d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1044-CSV/calendar.csv @@ -0,0 +1,4 @@ +1,true,true +2,true,false +3,false,true +4,false,false diff --git a/src/test/resources/test-cases/RMLTC1044-CSV/input.csv b/src/test/resources/test-cases/RMLTC1044-CSV/input.csv new file mode 100644 index 00000000..a537e5f7 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1044-CSV/input.csv @@ -0,0 +1,6 @@ +role_id,role_title_name,requisition_id,role_description + +9,"Vice President, N/A Strategic Accounts",9,"VP STRATEGIC ACCOUNTS, NA + +Beamery +***truncated***" \ No newline at end of file diff --git a/src/test/resources/test-cases/RMLTC1044-CSV/mapping.ttl b/src/test/resources/test-cases/RMLTC1044-CSV/mapping.ttl new file mode 100644 index 00000000..a4e259fc --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1044-CSV/mapping.ttl @@ -0,0 +1,39 @@ +@prefix rr: . +@prefix rdf: . +@prefix rdfs: . +@prefix fnml: . +@prefix fno: . +@prefix d2rq: . +@prefix void: . +@prefix dc: . +@prefix foaf: . +@prefix rml: . +@prefix ql: . +@prefix : . +@prefix skos: . +@prefix smth: . + +:rules_000 a void:Dataset. +:source_000 a rml:LogicalSource; + rdfs:label "smth"; + rml:source "input.csv"; + rml:iterator "$"; + rml:referenceFormulation ql:CSV. +:rules_000 void:exampleResource :map_Concept_000. +:map_Concept_000 rml:logicalSource :source_000; + a rr:TriplesMap; + rdfs:label "Concept". +:s_000 a rr:SubjectMap. +:map_Concept_000 rr:subjectMap :s_000. +:s_000 rr:template "http://example.org/{role_id}#this". +:pom_000 a rr:PredicateObjectMap. +:map_Concept_000 rr:predicateObjectMap :pom_000. +:pm_000 a rr:PredicateMap. +:pom_000 rr:predicateMap :pm_000. +:pm_000 rr:constant skos:definition. +:pom_000 rr:objectMap :om_000. +:om_000 a rr:ObjectMap; + rml:reference "role_description"; + rr:termType rr:Literal; + rml:languageMap :language_000. +:language_000 rr:constant "en". diff --git a/src/test/resources/test-cases/RMLTC1044-CSV/output.nq b/src/test/resources/test-cases/RMLTC1044-CSV/output.nq new file mode 100644 index 00000000..6f7ff069 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1044-CSV/output.nq @@ -0,0 +1 @@ + "VP STRATEGIC ACCOUNTS, NA\n\nBeamery \n***truncated***"@en . diff --git a/src/test/resources/test-cases/RMLTC1045-JSON/data.json b/src/test/resources/test-cases/RMLTC1045-JSON/data.json new file mode 100644 index 00000000..64a11ae8 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1045-JSON/data.json @@ -0,0 +1 @@ +[ { "id": "0", "foo": "bar" } ] diff --git a/src/test/resources/test-cases/RMLTC1045-JSON/mapping.ttl b/src/test/resources/test-cases/RMLTC1045-JSON/mapping.ttl new file mode 100644 index 00000000..336afb27 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1045-JSON/mapping.ttl @@ -0,0 +1,19 @@ +@prefix rml: . +@prefix rr: . +@prefix ql: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + ]; + rr:predicateObjectMap [ + rr:predicate ; + rr:object true ; # datatype is boolean + ]; + ] . diff --git a/src/test/resources/test-cases/RMLTC1045-JSON/output.nq b/src/test/resources/test-cases/RMLTC1045-JSON/output.nq new file mode 100644 index 00000000..ed7a2cd1 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1045-JSON/output.nq @@ -0,0 +1 @@ + "true"^^ . diff --git a/src/test/resources/test-cases/RMLTC1046-JSON/data.json b/src/test/resources/test-cases/RMLTC1046-JSON/data.json new file mode 100644 index 00000000..4087270d --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1046-JSON/data.json @@ -0,0 +1 @@ +[ { "id": "0", "name": "Alice" } ] diff --git a/src/test/resources/test-cases/RMLTC1046-JSON/mapping.ttl b/src/test/resources/test-cases/RMLTC1046-JSON/mapping.ttl new file mode 100644 index 00000000..6f1a8f8f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1046-JSON/mapping.ttl @@ -0,0 +1,23 @@ +@prefix rml: . +@prefix rr: . +@prefix ql: . +@prefix s: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + rr:class s:Person ; + rr:graph ; + ]; + rr:predicateObjectMap [ + rr:predicate s:givenName ; + rr:objectMap [ rml:reference "name" ] ; + rr:graph rr:defaultGraph ; + ]; + ] . diff --git a/src/test/resources/test-cases/RMLTC1046-JSON/output.nq b/src/test/resources/test-cases/RMLTC1046-JSON/output.nq new file mode 100644 index 00000000..8e306356 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1046-JSON/output.nq @@ -0,0 +1,3 @@ + "Alice". + "Alice" . + . diff --git a/src/test/resources/test-cases/RMLTC1047-JSON/data.json b/src/test/resources/test-cases/RMLTC1047-JSON/data.json new file mode 100644 index 00000000..64a11ae8 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1047-JSON/data.json @@ -0,0 +1 @@ +[ { "id": "0", "foo": "bar" } ] diff --git a/src/test/resources/test-cases/RMLTC1047-JSON/mapping.ttl b/src/test/resources/test-cases/RMLTC1047-JSON/mapping.ttl new file mode 100644 index 00000000..e6cf554f --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1047-JSON/mapping.ttl @@ -0,0 +1,19 @@ +@prefix rml: . +@prefix rr: . +@prefix ql: . + + [ + a rr:TriplesMap; + rml:logicalSource [ + rml:source "data.json" ; + rml:referenceFormulation ql:JSONPath ; + rml:iterator "$[*]"; + ]; + rr:subjectMap [ + rr:template "https://example.org/instances/{id}"; + ]; + rr:predicateObjectMap [ + rr:predicate ; + rr:object "train"@en ; + ]; + ] . diff --git a/src/test/resources/test-cases/RMLTC1047-JSON/output.nq b/src/test/resources/test-cases/RMLTC1047-JSON/output.nq new file mode 100644 index 00000000..55246cc3 --- /dev/null +++ b/src/test/resources/test-cases/RMLTC1047-JSON/output.nq @@ -0,0 +1 @@ + "train"@en . diff --git a/src/test/resources/new-test-cases/io/RMLTTC0007b/default.nq b/src/test/resources/web-of-things/serialization/out-default.trig similarity index 100% rename from src/test/resources/new-test-cases/io/RMLTTC0007b/default.nq rename to src/test/resources/web-of-things/serialization/out-default.trig diff --git a/src/test/resources/web-of-things/serialization/out-local-file.trig b/src/test/resources/web-of-things/serialization/out-local-file.trig new file mode 100644 index 00000000..93eced68 --- /dev/null +++ b/src/test/resources/web-of-things/serialization/out-local-file.trig @@ -0,0 +1,681 @@ +@prefix ns0: . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "1" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "1" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "1" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "1" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.4" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.2" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.8" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0.4" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan . + + + ns0:fillingLevel "0" ; + a ns0:Trashcan .