├── .gitignore ├── LICENSE.txt ├── README.md ├── TODO.md ├── dump-rdf ├── dump-rdf.bat ├── generate-mapping ├── generate-mapping.bat ├── pom.xml ├── src ├── main │ ├── java │ │ └── org │ │ │ └── d2rq │ │ │ ├── CompiledMapping.java │ │ │ ├── D2RQException.java │ │ │ ├── D2RQOptions.java │ │ │ ├── Log4jHelper.java │ │ │ ├── ResourceCollection.java │ │ │ ├── ResourceDescriber.java │ │ │ ├── SystemLoader.java │ │ │ ├── algebra │ │ │ ├── DownloadRelation.java │ │ │ ├── NodeRelation.java │ │ │ ├── NodeRelationOrderer.java │ │ │ ├── NodeRelationUtil.java │ │ │ └── TripleRelation.java │ │ │ ├── assembler │ │ │ └── D2RQAssembler.java │ │ │ ├── cli │ │ │ ├── CommandLineTool.java │ │ │ ├── dump_rdf.java │ │ │ ├── generate_mapping.java │ │ │ └── validate.java │ │ │ ├── csv │ │ │ ├── CSV.java │ │ │ └── TranslationTableParser.java │ │ │ ├── db │ │ │ ├── ResultRow.java │ │ │ ├── SQLConnection.java │ │ │ ├── SQLIterator.java │ │ │ ├── SQLScriptLoader.java │ │ │ ├── SelectStatementBuilder.java │ │ │ ├── expr │ │ │ │ ├── Add.java │ │ │ │ ├── BinaryOperator.java │ │ │ │ ├── BooleanToIntegerCaseExpression.java │ │ │ │ ├── ColumnExpr.java │ │ │ │ ├── ColumnListEquality.java │ │ │ │ ├── Concatenation.java │ │ │ │ ├── Conjunction.java │ │ │ │ ├── Constant.java │ │ │ │ ├── Disjunction.java │ │ │ │ ├── Divide.java │ │ │ │ ├── Equality.java │ │ │ │ ├── Expression.java │ │ │ │ ├── GreaterThan.java │ │ │ │ ├── GreaterThanOrEqual.java │ │ │ │ ├── LessThan.java │ │ │ │ ├── LessThanOrEqual.java │ │ │ │ ├── Multiply.java │ │ │ │ ├── NAryExpression.java │ │ │ │ ├── NAryOperator.java │ │ │ │ ├── Negation.java │ │ │ │ ├── NotNull.java │ │ │ │ ├── SQLExpression.java │ │ │ │ ├── Subtract.java │ │ │ │ ├── UnaryExpression.java │ │ │ │ └── UnaryMinus.java │ │ │ ├── op │ │ │ │ ├── AliasOp.java │ │ │ │ ├── AssertUniqueKeyOp.java │ │ │ │ ├── DatabaseOp.java │ │ │ │ ├── DistinctOp.java │ │ │ │ ├── EmptyOp.java │ │ │ │ ├── ExtendOp.java │ │ │ │ ├── InnerJoinOp.java │ │ │ │ ├── LimitOp.java │ │ │ │ ├── NamedOp.java │ │ │ │ ├── OpVisitor.java │ │ │ │ ├── OrderOp.java │ │ │ │ ├── ProjectOp.java │ │ │ │ ├── SQLOp.java │ │ │ │ ├── SelectOp.java │ │ │ │ ├── TableOp.java │ │ │ │ └── util │ │ │ │ │ ├── OpMutator.java │ │ │ │ │ ├── OpProjecter.java │ │ │ │ │ ├── OpRenamer.java │ │ │ │ │ ├── OpSelecter.java │ │ │ │ │ └── OpUtil.java │ │ │ ├── renamer │ │ │ │ ├── ColumnRenamer.java │ │ │ │ ├── Renamer.java │ │ │ │ └── TableRenamer.java │ │ │ ├── schema │ │ │ │ ├── ColumnDef.java │ │ │ │ ├── ColumnList.java │ │ │ │ ├── ColumnName.java │ │ │ │ ├── ForeignKey.java │ │ │ │ ├── Identifier.java │ │ │ │ ├── IdentifierList.java │ │ │ │ ├── Inspector.java │ │ │ │ ├── TableDef.java │ │ │ │ └── TableName.java │ │ │ ├── types │ │ │ │ ├── DataType.java │ │ │ │ ├── SQLApproximateNumeric.java │ │ │ │ ├── SQLBinary.java │ │ │ │ ├── SQLBit.java │ │ │ │ ├── SQLBoolean.java │ │ │ │ ├── SQLCharacterString.java │ │ │ │ ├── SQLCharacterStringVarying.java │ │ │ │ ├── SQLDate.java │ │ │ │ ├── SQLExactNumeric.java │ │ │ │ ├── SQLInterval.java │ │ │ │ ├── SQLTime.java │ │ │ │ ├── SQLTimestamp.java │ │ │ │ └── UnsupportedDataType.java │ │ │ └── vendor │ │ │ │ ├── HSQLDB.java │ │ │ │ ├── InterbaseOrFirebird.java │ │ │ │ ├── MySQL.java │ │ │ │ ├── Oracle.java │ │ │ │ ├── PostgreSQL.java │ │ │ │ ├── SQL92.java │ │ │ │ ├── SQLServer.java │ │ │ │ └── Vendor.java │ │ │ ├── download │ │ │ └── DownloadContentQuery.java │ │ │ ├── engine │ │ │ └── QueryIterTableSQL.java │ │ │ ├── examples │ │ │ ├── AssemblerExample.java │ │ │ ├── JenaGraphExample.java │ │ │ ├── JenaModelExample.java │ │ │ ├── SPARQLExample.java │ │ │ └── SystemLoaderExample.java │ │ │ ├── find │ │ │ ├── FindQuery.java │ │ │ ├── TripleQueryIter.java │ │ │ └── URIMakerRule.java │ │ │ ├── jena │ │ │ ├── CachingGraphD2RQ.java │ │ │ ├── CompatibilityFileManager.java │ │ │ ├── D2RQQueryHandler.java │ │ │ ├── GraphD2RQ.java │ │ │ └── ModelD2RQ.java │ │ │ ├── lang │ │ │ ├── AliasDeclaration.java │ │ │ ├── ClassMap.java │ │ │ ├── CompiledD2RQMapping.java │ │ │ ├── Configuration.java │ │ │ ├── D2RQCompiler.java │ │ │ ├── D2RQMappingVisitor.java │ │ │ ├── D2RQReader.java │ │ │ ├── D2RQValidator.java │ │ │ ├── D2RQWriter.java │ │ │ ├── Database.java │ │ │ ├── DownloadMap.java │ │ │ ├── Join.java │ │ │ ├── JoinSetParser.java │ │ │ ├── MapObject.java │ │ │ ├── Mapping.java │ │ │ ├── Microsyntax.java │ │ │ ├── NodeMakerFactory.java │ │ │ ├── OpBuilder.java │ │ │ ├── PropertyBridge.java │ │ │ ├── ResourceMap.java │ │ │ └── TranslationTable.java │ │ │ ├── mapgen │ │ │ ├── D2RQMappingStyle.java │ │ │ ├── D2RQTarget.java │ │ │ ├── DirectMappingStyle.java │ │ │ ├── Filter.java │ │ │ ├── FilterIncludeExclude.java │ │ │ ├── FilterMatchAny.java │ │ │ ├── FilterMatchColumn.java │ │ │ ├── FilterMatchSchema.java │ │ │ ├── FilterMatchTable.java │ │ │ ├── FilterParser.java │ │ │ ├── IRIEncoder.java │ │ │ ├── MappingGenerator.java │ │ │ ├── MappingStyle.java │ │ │ ├── OntologyTarget.java │ │ │ ├── R2RMLTarget.java │ │ │ ├── Target.java │ │ │ └── UniqueLocalNameGenerator.java │ │ │ ├── nodes │ │ │ ├── BindingMaker.java │ │ │ ├── FixedNodeMaker.java │ │ │ ├── NodeMaker.java │ │ │ ├── NodeMakerVisitor.java │ │ │ ├── NodeSetFilter.java │ │ │ └── TypedNodeMaker.java │ │ │ ├── pp │ │ │ └── PrettyPrinter.java │ │ │ ├── r2rml │ │ │ ├── ColumnNameR2RML.java │ │ │ ├── ComponentCollection.java │ │ │ ├── ConflictChecker.java │ │ │ ├── ConstantIRI.java │ │ │ ├── ConstantShortcut.java │ │ │ ├── Join.java │ │ │ ├── LanguageTag.java │ │ │ ├── LogicalTable.java │ │ │ ├── Mapping.java │ │ │ ├── MappingComponent.java │ │ │ ├── MappingTerm.java │ │ │ ├── MappingValidator.java │ │ │ ├── MappingVisitor.java │ │ │ ├── PredicateObjectMap.java │ │ │ ├── R2RMLCompiler.java │ │ │ ├── R2RMLReader.java │ │ │ ├── R2RMLWriter.java │ │ │ ├── RDFComparator.java │ │ │ ├── ReferencingObjectMap.java │ │ │ ├── SQLQuery.java │ │ │ ├── StringTemplate.java │ │ │ ├── TableOrViewName.java │ │ │ ├── TermMap.java │ │ │ └── TriplesMap.java │ │ │ ├── tmp │ │ │ ├── CompatibleRelationGroup.java │ │ │ ├── JoinOptimizer.java │ │ │ └── QueryEngineD2RQ.java │ │ │ ├── validation │ │ │ ├── Message.java │ │ │ ├── PlainTextMessageRenderer.java │ │ │ ├── Report.java │ │ │ └── ValidatingRDFParser.java │ │ │ ├── values │ │ │ ├── BaseIRIValueMaker.java │ │ │ ├── BlankNodeIDValueMaker.java │ │ │ ├── ColumnValueMaker.java │ │ │ ├── DecoratingValueMaker.java │ │ │ ├── TemplateValueMaker.java │ │ │ ├── Translator.java │ │ │ └── ValueMaker.java │ │ │ ├── vocab │ │ │ ├── D2RConfig.java │ │ │ ├── D2RQ.java │ │ │ ├── ISWC.java │ │ │ ├── JDBC.java │ │ │ ├── META.java │ │ │ ├── RR.java │ │ │ ├── RRExtra.java │ │ │ ├── SD.java │ │ │ ├── SKOS.java │ │ │ ├── VoID.java │ │ │ └── VocabularySummarizer.java │ │ │ └── writer │ │ │ ├── MappingWriter.java │ │ │ └── PrettyTurtleWriter.java │ └── resources │ │ └── log4j.properties └── test │ ├── java │ └── org │ │ └── d2rq │ │ ├── D2RQExceptionTest.java │ │ ├── D2RQTestUtil.java │ │ ├── HSQLDatabase.java │ │ ├── HSQLDatabaseTest.java │ │ ├── ModelAssert.java │ │ ├── ProcessorTestBase.java │ │ ├── csv │ │ └── TranslationTableParserTest.java │ │ ├── db │ │ ├── DummyDB.java │ │ ├── ResultRowTest.java │ │ ├── SelectStatementBuilderTest.java │ │ ├── expr │ │ │ ├── ColumnListEqualityTest.java │ │ │ ├── ConcatenationTest.java │ │ │ ├── ConjunctionTest.java │ │ │ ├── ExpressionTest.java │ │ │ └── SQLExpressionTest.java │ │ ├── op │ │ │ ├── AliasOpTest.java │ │ │ ├── InnerJoinOpTest.java │ │ │ ├── ProjectOpTest.java │ │ │ ├── SelectOpTest.java │ │ │ └── util │ │ │ │ └── OpUtilTest.java │ │ ├── renamer │ │ │ ├── ColumnRenamerTest.java │ │ │ └── TableRenamerTest.java │ │ ├── schema │ │ │ ├── ColumnDefTest.java │ │ │ ├── ColumnNameTest.java │ │ │ ├── InspectorTest.java │ │ │ ├── KeyTest.java │ │ │ ├── TableDefTest.java │ │ │ └── TableNameTest.java │ │ ├── types │ │ │ ├── DataTypeTest.java │ │ │ ├── DatatypeTestBase.java │ │ │ ├── HSQLDBDatatypeTest.java │ │ │ └── MySQLDatatypeTest.java │ │ └── vendor │ │ │ ├── MySQLTest.java │ │ │ └── VendorTest.java │ │ ├── download │ │ └── DownloadContentQueryTest.java │ │ ├── find │ │ └── URIMakerRuleTest.java │ │ ├── functional_tests │ │ ├── FindTest.java │ │ └── ModelAPITest.java │ │ ├── jena │ │ └── JenaAPITest.java │ │ ├── lang │ │ ├── AliasDeclarationTest.java │ │ ├── ConstantValueClassMapTest.java │ │ ├── D2RQCompilerTest.java │ │ ├── D2RQReaderTest.java │ │ ├── D2RQValidatorTest.java │ │ ├── JoinSetParserTest.java │ │ ├── MappingTest.java │ │ ├── MicrosyntaxTest.java │ │ ├── PatternTest.java │ │ ├── ProcessorTest.java │ │ └── TranslationTableTest.java │ │ ├── mapgen │ │ ├── FilterParserTest.java │ │ ├── IRIEncoderTest.java │ │ └── MappingGeneratorTest.java │ │ ├── nodes │ │ └── NodeMakerTest.java │ │ ├── pp │ │ └── PrettyPrinterTest.java │ │ ├── r2rml │ │ ├── ConstantIRITest.java │ │ ├── LanguageTagTest.java │ │ ├── ProcessorTest.java │ │ ├── StringTemplateTest.java │ │ ├── TableOrViewNameTest.java │ │ └── ValidatorTest.java │ │ ├── rdb2rdf │ │ ├── DirectMappingTest.java │ │ └── R2RMLTest.java │ │ ├── values │ │ ├── DummyValueMaker.java │ │ └── ValueMakerTest.java │ │ └── vocab │ │ └── VocabularySummarizerTest.java │ ├── rdb2rdf-tests │ ├── D000-1table1column0rows │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mapped.nq │ │ └── r2rml.ttl │ ├── D001-1table1column1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D002-1table2columns1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedd.nq │ │ ├── mappedi.nq │ │ ├── mappedj.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ ├── r2rmlc.ttl │ │ ├── r2rmld.ttl │ │ ├── r2rmle.ttl │ │ ├── r2rmlf.ttl │ │ ├── r2rmlg.ttl │ │ ├── r2rmlh.ttl │ │ ├── r2rmli.ttl │ │ └── r2rmlj.ttl │ ├── D003-1table3columns1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ └── r2rmlc.ttl │ ├── D004-1table2columns1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D005-1table3columns3rows2duplicates │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D006-1table1primarykey1column1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ └── r2rmla.ttl │ ├── D007-1table1primarykey2columns1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── mappedd.nq │ │ ├── mappede.nq │ │ ├── mappedf.nq │ │ ├── mappedg.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ ├── r2rmlc.ttl │ │ ├── r2rmld.ttl │ │ ├── r2rmle.ttl │ │ ├── r2rmlf.ttl │ │ ├── r2rmlg.ttl │ │ └── r2rmlh.ttl │ ├── D008-1table1compositeprimarykey3columns1row │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ └── r2rmlc.ttl │ ├── D009-2tables1primarykey1foreignkey │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── mappedd.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ ├── r2rmlc.ttl │ │ └── r2rmld.ttl │ ├── D010-1table1primarykey3colums3rows │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ └── r2rmlc.ttl │ ├── D011-M2MRelations │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D012-2tables2duplicates0nulls │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappede.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ ├── r2rmlc.ttl │ │ ├── r2rmld.ttl │ │ └── r2rmle.ttl │ ├── D013-1table1primarykey3columns2rows1nullvalue │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ └── r2rmla.ttl │ ├── D014-3tables1primarykey1foreignkey │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── mappedd.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ ├── r2rmlc.ttl │ │ └── r2rmld.ttl │ ├── D015-1table3columns1composityeprimarykey3rows2languages │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D016-1table1primarykey10columns3rowsSQLdatatypes │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── mappedb.nq │ │ ├── mappedc.nq │ │ ├── mappedd.nq │ │ ├── mappede.nq │ │ ├── r2rmla.ttl │ │ ├── r2rmlb.ttl │ │ ├── r2rmlc.ttl │ │ ├── r2rmld.ttl │ │ └── r2rmle.ttl │ ├── D017-I18NnoSpecialChars │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ └── manifest.ttl │ ├── D018-1table1primarykey2columns3rows │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ └── r2rmla.ttl │ ├── D019-1table1primarykey3columns3rows │ │ ├── create.sql │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D020-1table1column5rows │ │ ├── create.sql │ │ ├── manifest.ttl │ │ ├── mappeda.nq │ │ ├── r2rmla.ttl │ │ └── r2rmlb.ttl │ ├── D021-2tables2primarykeys1foreignkeyReferencesAllNulls │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ └── manifest.ttl │ ├── D022-2tables1primarykey1foreignkeyReferencesNoPrimaryKey │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ └── manifest.ttl │ ├── D023-2tables2primarykeys2foreignkeysReferencesToNon-primarykeys │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ └── manifest.ttl │ ├── D024-2tables2primarykeys1foreignkeyToARowWithSomeNulls │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ └── manifest.ttl │ ├── D025-3tables3primarykeys3foreignkeys │ │ ├── create.sql │ │ ├── directGraph.ttl │ │ └── manifest.ttl │ └── README.md │ └── resources │ ├── d2rq-lang │ ├── mappings │ │ ├── additional-definition-properties.ttl │ │ ├── column-typed.ttl │ │ ├── contains-duplicates-with-join.ttl │ │ ├── expression.ttl │ │ ├── only-constant-uris.ttl │ │ ├── uri-pattern-empty-table.ttl │ │ └── uri-pattern.ttl │ ├── processor-test-manifest.ttl │ └── schemas │ │ ├── empty-table1.sql │ │ ├── multicol-pk.sql │ │ └── table1.sql │ ├── d2rq-reader │ ├── alias.ttl │ ├── download-map.ttl │ ├── literal-instead-of-resource.ttl │ ├── resource-instead-of-literal.ttl │ ├── simple.ttl │ ├── translation-table.ttl │ ├── translationtable.csv │ └── type-classmap-and-propertybridge.ttl │ ├── download │ └── download-map.ttl │ ├── example │ ├── iswc-mysql.sql │ └── mapping-iswc.ttl │ ├── hsqldb │ ├── hsqldb_datatypes.sql │ └── simple.ttl │ ├── jena │ └── prefixes.ttl │ ├── mapgen │ └── mapgen-test-manifest.ttl │ ├── mysql │ └── mysql_datatypes.sql │ ├── r2rml │ ├── invalid │ │ ├── child-column-not-in-table.ttl │ │ ├── child-must-be-string.ttl │ │ ├── class-must-be-iri.ttl │ │ ├── column-name-must-be-string.ttl │ │ ├── column-not-in-table.ttl │ │ ├── column-not-in-view.ttl │ │ ├── conflicting-properties-literal.ttl │ │ ├── conflicting-properties-subject.ttl │ │ ├── conflicting-properties-table.ttl │ │ ├── conflicting-properties-term-map1.ttl │ │ ├── conflicting-properties-term-map2.ttl │ │ ├── conflicting-properties-term-map3.ttl │ │ ├── conflicting-types.ttl │ │ ├── constant-must-be-iri-or-literal1.ttl │ │ ├── constant-must-be-iri-or-literal2.ttl │ │ ├── constant-must-be-iri1.ttl │ │ ├── constant-must-be-iri2.ttl │ │ ├── datatype-must-be-iri.ttl │ │ ├── datatype-only-with-term-type-literal.ttl │ │ ├── duplicate-child.ttl │ │ ├── duplicate-column-name.ttl │ │ ├── duplicate-constant.ttl │ │ ├── duplicate-logical-table.ttl │ │ ├── duplicate-parent-triples-map.ttl │ │ ├── duplicate-parent.ttl │ │ ├── duplicate-subject-map.ttl │ │ ├── duplicate-subject.ttl │ │ ├── duplicate-term-type.ttl │ │ ├── graph-map-must-not-be-literal1.ttl │ │ ├── graph-map-must-not-be-literal2.ttl │ │ ├── graph-map-wrong-type1.ttl │ │ ├── graph-map-wrong-type2.ttl │ │ ├── invalid-child-column-name.ttl │ │ ├── invalid-column-name-empty.ttl │ │ ├── invalid-column-name-qualified.ttl │ │ ├── invalid-column-name-quoted-empty.ttl │ │ ├── invalid-column-name-quoting.ttl │ │ ├── invalid-column-name.ttl │ │ ├── invalid-iri-template.ttl │ │ ├── invalid-language-tag.ttl │ │ ├── invalid-parent-column-name.ttl │ │ ├── invalid-sql-query.ttl │ │ ├── invalid-string-template-in-inverse-expression.ttl │ │ ├── invalid-string-template-qualified-column-name.ttl │ │ ├── invalid-string-template-undoubled-backslash.ttl │ │ ├── invalid-string-template-unexpected-character.ttl │ │ ├── invalid-string-template-unmatched-curly.ttl │ │ ├── invalid-term-type.ttl │ │ ├── inverse-column-not-in-table.ttl │ │ ├── inverse-expression-must-be-string.ttl │ │ ├── join-condition-must-not-be-literal.ttl │ │ ├── join-condition-wrong-type.ttl │ │ ├── language-must-be-string.ttl │ │ ├── language-only-with-term-type-literal.ttl │ │ ├── logical-table-must-not-be-literal.ttl │ │ ├── logical-table-wrong-type.ttl │ │ ├── malformed-table-name-empty.ttl │ │ ├── malformed-table-name-quoted-empty.ttl │ │ ├── malformed-table-name-quoting.ttl │ │ ├── malformed-table-name-too-many-periods.ttl │ │ ├── malformed-table-name.ttl │ │ ├── missing-child.ttl │ │ ├── missing-join.ttl │ │ ├── missing-object.ttl │ │ ├── missing-parent.ttl │ │ ├── missing-predicate.ttl │ │ ├── missing-subject.ttl │ │ ├── no-r2rml-triples.ttl │ │ ├── no-such-table.ttl │ │ ├── no-triples-map.ttl │ │ ├── no-triples.ttl │ │ ├── object-map-must-not-be-literal.ttl │ │ ├── object-map-wrong-type.ttl │ │ ├── parent-column-not-in-table.ttl │ │ ├── parent-must-be-string.ttl │ │ ├── parent-triples-map-must-not-be-literal.ttl │ │ ├── parent-triples-map-wrong-type.ttl │ │ ├── predicate-map-must-not-be-literal.ttl │ │ ├── predicate-map-wrong-type.ttl │ │ ├── predicate-object-map-must-not-be-literal.ttl │ │ ├── predicate-object-map-wrong-type.ttl │ │ ├── sql-query-must-be-string.ttl │ │ ├── sql-version-must-be-iri1.ttl │ │ ├── sql-version-must-be-iri2.ttl │ │ ├── subject-map-must-not-be-literal.ttl │ │ ├── subject-map-wrong-type.ttl │ │ ├── syntax-error.ttl │ │ ├── table-name-must-be-string1.ttl │ │ ├── table-name-must-be-string2.ttl │ │ ├── table-name-must-be-string3.ttl │ │ ├── table-name-must-be-string4.ttl │ │ ├── template-column-not-in-table.ttl │ │ ├── template-must-be-string.ttl │ │ ├── term-type-must-be-iri.ttl │ │ ├── wrong-term-type1.ttl │ │ ├── wrong-term-type2.ttl │ │ └── wrong-term-type3.ttl │ ├── mappings │ │ ├── class.ttl │ │ ├── constant-object.ttl │ │ ├── constant-predicate.ttl │ │ ├── constant-subject.ttl │ │ ├── iri-column-absolute.ttl │ │ ├── iri-column-relative.ttl │ │ ├── iri-template-absolute.ttl │ │ ├── iri-template-relative.ttl │ │ ├── no-class-for-empty-table.ttl │ │ ├── no-p-o-maps.ttl │ │ ├── no-triple-for-empty-table.ttl │ │ ├── null-no-triple.ttl │ │ ├── o-column-literal-language.ttl │ │ ├── o-column-literal-typed-custom.ttl │ │ ├── o-column-literal-typed-natural.ttl │ │ ├── o-column-literal-typed-string.ttl │ │ ├── o-column-literal.ttl │ │ ├── o-column-term-type-iri.ttl │ │ ├── o-column-term-type-literal.ttl │ │ ├── o-template-iri.ttl │ │ ├── o-template-term-type-literal.ttl │ │ ├── only-shortcut-iris.ttl │ │ ├── ref-object-map-join-different-table.ttl │ │ ├── ref-object-map-join-same-table.ttl │ │ ├── ref-object-map-join-same-view.ttl │ │ ├── ref-object-map-no-joins1.ttl │ │ ├── ref-object-map-no-joins2.ttl │ │ ├── ref-object-map-two-joins.ttl │ │ ├── reuse-term-map.ttl │ │ ├── shortcut-literal-language.ttl │ │ ├── shortcut-literal-typed.ttl │ │ ├── shortcut-literal.ttl │ │ ├── two-classes.ttl │ │ ├── two-o-maps.ttl │ │ ├── two-o-shortcuts.ttl │ │ ├── two-p-maps.ttl │ │ ├── two-p-o-maps.ttl │ │ ├── two-p-shortcuts.ttl │ │ └── two-p-two-o-shortcuts.ttl │ ├── processor-test-manifest.ttl │ ├── schemas │ │ ├── empty-table1.sql │ │ ├── same-table-ref.sql │ │ ├── table1-iri.sql │ │ ├── table1-null.sql │ │ ├── table1.sql │ │ ├── two-tables-multicol.sql │ │ ├── two-tables.sql │ │ └── validator-test.sql │ ├── valid │ │ ├── constant-literal-as-object1.ttl │ │ ├── constant-literal-as-object2.ttl │ │ ├── correct-term-map-type.ttl │ │ ├── valid-column-name-quoted.ttl │ │ ├── well-formed1.ttl │ │ ├── well-formed2.ttl │ │ └── well-formed3.ttl │ ├── validator-test-manifest.ttl │ └── warning │ │ ├── empty-separator-in-string-template.ttl │ │ ├── graph-on-graph-map.ttl │ │ ├── graph-on-object-map.ttl │ │ ├── possible-unsafe-separator-in-iri-template.ttl │ │ ├── spurious-logical-table-type.ttl │ │ ├── spurious-term-map-type.ttl │ │ ├── spurious-triple1.ttl │ │ ├── spurious-triple2.ttl │ │ ├── spurious-triple3.ttl │ │ ├── spurious-triple4.ttl │ │ ├── spurious-triple5.ttl │ │ ├── spurious-triple6.ttl │ │ ├── spurious-triple7.ttl │ │ ├── spurious-triple8.ttl │ │ ├── spurious-type.ttl │ │ ├── string-template-without-column-name.ttl │ │ ├── subject-instead-subject-map.ttl │ │ ├── unknown-class-in-r2rml-namespace.ttl │ │ ├── unknown-property-in-r2rml-namespace.ttl │ │ ├── unknown-resource-in-r2rml-namespace.ttl │ │ ├── unreferenced-base-table.ttl │ │ ├── unreferenced-column-term-map.ttl │ │ ├── unreferenced-constant-term-map.ttl │ │ ├── unreferenced-join.ttl │ │ ├── unreferenced-predicate-object-map.ttl │ │ ├── unreferenced-r2rml-view.ttl │ │ ├── unreferenced-ref-object-map.ttl │ │ └── unreferenced-template-term-map.ttl │ └── vocab-summarizer │ ├── defined-properties.ttl │ ├── defined-types.ttl │ ├── no-type.ttl │ ├── one-undefined-property.ttl │ ├── one-undefined-type.ttl │ ├── other-namespace-properties.ttl │ ├── other-namespace-types.ttl │ ├── rr-example.ttl │ ├── two-undefined-properties.ttl │ └── two-undefined-types.ttl ├── validate └── validate.bat /.gitignore: -------------------------------------------------------------------------------- 1 | # Maven stuff 2 | target 3 | 4 | # Eclipse stuff 5 | .project 6 | .classpath 7 | 8 | # OS X stuff 9 | .DS_Store 10 | -------------------------------------------------------------------------------- /dump-rdf: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | D2RQ_ROOT="$( dirname "${BASH_SOURCE[0]}" )" 3 | CP="$D2RQ_ROOT/build" 4 | SEP=':' 5 | if [ $(uname -s | grep -ic 'cygwin\|mingw') -gt 0 ]; then SEP=';'; fi 6 | for jar in "$D2RQ_ROOT"/lib/*.jar "$D2RQ_ROOT"/lib/*/*.jar 7 | do 8 | if [ ! -e "$jar" ]; then continue; fi 9 | CP="$CP$SEP$jar" 10 | done 11 | LOGCONFIG=${LOGCONFIG:-file:$D2RQ_ROOT/etc/log4j.properties} 12 | exec java -cp "$CP" -Xmx1G "-Dlog4j.configuration=${LOGCONFIG}" d2rq.dump_rdf "$@" 13 | -------------------------------------------------------------------------------- /dump-rdf.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set D2R_ROOT=%~p0 3 | set CP="%D2R_ROOT%build" 4 | call :findjars "%D2R_ROOT%lib" 5 | set LOGCONFIG=file:%D2R_ROOT%etc/log4j.properties 6 | java -cp %CP% -Xmx1G "-Dlog4j.configuration=%LOGCONFIG%" d2rq.dump_rdf %* 7 | exit /B 8 | 9 | :findjars 10 | for %%j in (%1\*.jar) do call :addjar "%%j" 11 | for /D %%d in (%1\*) do call :findjars "%%d" 12 | exit /B 13 | 14 | :addjar 15 | set CP=%CP%;%1 16 | -------------------------------------------------------------------------------- /generate-mapping: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | D2RQ_ROOT="$( dirname "${BASH_SOURCE[0]}" )" 3 | CP="$D2RQ_ROOT/build" 4 | SEP=':' 5 | if [ $(uname -s | grep -ic 'cygwin\|mingw') -gt 0 ]; then SEP=';'; fi 6 | for jar in "$D2RQ_ROOT"/lib/*.jar "$D2RQ_ROOT"/lib/*/*.jar 7 | do 8 | if [ ! -e "$jar" ]; then continue; fi 9 | CP="$CP$SEP$jar" 10 | done 11 | LOGCONFIG=${LOGCONFIG:-file:$D2RQ_ROOT/etc/log4j.properties} 12 | exec java -cp "$CP" -Xmx1G "-Dlog4j.configuration=${LOGCONFIG}" d2rq.generate_mapping "$@" 13 | -------------------------------------------------------------------------------- /generate-mapping.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set D2RQ_ROOT=%~p0 3 | set CP="%D2RQ_ROOT%build" 4 | call :findjars "%D2RQ_ROOT%lib" 5 | set LOGCONFIG=file:%D2RQ_ROOT%etc/log4j.properties 6 | java -cp %CP% -Xmx1G "-Dlog4j.configuration=%LOGCONFIG%" d2rq.generate_mapping %* 7 | exit /B 8 | 9 | :findjars 10 | for %%j in (%1\*.jar) do call :addjar "%%j" 11 | for /D %%d in (%1\*) do call :findjars "%%d" 12 | exit /B 13 | 14 | :addjar 15 | set CP=%CP%;%1 16 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/Add.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class Add extends BinaryOperator { 8 | 9 | public Add(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, "+", true, GenericType.NUMERIC); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new Add(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/BooleanToIntegerCaseExpression.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | import org.d2rq.db.vendor.Vendor; 5 | 6 | 7 | /** 8 | * A CASE statement that turns a BOOLEAN (TRUE, FALSE) into an 9 | * INT (1, 0) 10 | * 11 | * @author Richard Cyganiak (richard@cyganiak.de) 12 | */ 13 | public class BooleanToIntegerCaseExpression extends UnaryExpression { 14 | 15 | public BooleanToIntegerCaseExpression(Expression operand) { 16 | super("Boolean2Int", operand, GenericType.NUMERIC); 17 | } 18 | 19 | @Override 20 | public Expression clone(Expression newOperand) { 21 | return new BooleanToIntegerCaseExpression(newOperand); 22 | } 23 | 24 | @Override 25 | public String toSQL(String operandSQL, Vendor vendor) { 26 | return "(CASE WHEN (" + operandSQL + ") THEN 1 ELSE 0 END)"; 27 | } 28 | } -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/Divide.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class Divide extends BinaryOperator { 8 | 9 | public Divide(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, "/", false, GenericType.NUMERIC); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new Divide(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/GreaterThan.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class GreaterThan extends BinaryOperator { 8 | 9 | public GreaterThan(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, ">", false, GenericType.BOOLEAN); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new GreaterThan(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/GreaterThanOrEqual.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class GreaterThanOrEqual extends BinaryOperator { 8 | 9 | public GreaterThanOrEqual(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, ">=", false, GenericType.BOOLEAN); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new GreaterThanOrEqual(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/LessThan.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class LessThan extends BinaryOperator { 8 | 9 | public LessThan(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, "<", false, GenericType.BOOLEAN); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new LessThan(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/LessThanOrEqual.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class LessThanOrEqual extends BinaryOperator { 8 | 9 | public LessThanOrEqual(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, "<=", false, GenericType.BOOLEAN); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new LessThanOrEqual(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/Multiply.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class Multiply extends BinaryOperator { 8 | 9 | public Multiply(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, "*", true, GenericType.NUMERIC); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new Multiply(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/NAryOperator.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | import org.d2rq.db.vendor.Vendor; 5 | 6 | public abstract class NAryOperator extends NAryExpression { 7 | 8 | private String operator; 9 | 10 | public NAryOperator(String operator, String name, Expression[] operands, 11 | boolean isCommutative, GenericType dataType) { 12 | super(name, operands, isCommutative, dataType); 13 | this.operator = operator; 14 | } 15 | 16 | @Override 17 | protected String toSQL(String[] sqlFragments, Vendor vendor) { 18 | StringBuffer result = new StringBuffer(); 19 | result.append('('); 20 | for (int i = 0; i < sqlFragments.length; i++) { 21 | result.append(sqlFragments[i]); 22 | if (i < sqlFragments.length - 1) { 23 | result.append(' '); 24 | result.append(operator); 25 | result.append(' '); 26 | } 27 | } 28 | result.append(')'); 29 | return result.toString(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/Subtract.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | 5 | 6 | 7 | public class Subtract extends BinaryOperator { 8 | 9 | public Subtract(Expression expr1, Expression expr2) { 10 | super(expr1, expr2, "-", false, GenericType.NUMERIC); 11 | } 12 | 13 | @Override 14 | protected Expression clone(Expression newOperand1, Expression newOperand2) { 15 | return new Subtract(newOperand1, newOperand2); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/expr/UnaryMinus.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.expr; 2 | 3 | import org.d2rq.db.types.DataType.GenericType; 4 | import org.d2rq.db.vendor.Vendor; 5 | 6 | 7 | public class UnaryMinus extends UnaryExpression { 8 | 9 | public UnaryMinus(Expression operand) { 10 | super("-", operand, GenericType.NUMERIC); 11 | } 12 | 13 | @Override 14 | public Expression clone(Expression newOperand) { 15 | return new UnaryMinus(newOperand); 16 | } 17 | 18 | @Override 19 | public String toSQL(String operandSQL, Vendor vendor) { 20 | return "-(" + operandSQL + ")"; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/types/SQLBit.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.types; 2 | 3 | import org.d2rq.db.vendor.Vendor; 4 | 5 | 6 | public class SQLBit extends DataType { 7 | public SQLBit(String name) { 8 | super(name); 9 | } 10 | @Override 11 | public boolean isIRISafe() { 12 | return true; 13 | } 14 | @Override 15 | public String toSQLLiteral(String value, Vendor vendor) { 16 | // In SQL-92, BIT is a bit string with a special literal form 17 | if (!value.matches("^[01]*$")) { 18 | log.warn("Unsupported BIT format: '" + value + "'; treating as NULL"); 19 | return "NULL"; 20 | } 21 | return "B" + vendor.quoteStringLiteral(value); 22 | } 23 | @Override 24 | public String valueRegex() { 25 | return "^[01]*$"; 26 | } 27 | } -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/types/SQLCharacterStringVarying.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.types; 2 | 3 | 4 | 5 | public class SQLCharacterStringVarying extends DataType { 6 | private final boolean supportsDistinct; 7 | 8 | public SQLCharacterStringVarying(String name, boolean supportsDistinct) { 9 | super(name); 10 | this.supportsDistinct = supportsDistinct; 11 | } 12 | 13 | @Override 14 | public boolean supportsDistinct() { 15 | return supportsDistinct; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/types/SQLInterval.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.types; 2 | 3 | import org.d2rq.db.vendor.Vendor; 4 | 5 | 6 | public class SQLInterval extends DataType { 7 | public SQLInterval(String name) { 8 | super(name); 9 | } 10 | @Override 11 | public boolean isIRISafe() { 12 | return true; 13 | } 14 | @Override 15 | public String toSQLLiteral(String value, Vendor vendor) { 16 | // TODO: Generate appropriate INTERVAL literal 17 | return "NULL"; 18 | } 19 | } -------------------------------------------------------------------------------- /src/main/java/org/d2rq/db/vendor/InterbaseOrFirebird.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.vendor; 2 | 3 | 4 | public class InterbaseOrFirebird extends SQL92 { 5 | 6 | public InterbaseOrFirebird() { 7 | super(false); 8 | } 9 | 10 | public String getTrueTable() { 11 | return "RDB$DATABASE"; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/examples/AssemblerExample.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.examples; 2 | 3 | import com.hp.hpl.jena.assembler.Assembler; 4 | import com.hp.hpl.jena.rdf.model.Model; 5 | import com.hp.hpl.jena.rdf.model.Resource; 6 | import com.hp.hpl.jena.util.FileManager; 7 | 8 | public class AssemblerExample { 9 | 10 | public static void main(String[] args) { 11 | // Load assembler specification from file 12 | Model assemblerSpec = FileManager.get().loadModel("doc/example/assembler.ttl"); 13 | 14 | // Get the model resource 15 | Resource modelSpec = assemblerSpec.createResource(assemblerSpec.expandPrefix(":myModel")); 16 | 17 | // Assemble a model 18 | Model m = Assembler.general.openModel(modelSpec); 19 | 20 | // Write it to System.out 21 | m.write(System.out); 22 | 23 | m.close(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/mapgen/FilterMatchSchema.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.mapgen; 2 | 3 | 4 | public class FilterMatchSchema extends Filter { 5 | private final IdentifierMatcher schema; 6 | 7 | public FilterMatchSchema(IdentifierMatcher schema) { 8 | this.schema = schema; 9 | } 10 | 11 | public boolean matchesSchema(String schema) { 12 | return this.schema.matches(schema); 13 | } 14 | 15 | public boolean matchesTable(String schema, String table) { 16 | return matchesSchema(schema); 17 | } 18 | 19 | public boolean matchesColumn(String schema, String table, String column) { 20 | return matchesSchema(schema); 21 | } 22 | 23 | public String getSingleSchema() { return schema.getSingleString(); } 24 | 25 | public String toString() { 26 | StringBuffer result = new StringBuffer("schema("); 27 | result.append(schema); 28 | result.append(")"); 29 | return result.toString(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/nodes/NodeMakerVisitor.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.nodes; 2 | 3 | 4 | public interface NodeMakerVisitor { 5 | 6 | void visitEmpty(); 7 | 8 | void visit(FixedNodeMaker nodeMaker); 9 | 10 | void visit(TypedNodeMaker nodeMaker); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/r2rml/ConflictChecker.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.r2rml; 2 | 3 | import java.util.HashMap; 4 | import java.util.Map; 5 | 6 | import org.d2rq.validation.Report; 7 | import org.d2rq.validation.Message.Problem; 8 | 9 | import com.hp.hpl.jena.rdf.model.Property; 10 | import com.hp.hpl.jena.rdf.model.Resource; 11 | 12 | 13 | public class ConflictChecker { 14 | private final Report report; 15 | private final Map properties = new HashMap(); 16 | 17 | public ConflictChecker(Report report) { 18 | this.report = report; 19 | } 20 | 21 | public void add(Resource resource, Property property) { 22 | if (properties.get(resource) == null) { 23 | properties.put(resource, property); 24 | } 25 | if (!properties.get(resource).equals(property)) { 26 | report.report(Problem.CONFLICTING_PROPERTIES, 27 | resource, new Property[]{properties.get(resource), property}); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/r2rml/Join.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.r2rml; 2 | 3 | import org.d2rq.vocab.RR; 4 | 5 | 6 | 7 | public class Join extends MappingComponent { 8 | private ColumnNameR2RML child = null; 9 | private ColumnNameR2RML parent = null; 10 | 11 | public ComponentType getType() { 12 | return ComponentType.JOIN; 13 | } 14 | 15 | public void setChild(ColumnNameR2RML child) { 16 | this.child = child; 17 | } 18 | 19 | public ColumnNameR2RML getChild() { 20 | return child; 21 | } 22 | 23 | public void setParent(ColumnNameR2RML parent) { 24 | this.parent = parent; 25 | } 26 | 27 | public ColumnNameR2RML getParent() { 28 | return parent; 29 | } 30 | 31 | @Override 32 | public void accept(MappingVisitor visitor) { 33 | visitor.visitComponent(this); 34 | visitor.visitTermProperty(RR.child, child); 35 | visitor.visitTermProperty(RR.parent, parent); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/r2rml/LanguageTag.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.r2rml; 2 | 3 | 4 | public class LanguageTag extends MappingTerm { 5 | 6 | /** 7 | * Always succeeds. Check {@link #isValid()} to see if syntax is ok. 8 | * @return null if arg is null 9 | */ 10 | public static LanguageTag create(String tag) { 11 | return tag == null ? null : new LanguageTag(tag); 12 | } 13 | 14 | private final String tag; 15 | 16 | private LanguageTag(String tag) { 17 | this.tag = tag.toLowerCase(); 18 | } 19 | 20 | @Override 21 | public String toString() { 22 | return tag; 23 | } 24 | 25 | @Override 26 | public void accept(MappingVisitor visitor) { 27 | visitor.visitTerm(this); 28 | } 29 | 30 | public boolean equals(Object other) { 31 | if (!(other instanceof LanguageTag)) return false; 32 | return tag.equals(((LanguageTag) other).tag); 33 | } 34 | 35 | public int hashCode() { 36 | return tag.hashCode() ^ 29673; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/r2rml/MappingTerm.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.r2rml; 2 | 3 | import org.d2rq.db.SQLConnection; 4 | 5 | public abstract class MappingTerm { 6 | 7 | public abstract void accept(MappingVisitor visitor); 8 | 9 | /** 10 | * Determines validity. For components that require a SQL connection, 11 | * this is a best-effort attempt that may not catch certain kinds of errors. 12 | */ 13 | public boolean isValid() { 14 | return isValid(null); 15 | } 16 | 17 | /** 18 | * Determines validity. 19 | */ 20 | public boolean isValid(SQLConnection connection) { 21 | MappingValidator validator = new MappingValidator(null, connection); 22 | accept(validator); 23 | return !validator.getReport().hasError(); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/tmp/JoinOptimizer.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.tmp; 2 | 3 | import org.d2rq.algebra.NodeRelation; 4 | 5 | public class JoinOptimizer { 6 | public static NodeRelation optimize(NodeRelation r) { return r; } 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/tmp/QueryEngineD2RQ.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.tmp; 2 | 3 | import com.hp.hpl.jena.sparql.engine.QueryEngineFactory; 4 | import com.hp.hpl.jena.sparql.engine.main.QueryEngineMain; 5 | 6 | public class QueryEngineD2RQ { 7 | public static void register() {} 8 | public static QueryEngineFactory getFactory() { 9 | return QueryEngineMain.getFactory(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/validation/ValidatingRDFParser.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.validation; 2 | 3 | import org.d2rq.jena.CompatibilityFileManager; 4 | import org.d2rq.validation.Message.Problem; 5 | import org.openjena.riot.RiotException; 6 | 7 | import com.hp.hpl.jena.rdf.model.Model; 8 | import com.hp.hpl.jena.shared.JenaException; 9 | 10 | 11 | public class ValidatingRDFParser { 12 | private final String file; 13 | private final Report report; 14 | 15 | public ValidatingRDFParser(String file, Report report) { 16 | this.file = file; 17 | this.report = report; 18 | } 19 | 20 | public Model parse() { 21 | try { 22 | return CompatibilityFileManager.loadModel(file); 23 | } catch (JenaException ex) { 24 | Throwable cause = ex.getCause(); 25 | if (cause instanceof RiotException) { 26 | report.report(Problem.SYNTAX_ERROR, cause.getMessage(), cause); 27 | } else { 28 | report.report(Problem.IO_ERROR, ex.getMessage(), ex); 29 | } 30 | return null; 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/vocab/META.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.vocab; 2 | /** 3 | * Specifies the template variable prefix URI for the metadata extension 4 | * 5 | * @author Hannes Muehleisen (hannes@muehleisen.org) 6 | */ 7 | 8 | public class META { 9 | 10 | public static final String NS = "http://www4.wiwiss.fu-berlin.de/bizer/d2r-server/metadata#"; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/org/d2rq/writer/MappingWriter.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.writer; 2 | 3 | import java.io.OutputStream; 4 | import java.io.Writer; 5 | 6 | public interface MappingWriter { 7 | 8 | void write(OutputStream outStream); 9 | 10 | void write(Writer outWriter); 11 | 12 | } -------------------------------------------------------------------------------- /src/main/resources/log4j.properties: -------------------------------------------------------------------------------- 1 | # Logging to standard error so we don't interfere with app output on System.out 2 | # Suppress DEBUG and INFO by default; we have --debug and --verbose options to enable them 3 | log4j.rootLogger=WARN, stderr 4 | log4j.appender.stderr=org.apache.log4j.ConsoleAppender 5 | log4j.appender.stderr.target=System.err 6 | log4j.appender.stderr.layout=org.apache.log4j.PatternLayout 7 | log4j.appender.stderr.layout.ConversionPattern=%d{HH:mm:ss} %-5p %-20c{1} :: %m%n 8 | 9 | # RIOT logs parse errors as ERROR, but we don't want to see them 10 | log4j.logger.org.openjena.riot=FATAL -------------------------------------------------------------------------------- /src/test/java/org/d2rq/D2RQExceptionTest.java: -------------------------------------------------------------------------------- 1 | package org.d2rq; 2 | 3 | import static org.junit.Assert.*; 4 | 5 | import org.junit.Test; 6 | 7 | public class D2RQExceptionTest { 8 | 9 | @Test 10 | public void testGetErrorCodeName() { 11 | assertEquals("QUERY_TIMEOUT", 12 | D2RQException.getErrorCodeName(D2RQException.QUERY_TIMEOUT)); 13 | } 14 | 15 | @Test 16 | public void testNonExistingErrorCodeName() { 17 | assertNull(D2RQException.getErrorCodeName(-343343)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/test/java/org/d2rq/db/op/SelectOpTest.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.op; 2 | 3 | import static org.junit.Assert.assertEquals; 4 | 5 | import org.d2rq.db.DummyDB; 6 | import org.d2rq.db.expr.Expression; 7 | import org.d2rq.db.schema.ColumnName; 8 | import org.junit.Test; 9 | 10 | public class SelectOpTest { 11 | 12 | @Test 13 | public void testSelectFalseIsEmptyRelation() { 14 | DatabaseOp table = DummyDB.createTable("foo", "bar"); 15 | assertEquals(EmptyOp.create(table), SelectOp.select(table, Expression.FALSE)); 16 | } 17 | 18 | @Test 19 | public void testSelectFalseOnNoColumnsIsEmptyTrue() { 20 | DatabaseOp table = DummyDB.createTable("foo", "bar"); 21 | table = ProjectOp.project(table, new ColumnName[]{}); 22 | assertEquals(EmptyOp.NO_COLUMNS, SelectOp.select(table, Expression.FALSE)); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/test/java/org/d2rq/db/op/util/OpUtilTest.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.db.op.util; 2 | 3 | import static org.junit.Assert.assertFalse; 4 | import static org.junit.Assert.assertTrue; 5 | 6 | import org.d2rq.db.DummyDB; 7 | import org.d2rq.db.expr.SQLExpression; 8 | import org.d2rq.db.op.DatabaseOp; 9 | import org.d2rq.db.op.SelectOp; 10 | import org.d2rq.db.types.DataType.GenericType; 11 | import org.junit.Test; 12 | 13 | public class OpUtilTest { 14 | 15 | @Test 16 | public void testTrueIsTrivial() { 17 | assertTrue(OpUtil.isTrivial(DatabaseOp.TRUE)); 18 | } 19 | 20 | @Test 21 | public void testConditionWithNoSelectColumnsIsNotTrivial() { 22 | assertFalse(OpUtil.isTrivial(SelectOp.select(DatabaseOp.TRUE, 23 | SQLExpression.create("foo.bar = 1", GenericType.BOOLEAN)))); 24 | } 25 | 26 | @Test 27 | public void testQueryWithSelectColumnsIsNotTrivial() { 28 | assertFalse(OpUtil.isTrivial(DummyDB.createTable("foo", "bar"))); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/test/java/org/d2rq/lang/ProcessorTest.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.lang; 2 | 3 | import java.util.Collection; 4 | 5 | import org.d2rq.D2RQTestUtil; 6 | import org.d2rq.ProcessorTestBase; 7 | import org.junit.runner.RunWith; 8 | import org.junit.runners.Parameterized; 9 | import org.junit.runners.Parameterized.Parameters; 10 | 11 | import com.hp.hpl.jena.rdf.model.Model; 12 | 13 | @RunWith(Parameterized.class) 14 | public class ProcessorTest extends ProcessorTestBase { 15 | 16 | @Parameters(name = "{index}: {0}") 17 | public static Collection getTestList() { 18 | return getTestListFromManifest( 19 | D2RQTestUtil.getResourceURL("d2rq-lang/processor-test-manifest.ttl")); 20 | } 21 | 22 | public ProcessorTest(String id, String mappingFile, String schemaFile, 23 | Model expectedTriples) { 24 | super(id, mappingFile, schemaFile, expectedTriples); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/test/java/org/d2rq/r2rml/ProcessorTest.java: -------------------------------------------------------------------------------- 1 | package org.d2rq.r2rml; 2 | 3 | import java.util.Collection; 4 | 5 | import org.d2rq.D2RQTestUtil; 6 | import org.d2rq.ProcessorTestBase; 7 | import org.junit.runner.RunWith; 8 | import org.junit.runners.Parameterized; 9 | import org.junit.runners.Parameterized.Parameters; 10 | 11 | import com.hp.hpl.jena.rdf.model.Model; 12 | 13 | /** 14 | * Runs R2RML tests, driven by a manifest file. 15 | * 16 | * TODO: See manifest file for more R2RML test cases that should be written 17 | */ 18 | @RunWith(Parameterized.class) 19 | public class ProcessorTest extends ProcessorTestBase { 20 | 21 | @Parameters(name = "{index}: {0}") 22 | public static Collection getTestList() { 23 | return getTestListFromManifest( 24 | D2RQTestUtil.getResourceURL("r2rml/processor-test-manifest.ttl")); 25 | } 26 | 27 | public ProcessorTest(String id, String mappingFile, String schemaFile, 28 | Model expectedTriples) { 29 | super(id, mappingFile, schemaFile, expectedTriples); 30 | } 31 | } -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D000-1table1column0rows/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "Name" varchar(50) 3 | ); 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D000-1table1column0rows/directGraph.ttl: -------------------------------------------------------------------------------- 1 | # empty graph 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D000-1table1column0rows/mapped.nq: -------------------------------------------------------------------------------- 1 | # empty database 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D000-1table1column0rows/r2rml.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\""; ] ; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"Name\"}" ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate foaf:name ; 17 | rr:objectMap [ rr:column "\"Name\"" ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D001-1table1column1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "Name" varchar(50) 3 | ); 4 | INSERT INTO "Student" ("Name") VALUES ('Venus'); 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D001-1table1column1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | _:a "Venus". 4 | _:a . 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D001-1table1column1row/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D001-1table1column1row/mappedb.nq: -------------------------------------------------------------------------------- 1 | _:Venus "Venus" . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D001-1table1column1row/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"Name\"}" ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate foaf:name ; 17 | rr:objectMap [ rr:column "\"Name\"" ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D001-1table1column1row/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "{\"Name\"}"; rr:termType rr:BlankNode ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate foaf:name; 17 | rr:objectMap [ rr:column "\"Name\"" ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "ID" INTEGER, 3 | "Name" VARCHAR(15) 4 | ); 5 | INSERT INTO "Student" ("ID", "Name") VALUES(10,'Venus'); 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | _:a . 4 | _:a "10"^^ . 5 | _:a "Venus" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | "10"^^ . 3 | . 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/mappedb.nq: -------------------------------------------------------------------------------- 1 | _:students10 "Venus" . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/mappedd.nq: -------------------------------------------------------------------------------- 1 | _:Student10 "Venus" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/mappedi.nq: -------------------------------------------------------------------------------- 1 | "Venus" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/mappedj.nq: -------------------------------------------------------------------------------- 1 | "Venus" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"ID\"}/{\"Name\"}"; 13 | rr:class foaf:Person ]; 14 | 15 | rr:predicateObjectMap 16 | [ 17 | rr:predicate ex:id ; 18 | rr:objectMap [ rr:column "\"ID\""; ] 19 | ]; 20 | 21 | rr:predicateObjectMap 22 | [ 23 | rr:predicate foaf:name ; 24 | rr:objectMap [ rr:column "\"Name\"" ] 25 | ] 26 | . 27 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\""; ]; 11 | 12 | rr:subjectMap [ rr:template "students{\"ID\"}"; rr:termType rr:BlankNode; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate foaf:name ; 17 | rr:objectMap [ rr:column "\"Name\"" ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"ID\"}/{\"Name\"}"; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate ex:id ; 17 | rr:objectMap [ rr:column "\"IDs\""; ] 18 | ] 19 | 20 | . 21 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmld.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | Select ('Student' || "ID" ) AS StudentId 13 | , "ID" 14 | , "Name" 15 | from "Student" 16 | """ 17 | ]; 18 | 19 | rr:subjectMap [ rr:column "StudentId"; rr:termType rr:BlankNode; ]; 20 | 21 | rr:predicateObjectMap 22 | [ 23 | rr:predicate foaf:name ; 24 | rr:objectMap [ rr:column "\"Name\"" ] 25 | ] 26 | . 27 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmle.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Students\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"ID\"}/{\"Name\"}"; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate ex:id ; 17 | rr:objectMap [ rr:column "\"ID\""; ] 18 | ]; 19 | 20 | . 21 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmlf.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{ID}/{Name}"; 13 | rr:class foaf:Person ]; 14 | 15 | rr:predicateObjectMap 16 | [ 17 | rr:predicate ex:id ; 18 | rr:objectMap [ rr:column "\"ID\""; ] 19 | ]; 20 | 21 | rr:predicateObjectMap 22 | [ 23 | rr:predicate foaf:name ; 24 | rr:objectMap [ rr:column "\"Name\"" ] 25 | ] 26 | . 27 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmlg.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | THIS IS NOT A VALID SQL QUERY 13 | """ 14 | ]; 15 | 16 | rr:subjectMap [ rr:column "StudentId"; ]; 17 | 18 | rr:predicateObjectMap 19 | [ 20 | rr:predicate ex:id ; 21 | rr:objectMap [ rr:column "\"ID\""; ] 22 | ]; 23 | . 24 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmlh.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | Select ('Student' || ID ) AS StudentId 13 | , "ID" 14 | , "Name" 15 | , 1 AS "ID" 16 | from "Student" 17 | """ 18 | ]; 19 | 20 | rr:subjectMap [ rr:column "StudentId"; ]; 21 | 22 | rr:predicateObjectMap 23 | [ 24 | rr:predicate ex:id ; 25 | rr:objectMap [ rr:column "\"ID\""; ] 26 | ]; 27 | 28 | . 29 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmli.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | SELECT "ID", 13 | "Name" 14 | FROM "Student" 15 | """; 16 | 17 | rr:sqlVersion rr:SQL2008 18 | 19 | ]; 20 | 21 | rr:subjectMap [ rr:template "http://example.com/{\"ID\"}/{\"Name\"}"; ]; 22 | 23 | rr:predicateObjectMap 24 | [ 25 | rr:predicate foaf:name ; 26 | rr:objectMap [ rr:column "\"Name\"" ] 27 | ] 28 | . 29 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D002-1table2columns1row/r2rmlj.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | SELECT "Student"."ID", "Student"."Name" 13 | FROM "Student" 14 | """ 15 | ]; 16 | 17 | rr:subjectMap [ rr:template "http://example.com/{\"ID\"}/{\"Name\"}"; ]; 18 | 19 | rr:predicateObjectMap 20 | [ 21 | rr:predicate foaf:name ; 22 | rr:objectMap [ rr:column "\"Name\"" ] 23 | ] 24 | . 25 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "ID" INTEGER, 3 | "FirstName" VARCHAR(50), 4 | "LastName" VARCHAR(50) 5 | ); 6 | INSERT INTO "Student" ("ID", "FirstName", "LastName") VALUES (10,'Venus', 'Williams'); 7 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | _:a . 4 | _:a "10"^^ . 5 | _:a "Venus" . 6 | _:a "Williams" . 7 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/mappedb.nq: -------------------------------------------------------------------------------- 1 | "Venus Williams" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/mappedc.nq: -------------------------------------------------------------------------------- 1 | "Venus Williams" . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | SELECT "ID", 13 | "FirstName", 14 | "LastName" 15 | FROM "Student" 16 | """; 17 | rr:sqlVersion rr:SQL1979 18 | ]; 19 | 20 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"FirstName\"}-{\"LastName\"}"; 21 | rr:class foaf:Person ]; 22 | 23 | rr:predicateObjectMap 24 | [ 25 | rr:predicate ex:id ; 26 | rr:objectMap [ rr:column "\"ID\""; ] 27 | ]; 28 | . 29 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ 11 | rr:sqlQuery """ 12 | SELECT "ID", 13 | ("FirstName" || ' ' || "LastName") AS Name 14 | FROM "Student" 15 | """ 16 | ]; 17 | 18 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}"; ]; 19 | 20 | rr:predicateObjectMap 21 | [ 22 | rr:predicate foaf:name ; 23 | rr:objectMap [ rr:column "Name" ] 24 | ] 25 | . 26 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D003-1table3columns1row/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/Student{\"ID\"}"; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate foaf:name ; 17 | rr:objectMap [ rr:template "{\"FirstName\"} {\"LastName\"}"; rr:termType rr:Literal; ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D004-1table2columns1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student_Sport"( 2 | "Student" varchar(50), 3 | "Sport" varchar(50) 4 | ); 5 | INSERT INTO "Student_Sport" ("Student","Sport") VALUES ('Venus', 'Tennis'); 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D004-1table2columns1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | _:a . 4 | _:a "Venus" . 5 | _:a "Tennis" . 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D004-1table2columns1row/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | . 3 | "Tennis" . 4 | . 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D004-1table2columns1row/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:sqlQuery """ 11 | SELECT ('Student' || "Student") AS StudentId, 12 | "Student" 13 | FROM "Student_Sport" 14 | """; 15 | ] ; 16 | 17 | rr:subjectMap [ rr:column "StudentId"; rr:termType rr:Literal; 18 | rr:class ex:Student ]; 19 | 20 | rr:predicateObjectMap 21 | [ 22 | rr:predicate foaf:name ; 23 | rr:objectMap [ rr:column "\"Student\"" ] 24 | ] 25 | . 26 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D005-1table3columns3rows2duplicates/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "IOUs" ( 2 | "fname" VARCHAR(20), 3 | "lname" VARCHAR(20), 4 | "amount" FLOAT); 5 | INSERT INTO "IOUs" ("fname", "lname", "amount") VALUES ('Bob', 'Smith', 30); 6 | INSERT INTO "IOUs" ("fname", "lname", "amount") VALUES ('Sue', 'Jones', 20); 7 | INSERT INTO "IOUs" ("fname", "lname", "amount") VALUES ('Bob', 'Smith', 30); 8 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D005-1table3columns3rows2duplicates/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | _:a . 4 | _:a "Bob" . 5 | _:a "Smith" . 6 | _:a "3.0E1"^^ . 7 | 8 | _:b . 9 | _:b "Sue" . 10 | _:b "Jones" . 11 | _:b "2.0E1"^^ . 12 | 13 | _:c . 14 | _:c "Bob" . 15 | _:c "Smith" . 16 | _:c "3.0E1"^^ . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D005-1table3columns3rows2duplicates/mappeda.nq: -------------------------------------------------------------------------------- 1 | . 2 | "3.0E1"^^ . 3 | . 4 | "2.0E1"^^ . 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D005-1table3columns3rows2duplicates/mappedb.nq: -------------------------------------------------------------------------------- 1 | _:BobSmith . 2 | _:BobSmith "Bob" . 3 | _:BobSmith "Smith" . 4 | _:BobSmith "3.0E1"^^ . 5 | _:SueJones . 6 | _:SueJones "Sue" . 7 | _:SueJones "Jones" . 8 | _:SueJones "2.0E1"^^ . 9 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D005-1table3columns3rows2duplicates/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"IOUs\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"fname\"};{\"lname\"}"; 13 | rr:class foaf:Person ]; 14 | 15 | rr:predicateObjectMap 16 | [ 17 | rr:predicate ex:owes ; 18 | rr:objectMap [ rr:column "\"amount\""; ] 19 | ]; 20 | 21 | . 22 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D005-1table3columns3rows2duplicates/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"IOUs\"" ]; 11 | 12 | rr:subjectMap [ rr:template "{\"fname\"}_{\"lname\"}"; 13 | rr:class ; 14 | rr:termType rr:BlankNode; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate ; 19 | rr:objectMap [ rr:column "\"fname\""; ] 20 | ]; 21 | 22 | rr:predicateObjectMap 23 | [ 24 | rr:predicate ; 25 | rr:objectMap [ rr:column "\"lname\""; ] 26 | ]; 27 | 28 | rr:predicateObjectMap 29 | [ 30 | rr:predicate ; 31 | rr:objectMap [ rr:column "\"amount\""; ] 32 | ]; 33 | . 34 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D006-1table1primarykey1column1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "Name" varchar(50) PRIMARY KEY 3 | ); 4 | INSERT INTO "Student" ("Name") VALUES ('Venus'); 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D006-1table1primarykey1column1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | "Venus" . 4 | . 5 | 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D006-1table1primarykey1column1row/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Bad Student" . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D006-1table1primarykey1column1row/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:constant ex:BadStudent; 13 | rr:graphMap [ rr:constant ]; ]; 14 | 15 | rr:predicateObjectMap 16 | [ 17 | rr:predicateMap [ rr:constant ex:description ]; 18 | rr:objectMap [ rr:constant "Bad Student"; ] 19 | ] 20 | . 21 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "ID" integer, 3 | "Name" varchar(50), 4 | PRIMARY KEY ("ID") 5 | ); 6 | INSERT INTO "Student" ("ID", "Name") VALUES(10,'Venus'); 7 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | "10"^^ . 4 | "Venus" . 5 | . 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappeda.nq: -------------------------------------------------------------------------------- 1 | . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappedb.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | . 3 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappedc.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | "10"^^ . 3 | . 4 | . 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappedd.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | "10"^^ . 3 | . 4 | . 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappede.nq: -------------------------------------------------------------------------------- 1 | "10"^^ . 2 | "Venus" . 3 | . 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappedf.nq: -------------------------------------------------------------------------------- 1 | . 2 | "Venus" . 3 | "10"^^ . 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/mappedg.nq: -------------------------------------------------------------------------------- 1 | "Venus" . 2 | . 3 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | a rr:TriplesMap; 10 | 11 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 12 | 13 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; ]; 14 | 15 | rr:predicateObjectMap 16 | [ 17 | rr:predicate rdf:type ; 18 | rr:object foaf:Person; 19 | ]; 20 | . 21 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\""; ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; 15 | rr:graph ex:PersonGraph; 16 | ]; 17 | 18 | rr:predicateObjectMap 19 | [ 20 | rr:predicate rdf:type; 21 | rr:object foaf:Person; 22 | ]; 23 | 24 | rr:predicateObjectMap 25 | [ 26 | rr:predicate foaf:name; 27 | rr:objectMap [ rr:column "\"Name\"" ] 28 | ] 29 | 30 | . 31 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 13 | 14 | rr:subjectMap [ 15 | rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; 16 | rr:class foaf:Person,ex:Student; 17 | ]; 18 | 19 | rr:predicateObjectMap 20 | [ 21 | rr:predicate ex:id ; 22 | rr:objectMap [ rr:column "\"ID\""; ] 23 | ]; 24 | 25 | rr:predicateObjectMap 26 | [ 27 | rr:predicate foaf:name ; 28 | rr:objectMap [ rr:column "\"Name\"" ] 29 | ] 30 | 31 | . 32 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmle.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; 15 | rr:graph ex:PersonGraph ; 16 | rr:class foaf:Person 17 | ]; 18 | 19 | rr:predicateObjectMap 20 | [ 21 | rr:predicate ex:id ; 22 | rr:objectMap [ rr:column "\"ID\""; ] 23 | ]; 24 | 25 | rr:predicateObjectMap 26 | [ 27 | rr:predicate foaf:name ; 28 | rr:objectMap [ rr:column "\"Name\"" ] 29 | ] 30 | 31 | . 32 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmlf.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; 15 | rr:graph ex:PersonGraph ; 16 | ]; 17 | 18 | rr:predicateObjectMap 19 | [ 20 | rr:predicate rdf:type ; 21 | rr:object foaf:Person ; 22 | ]; 23 | 24 | rr:predicateObjectMap 25 | [ 26 | rr:predicate ex:id ; 27 | rr:objectMap [ rr:column "\"ID\""; ] 28 | ]; 29 | 30 | rr:predicateObjectMap 31 | [ 32 | rr:predicate foaf:name ; 33 | rr:objectMap [ rr:column "\"Name\"" ] 34 | ] 35 | . 36 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmlg.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\""; ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; 15 | rr:graph rr:defaultGraph; 16 | ]; 17 | 18 | rr:predicateObjectMap 19 | [ 20 | rr:predicate rdf:type; 21 | rr:object foaf:Person; 22 | ]; 23 | 24 | rr:predicateObjectMap 25 | [ 26 | rr:predicate foaf:name; 27 | rr:objectMap [ rr:column "\"Name\"" ] 28 | ] 29 | 30 | . 31 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D007-1table1primarykey2columns1row/r2rmlh.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\""; ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; 15 | rr:graphMap [ rr:column "\"Name\""; rr:termType rr:Literal; ] 16 | ]; 17 | 18 | rr:predicateObjectMap 19 | [ 20 | rr:predicate rdf:type; 21 | rr:object foaf:Person; 22 | ]; 23 | 24 | rr:predicateObjectMap 25 | [ 26 | rr:predicate foaf:name; 27 | rr:objectMap [ rr:column "\"Name\"" ] 28 | ] 29 | 30 | . 31 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D008-1table1compositeprimarykey3columns1row/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "ID" integer, 3 | "Name" varchar(50), 4 | "Sport" varchar (50), 5 | PRIMARY KEY ("ID","Name") 6 | ); 7 | INSERT INTO "Student" ("ID", "Name","Sport") VALUES(10,'Venus Williams','Tennis'); 8 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D008-1table1compositeprimarykey3columns1row/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | "10"^^ . 4 | "Venus Williams" . 5 | "Tennis" . 6 | . 7 | 8 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D008-1table1compositeprimarykey3columns1row/mappeda.nq: -------------------------------------------------------------------------------- 1 | . 2 | "Venus Williams" . 3 | "10"^^ . 4 | "Tennis" . 5 | 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D008-1table1compositeprimarykey3columns1row/mappedb.nq: -------------------------------------------------------------------------------- 1 | . 2 | "Venus Williams" . 3 | "10"^^ . 4 | . 5 | . 6 | 7 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D008-1table1compositeprimarykey3columns1row/mappedc.nq: -------------------------------------------------------------------------------- 1 | "Venus Williams" . 2 | "Venus Williams" . 3 | 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D008-1table1compositeprimarykey3columns1row/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Student/{\"ID\"}/{\"Name\"}"; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate foaf:name ; 19 | rr:predicate ex:name ; 20 | rr:objectMap [ rr:column "\"Name\"" ] 21 | ]; 22 | . 23 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Sport" ( 2 | "ID" integer, 3 | "Name" varchar (50), 4 | PRIMARY KEY ("ID") 5 | ); 6 | 7 | CREATE TABLE "Student" ( 8 | "ID" integer, 9 | "Name" varchar(50), 10 | "Sport" integer, 11 | PRIMARY KEY ("ID"), 12 | FOREIGN KEY("Sport") REFERENCES "Sport"("ID") 13 | ); 14 | 15 | INSERT INTO "Sport" ("ID", "Name") VALUES (100,'Tennis'); 16 | INSERT INTO "Student" ("ID", "Name", "Sport") VALUES (10,'Venus Williams', 100); 17 | INSERT INTO "Student" ("ID", "Name", "Sport") VALUES (20,'Demi Moore', NULL); 18 | 19 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | . 4 | "10"^^ . 5 | "Venus Williams" . 6 | "100"^^ . 7 | . 8 | . 9 | "20"^^ . 10 | "Demi Moore" . 11 | "100"^^ . 12 | . 13 | "Tennis" . 14 | 15 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Venus Williams" . 2 | "Demi Moore" . 3 | "Tennis" . 4 | . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/mappedc.nq: -------------------------------------------------------------------------------- 1 | "Venus Williams" . 2 | "Demi Moore" . 3 | 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/mappedd.nq: -------------------------------------------------------------------------------- 1 | "Venus Williams" . 2 | "1"^^ . 3 | "Demi Moore" . 4 | "0"^^ . 5 | 6 | 7 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @prefix rdfs: . 6 | @base . 7 | 8 | 9 | a rr:TriplesMap; 10 | 11 | rr:logicalTable [ rr:sqlQuery """ 12 | SELECT "Name", COUNT("Sport") 13 | FROM "Student" 14 | GROUP BY "Name" 15 | """ ]; 16 | 17 | rr:subjectMap [ rr:template "http://example.com/resource/student_{\"Name\"}"; ]; 18 | 19 | rr:predicateObjectMap 20 | [ 21 | rr:predicate foaf:name ; 22 | rr:objectMap [ rr:column "\"Name\""; ]; 23 | ]; 24 | . 25 | 26 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D009-2tables1primarykey1foreignkey/r2rmld.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @prefix rdfs: . 6 | @base . 7 | 8 | 9 | a rr:TriplesMap; 10 | 11 | rr:logicalTable [ rr:sqlQuery """ 12 | SELECT "Name", COUNT("Sport") as SPORTCOUNT 13 | FROM "Student" 14 | GROUP BY "Name" 15 | """ ]; 16 | 17 | rr:subjectMap [ rr:template "http://example.com/resource/student_{\"Name\"}"; ]; 18 | 19 | rr:predicateObjectMap 20 | [ 21 | rr:predicate foaf:name ; 22 | rr:objectMap [ rr:column "\"Name\""; ]; 23 | ]; 24 | 25 | rr:predicateObjectMap 26 | [ 27 | rr:predicate ex:numSport ; 28 | rr:objectMap [ rr:column "SPORTCOUNT"; ]; 29 | ]; 30 | . 31 | 32 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Country Info" ( 2 | "Country Code" INTEGER PRIMARY KEY, 3 | "Name" VARCHAR(100), 4 | "ISO 3166" VARCHAR(10) 5 | ); 6 | INSERT INTO "Country Info" ("Country Code", "Name", "ISO 3166") VALUES (1, 'Bolivia, Plurinational State of', 'BO'); 7 | INSERT INTO "Country Info" ("Country Code", "Name", "ISO 3166") VALUES (2, 'Ireland', 'IE'); 8 | INSERT INTO "Country Info" ("Country Code", "Name", "ISO 3166") VALUES (3, 'Saint Martin (French part)', 'MF'); 9 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Bolivia, Plurinational State of" . 2 | "Ireland" . 3 | "Saint Martin (French part)" . 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/mappedb.nq: -------------------------------------------------------------------------------- 1 | "Bolivia, Plurinational State of" . 2 | "Ireland" . 3 | "Saint Martin (French part)" . 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/mappedc.nq: -------------------------------------------------------------------------------- 1 | "{{{ BO }}}" . 2 | "{{{ IE }}}" . 3 | "{{{ MF }}}" . 4 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Country Info\""; ] ; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"Country Code\"}" ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate ex:name ; 17 | rr:objectMap [ rr:column "\"Name\"" ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Country Info\""; ] ; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"Country Code\"}/{\"Name\"}" ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate ex:name ; 17 | rr:objectMap [ rr:column "\"Name\"" ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D010-1table1primarykey3colums3rows/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Country Info\""; ] ; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"Country Code\"}/{\"Name\"}" ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate ex:code ; 17 | rr:objectMap [ rr:template "\\{\\{\\{ {\"ISO 3166\"} \\}\\}\\}"; rr:termType rr:Literal; ] 18 | ] 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D012-2tables2duplicates0nulls/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "IOUs" ( 2 | "fname" VARCHAR(20), 3 | "lname" VARCHAR(20), 4 | "amount" FLOAT); 5 | INSERT INTO "IOUs" ("fname", "lname", "amount") VALUES ('Bob', 'Smith', 30); 6 | INSERT INTO "IOUs" ("fname", "lname", "amount") VALUES ('Sue', 'Jones', 20); 7 | INSERT INTO "IOUs" ("fname", "lname", "amount") VALUES ('Bob', 'Smith', 30); 8 | CREATE TABLE "Lives" ( 9 | "fname" VARCHAR(20), 10 | "lname" VARCHAR(20), 11 | "city" VARCHAR(20)); 12 | INSERT INTO "Lives" ("fname", "lname", "city") VALUES ('Bob', 'Smith', 'London'); 13 | INSERT INTO "Lives" ("fname", "lname", "city") VALUES ('Sue', 'Jones', 'Madrid'); 14 | INSERT INTO "Lives" ("fname", "lname", "city") VALUES ('Bob', 'Smith', 'London'); -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D012-2tables2duplicates0nulls/mappeda.nq: -------------------------------------------------------------------------------- 1 | _:BobSmith30 "3.0E1"^^ . 2 | _:BobSmith30 "Bob Smith" . 3 | _:SueJones20 "2.0E1"^^ . 4 | _:SueJones20 "Sue Jones" . 5 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D012-2tables2duplicates0nulls/mappedb.nq: -------------------------------------------------------------------------------- 1 | _:BobSmith "London" . 2 | _:BobSmith "Bob Smith" . 3 | _:SueJones "Madrid" . 4 | _:SueJones "Sue Jones" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D012-2tables2duplicates0nulls/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"IOUs\"" ]; 11 | 12 | rr:subjectMap [ rr:template "{\"fname\"}_{\"lname\"}_{\"amount\"}"; rr:termType rr:BlankNode; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate foaf:name ; 17 | rr:objectMap [ 18 | rr:template "{\"fname\"} {\"lname\"}"; 19 | rr:termType rr:Literal ; 20 | ] 21 | ]; 22 | 23 | rr:predicateObjectMap 24 | [ 25 | rr:predicate ex:amount ; 26 | rr:objectMap [ 27 | rr:column "\"amount\""; 28 | ] 29 | ]; 30 | . 31 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D012-2tables2duplicates0nulls/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"IOUs\"" ]; 11 | 12 | rr:predicateObjectMap 13 | [ 14 | rr:predicate foaf:name ; 15 | rr:objectMap [ 16 | rr:template "{\"fname\"} {\"lname\"}"; 17 | rr:termType rr:Literal ; 18 | ] 19 | ]; 20 | 21 | rr:predicateObjectMap 22 | [ 23 | rr:predicate ex:amount ; 24 | rr:objectMap [ rr:column "\"amount\""; ] 25 | ]; 26 | . 27 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D012-2tables2duplicates0nulls/r2rmld.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"IOUs\"" ]; 11 | 12 | rr:subjectMap [ 13 | rr:template "{\"fname\"}_{\"lname\"}_{\"amount\"}"; 14 | ]; 15 | 16 | rr:subjectMap [ 17 | rr:template "{\"amount\"}_{\"fname\"}_{\"lname\"}"; 18 | ]; 19 | 20 | rr:predicateObjectMap 21 | [ 22 | rr:predicate ex:amount ; 23 | rr:objectMap [ rr:column "\"amount\""; ] 24 | ]; 25 | . 26 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D013-1table1primarykey3columns2rows1nullvalue/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Person" ( 2 | "ID" integer, 3 | "Name" varchar(50), 4 | "DateOfBirth" varchar(50), 5 | PRIMARY KEY ("ID") 6 | ); 7 | INSERT INTO "Person" ("ID", "Name", "DateOfBirth") VALUES (1,'Alice', NULL); 8 | INSERT INTO "Person" ("ID", "Name", "DateOfBirth") VALUES (2,'Bob', 'September, 2010'); -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D013-1table1primarykey3columns2rows1nullvalue/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | . 4 | "1"^^ . 5 | "Alice" . 6 | . 7 | "2"^^ . 8 | "Bob" . 9 | "September, 2010" . 10 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D013-1table1primarykey3columns2rows1nullvalue/mappeda.nq: -------------------------------------------------------------------------------- 1 | "September, 2010" . 2 | 3 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D013-1table1primarykey3columns2rows1nullvalue/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Person\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Person/{\"ID\"}/{\"Name\"}/{\"DateOfBirth\"}"; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate ex:BirthDay ; 19 | rr:objectMap [ rr:column "\"DateOfBirth\"" ] 20 | ] 21 | . 22 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D014-3tables1primarykey1foreignkey/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "DEPT" ( 2 | "deptno" INTEGER UNIQUE, 3 | "dname" VARCHAR(30), 4 | "loc" VARCHAR(100)); 5 | INSERT INTO "DEPT" ("deptno", "dname", "loc") VALUES (10, 'APPSERVER', 'NEW YORK'); 6 | 7 | CREATE TABLE "EMP" ( 8 | "empno" INTEGER PRIMARY KEY, 9 | "ename" VARCHAR(100), 10 | "job" VARCHAR(30), 11 | "deptno" INTEGER REFERENCES "DEPT" ("deptno"), 12 | "etype" VARCHAR(30)); 13 | INSERT INTO "EMP" ("empno", "ename", "job", "deptno", "etype" ) VALUES (7369, 'SMITH', 'CLERK', 10, 'PART_TIME'); 14 | 15 | CREATE TABLE "LIKES" ( 16 | "id" INTEGER, 17 | "likeType" VARCHAR(30), 18 | "likedObj" VARCHAR(100)); 19 | INSERT INTO "LIKES" ("id", "likeType", "likedObj") VALUES (7369, 'Playing', 'Soccer'); 20 | INSERT INTO "LIKES" ("id", "likeType", "likedObj") VALUES (7369, 'Watching', 'Basketball'); -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D014-3tables1primarykey1foreignkey/mappeda.nq: -------------------------------------------------------------------------------- 1 | _:Department10 "NEW YORK" . 2 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D014-3tables1primarykey1foreignkey/mappedd.nq: -------------------------------------------------------------------------------- 1 | . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D014-3tables1primarykey1foreignkey/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix dept: . 3 | @prefix xsd: . 4 | @base . 5 | 6 | 7 | a rr:TriplesMap; 8 | rr:logicalTable [ rr:sqlQuery """ 9 | SELECT ('Department' || "deptno") AS "deptId" 10 | , "deptno" 11 | , "dname" 12 | , "loc" 13 | FROM "DEPT" 14 | """ ]; 15 | 16 | rr:subjectMap [ rr:column "\"deptId\""; rr:termType rr:BlankNode; 17 | rr:inverseExpression "{\"deptno\"} = substr({\"deptId\"},length('Department')+1)"]; 18 | 19 | rr:predicateObjectMap 20 | [ 21 | rr:predicate dept:location ; 22 | rr:objectMap [ rr:column "\"loc\"" ] 23 | ]; 24 | 25 | . 26 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D014-3tables1primarykey1foreignkey/r2rmld.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix rdf: . 3 | @prefix ex: . 4 | @prefix emp: . 5 | @prefix dept: . 6 | @prefix xsd: . 7 | @base . 8 | 9 | 10 | a rr:TriplesMap; 11 | rr:logicalTable [ rr:sqlQuery """ 12 | 13 | SELECT "EMP".*, (CASE "job" 14 | WHEN 'CLERK' THEN 'general-office' 15 | WHEN 'NIGHTGUARD' THEN 'security' 16 | WHEN 'ENGINEER' THEN 'engineering' 17 | END) AS ROLE FROM "EMP" 18 | 19 | """ ]; 20 | rr:subjectMap [ 21 | rr:template "http://data.example.com/employee/{\"empno\"}"; 22 | ]; 23 | rr:predicateObjectMap [ 24 | rr:predicate ex:role; 25 | rr:objectMap [ rr:template "http://data.example.com/roles/{ROLE}" ]; 26 | ]. 27 | 28 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D015-1table3columns1composityeprimarykey3rows2languages/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Country" ( 2 | "Code" VARCHAR(2), 3 | "Name" VARCHAR(100), 4 | "Lan" VARCHAR(10), 5 | PRIMARY KEY ("Code","Lan") 6 | ); 7 | INSERT INTO "Country" ("Code", "Name", "Lan") VALUES ('BO', 'Bolivia, Plurinational State of', 'EN'); 8 | INSERT INTO "Country" ("Code", "Name", "Lan") VALUES ('BO', 'Estado Plurinacional de Bolivia', 'ES'); 9 | INSERT INTO "Country" ("Code", "Name", "Lan") VALUES ('IE', 'Ireland', 'EN'); 10 | INSERT INTO "Country" ("Code", "Name", "Lan") VALUES ('IE', 'Irlanda', 'ES'); 11 | 12 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D015-1table3columns1composityeprimarykey3rows2languages/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Bolivia, Plurinational State of"@en . 2 | "Estado Plurinacional de Bolivia"@es . 3 | "Ireland"@en . 4 | "Irlanda"@es . 5 | 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D016-1table1primarykey10columns3rowsSQLdatatypes/mappedd.nq: -------------------------------------------------------------------------------- 1 | . 2 | "false"^^ . 3 | . 4 | "true"^^ . 5 | . 6 | "true"^^ . 7 | 8 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D016-1table1primarykey10columns3rowsSQLdatatypes/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Patient\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Patient{\"ID\"}"; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate rdf:type; 19 | rr:object foaf:Person; 20 | ]; 21 | 22 | rr:predicateObjectMap 23 | [ 24 | rr:predicate ex:weight; 25 | rr:objectMap [ rr:column "\"Weight\""; ] 26 | ]; 27 | 28 | rr:predicateObjectMap 29 | [ 30 | rr:predicate ex:height; 31 | rr:objectMap [ rr:column "\"Height\""; ] 32 | ]; 33 | 34 | . 35 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D016-1table1primarykey10columns3rowsSQLdatatypes/r2rmlc.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Patient\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Patient{\"ID\"}"; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate rdf:type; 19 | rr:object foaf:Person; 20 | ]; 21 | 22 | rr:predicateObjectMap 23 | [ 24 | rr:predicate ex:birthdate; 25 | rr:objectMap [ rr:column "\"BirthDate\""; ] 26 | ]; 27 | 28 | rr:predicateObjectMap 29 | [ 30 | rr:predicate ex:entrancedate; 31 | rr:objectMap [ rr:column "\"EntranceDate\""; ] 32 | ]; 33 | 34 | . 35 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D016-1table1primarykey10columns3rowsSQLdatatypes/r2rmld.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Patient\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Patient{\"ID\"}"; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate rdf:type; 19 | rr:object foaf:Person; 20 | ]; 21 | 22 | rr:predicateObjectMap 23 | [ 24 | rr:predicate ex:paid; 25 | rr:objectMap [ rr:column "\"PaidInAdvance\""; ] 26 | ]; 27 | 28 | . 29 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D016-1table1primarykey10columns3rowsSQLdatatypes/r2rmle.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix rdf: . 4 | @prefix ex: . 5 | @prefix xsd: . 6 | @base . 7 | 8 | 9 | 10 | a rr:TriplesMap; 11 | 12 | rr:logicalTable [ rr:tableName "\"Patient\"" ]; 13 | 14 | rr:subjectMap [ rr:template "http://example.com/Patient{\"ID\"}"; ]; 15 | 16 | rr:predicateObjectMap 17 | [ 18 | rr:predicate rdf:type; 19 | rr:object foaf:Person; 20 | ]; 21 | 22 | rr:predicateObjectMap 23 | [ 24 | rr:predicate ex:photo; 25 | rr:objectMap [ rr:template "data:image/png;hex,{\"Photo\"}"; ]; 26 | ]; 27 | 28 | . 29 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D017-I18NnoSpecialChars/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "植物" ( 2 | "名" VARCHAR(10), 3 | "使用部" VARCHAR(10), 4 | "条件" VARCHAR(10), 5 | PRIMARY KEY ("名", "使用部") 6 | ); 7 | INSERT INTO "植物" ("名", "使用部", "条件") VALUES ('しそ', '葉', '新鮮な'); 8 | 9 | CREATE TABLE "成分" ( 10 | "皿" VARCHAR(10), 11 | "植物名" VARCHAR(10), 12 | "使用部" VARCHAR(10), 13 | FOREIGN KEY ("植物名", "使用部") REFERENCES "植物"("名", "使用部") 14 | ); 15 | INSERT INTO "成分" ("皿", "植物名", "使用部") VALUES ('しそのとまと', 'しそ', '葉'); -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D017-I18NnoSpecialChars/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | <植物/名=しそ;使用部=葉> <植物> . 4 | <植物/名=しそ;使用部=葉> <植物#使用部> "葉" . 5 | <植物/名=しそ;使用部=葉> <植物#名> "しそ" . 6 | <植物/名=しそ;使用部=葉> <植物#条件> "新鮮な" . 7 | _:a <成分> . 8 | _:a <成分#使用部> "葉" . 9 | _:a <成分#植物名> "しそ" . 10 | _:a <成分#ref-植物名;使用部> <植物/名=しそ;使用部=葉> . 11 | _:a <成分#皿> "しそのとまと" . 12 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D017-I18NnoSpecialChars/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix test: . 2 | @prefix dcterms: . 3 | @prefix rdb2rdftest: . 4 | @base . 5 | 6 | a rdb2rdftest:DataBase; 7 | dcterms:title "I18N No Special Chars" ; 8 | dcterms:identifier "D017-I18NnoSpecialChars" ; 9 | rdb2rdftest:sqlScriptFile "create.sql"; 10 | rdb2rdftest:relatedTestCase ; 11 | . 12 | 13 | a rdb2rdftest:DirectMapping ; 14 | dcterms:title "I18N No Special Chars" ; 15 | dcterms:identifier "DirectGraphTC0017" ; 16 | test:purpose "Test de generation of a direct graph from a I18N No Special Chars database" ; 17 | test:specificationReference "#no-pk" ; 18 | test:reviewStatus test:unreviewed ; 19 | rdb2rdftest:database ; 20 | rdb2rdftest:hasExpectedOutput true ; 21 | rdb2rdftest:output "directGraph.ttl" ; 22 | . 23 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D018-1table1primarykey2columns3rows/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "ID" INTEGER, 3 | "Name" CHAR(15) 4 | ); 5 | INSERT INTO "Student" ("ID","Name") VALUES (10,'Venus'); 6 | INSERT INTO "Student" ("ID","Name") VALUES (20,'Fernando'); 7 | INSERT INTO "Student" ("ID","Name") VALUES (30,'David'); 8 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D018-1table1primarykey2columns3rows/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | 3 | _:a . 4 | _:a "10"^^ . 5 | _:a "Venus " . 6 | _:b . 7 | _:b "20"^^ . 8 | _:b "Fernando " . 9 | _:c . 10 | _:c "30"^^ . 11 | _:c "David " . 12 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D018-1table1primarykey2columns3rows/mappeda.nq: -------------------------------------------------------------------------------- 1 | "Venus " . 2 | "10"^^ . 3 | . 4 | "Fernando " . 5 | "20"^^ . 6 | . 7 | "David " . 8 | "30"^^ . 9 | . 10 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D018-1table1primarykey2columns3rows/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | 10 | rr:logicalTable [ rr:tableName "\"Student\"" ]; 11 | 12 | rr:subjectMap [ rr:template "http://example.com/{\"ID\"}"; 13 | rr:class foaf:Person ]; 14 | 15 | rr:predicateObjectMap 16 | [ 17 | rr:predicate ex:id ; 18 | rr:objectMap [ rr:column "\"ID\""; ] 19 | ]; 20 | 21 | rr:predicateObjectMap 22 | [ 23 | rr:predicate foaf:name ; 24 | rr:objectMap [ rr:column "\"Name\"" ] 25 | ] 26 | . 27 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D019-1table1primarykey3columns3rows/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Employee" ( 2 | "ID" INTEGER, 3 | "FirstName" VARCHAR(50), 4 | "LastName" VARCHAR(50) 5 | ); 6 | INSERT INTO "Employee" ("ID","FirstName","LastName") VALUES (10,'http://example.com/ns#Jhon','Smith'); 7 | INSERT INTO "Employee" ("ID","FirstName","LastName") VALUES (20,'Carlos','Mendoza'); 8 | INSERT INTO "Employee" ("ID","FirstName","LastName") VALUES (30,'Juan Daniel','Crespo'); -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D019-1table1primarykey3columns3rows/mappeda.nq: -------------------------------------------------------------------------------- 1 | "http://example.com/ns#Jhon" . 2 | "Carlos" . -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D019-1table1primarykey3columns3rows/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | rr:logicalTable [ 10 | rr:sqlQuery """ 11 | SELECT "ID", "FirstName", "LastName" 12 | FROM "Employee" 13 | WHERE "ID" < 30 14 | """ 15 | ]; 16 | 17 | rr:subjectMap [ rr:column "\"FirstName\"" ]; 18 | rr:predicateObjectMap 19 | [ 20 | rr:predicate foaf:name; 21 | rr:objectMap [ rr:column "\"FirstName\"" ]; 22 | ]; 23 | . 24 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D019-1table1primarykey3columns3rows/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @base . 6 | 7 | 8 | a rr:TriplesMap; 9 | rr:logicalTable [ rr:tableName "\"Employee\"" ]; 10 | rr:subjectMap [ rr:column "\"FirstName\"" ]; 11 | rr:predicateObjectMap 12 | [ 13 | rr:predicate foaf:name; 14 | rr:objectMap [ rr:column "\"FirstName\"" ]; 15 | ]; 16 | . 17 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D020-1table1column5rows/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Student" ( 2 | "Name" VARCHAR(50) 3 | ); 4 | 5 | INSERT INTO "Student" ("Name") VALUES ('http://example.com/company/Alice'); 6 | INSERT INTO "Student" ("Name") VALUES ('Bob'); 7 | INSERT INTO "Student" ("Name") VALUES ('Bob/Charles'); 8 | INSERT INTO "Student" ("Name") VALUES ('path/../Danny'); 9 | INSERT INTO "Student" ("Name") VALUES ('Emily Smith'); -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D020-1table1column5rows/mappeda.nq: -------------------------------------------------------------------------------- 1 | . 2 | . 3 | . 4 | . 5 | . 6 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D020-1table1column5rows/r2rmla.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @prefix rdf: . 6 | @base . 7 | 8 | 9 | a rr:TriplesMap; 10 | rr:logicalTable [ rr:tableName "\"Student\""; ]; 11 | 12 | rr:subjectMap [ rr:template "{\"Name\"}"; rr:termType rr:IRI; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate rdf:type; 17 | rr:object foaf:Person; 18 | ]; 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D020-1table1column5rows/r2rmlb.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix foaf: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | @prefix rdf: . 6 | @base . 7 | 8 | 9 | a rr:TriplesMap; 10 | rr:logicalTable [ rr:tableName "\"Student\""; ]; 11 | 12 | rr:subjectMap [ rr:column "\"Name\""; rr:termType rr:IRI; ]; 13 | 14 | rr:predicateObjectMap 15 | [ 16 | rr:predicate rdf:type; 17 | rr:object foaf:Person; 18 | ]; 19 | . 20 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D022-2tables1primarykey1foreignkeyReferencesNoPrimaryKey/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Target" ( 2 | "litattr1" INT, 3 | -- PRIMARY KEY("PK"), 4 | "key1attr1" CHAR(4), 5 | "key1attr2" CHAR(4), 6 | UNIQUE ("key1attr1", "key1attr2"), 7 | "key2attr1" CHAR(4), 8 | "key2attr2" CHAR(4), 9 | UNIQUE ("key2attr2", "key2attr1") 10 | ); 11 | 12 | CREATE TABLE "Source" ( 13 | "ID" INT, 14 | PRIMARY KEY("ID"), 15 | "attrA" CHAR(4), 16 | "attrB" CHAR(4), 17 | FOREIGN KEY ("attrA", "attrB") REFERENCES "Target"("key2attr2", "key2attr1") 18 | ); 19 | 20 | INSERT INTO "Target" ("litattr1", "key1attr1", "key1attr2", "key2attr1", "key2attr2") 21 | VALUES (1010 , 'K1A1' , 'K1A2' , 'K2A1' , 'K2A2'); 22 | 23 | INSERT INTO "Source" ("ID", "attrA", "attrB") 24 | VALUES (1100, 'K2A2' , 'K2A1' ); 25 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D022-2tables1primarykey1foreignkeyReferencesNoPrimaryKey/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @base . 3 | 4 | _:a . 5 | _:a 1010 . 6 | _:a "K1A1" . 7 | _:a "K1A2" . 8 | _:a "K2A1" . 9 | _:a "K2A2" . 10 | 11 | . 12 | 1100 . 13 | "K2A2" . 14 | "K2A1" . 15 | _:a . 16 | 17 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D023-2tables2primarykeys2foreignkeysReferencesToNon-primarykeys/create.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE "Target" ( 2 | "PK" INT, 3 | PRIMARY KEY("PK"), 4 | "key1attr1" CHAR(4), 5 | "key1attr2" CHAR(4), 6 | UNIQUE ("key1attr1", "key1attr2"), 7 | "key2attr1" CHAR(4), 8 | "key2attr2" CHAR(4), 9 | UNIQUE ("key2attr2", "key2attr1") 10 | ); 11 | 12 | CREATE TABLE "Source" ( 13 | "ID" INT, 14 | PRIMARY KEY("ID"), 15 | "attrA" CHAR(4), 16 | "attrB" CHAR(4), 17 | FOREIGN KEY ("attrA", "attrB") REFERENCES "Target"("key2attr2", "key2attr1") 18 | ); 19 | 20 | INSERT INTO "Target" ("PK", "key1attr1", "key1attr2", "key2attr1", "key2attr2") 21 | VALUES (1010, 'K1A1' , 'K1A2' , 'K2A1' , 'K2A2' ); 22 | 23 | INSERT INTO "Source" ("ID", "attrA", "attrB") 24 | VALUES (1100, 'K2A2' , 'K2A1' ); 25 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/D023-2tables2primarykeys2foreignkeysReferencesToNon-primarykeys/directGraph.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @base . 3 | 4 | . 5 | 1010 . 6 | "K1A1" . 7 | "K1A2" . 8 | "K2A1" . 9 | "K2A2" . 10 | 11 | . 12 | 1100 . 13 | "K2A2" . 14 | "K2A1" . 15 | . 16 | 17 | -------------------------------------------------------------------------------- /src/test/rdb2rdf-tests/README.md: -------------------------------------------------------------------------------- 1 | # W3C RDB2RDF Test Suite 2 | 3 | This directory contains the test cases produced by the W3C RDB2RDF Working 4 | Group, as described here: 5 | 6 | https://www.w3.org/2001/sw/rdb2rdf/test-cases/ 7 | 8 | They are kept outside of `/src/test/resources` because they may not work 9 | if loaded through the class loader. The test suite relies on listing 10 | directory contents and this is not supported if the tests are packaged 11 | as a war file. 12 | 13 | `D2RQTestSuiteUtil.java` has a list of disabled tests that currently 14 | do not pass. 15 | -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/mappings/column-typed.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:db a d2rq:Database. 7 | map:Configuration a d2rq:Configuration; d2rq:serveVocabulary false. 8 | 9 | map:classmap a d2rq:ClassMap; 10 | d2rq:dataStorage map:db; 11 | d2rq:constantValue ex:s; 12 | . 13 | map:pb1 a d2rq:PropertyBridge; 14 | d2rq:belongsToClassMap map:classmap; 15 | d2rq:property ex:p; 16 | d2rq:column "TABLE1.ID"; 17 | d2rq:datatype xsd:integer; 18 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/mappings/contains-duplicates-with-join.ttl: -------------------------------------------------------------------------------- 1 | @prefix map: <#> . 2 | @prefix ex: . 3 | @prefix d2rq: . 4 | 5 | map:db a d2rq:Database. 6 | map:config a d2rq:Configuration; d2rq:serveVocabulary false. 7 | 8 | map:B a d2rq:ClassMap; 9 | d2rq:dataStorage map:db; 10 | d2rq:uriPattern "http://example.com/B_@@B.A_ID@@_@@B.B_ID@@"; 11 | d2rq:class ex:B; 12 | d2rq:join "B.A_ID = A.ID"; 13 | # Not needed, but should be harmless 14 | d2rq:containsDuplicates true; 15 | . 16 | -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/mappings/expression.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:db a d2rq:Database. 7 | map:Configuration a d2rq:Configuration; d2rq:serveVocabulary false. 8 | 9 | map:classmap a d2rq:ClassMap; 10 | d2rq:dataStorage map:db; 11 | d2rq:constantValue ex:s; 12 | . 13 | map:pb1 a d2rq:PropertyBridge; 14 | d2rq:belongsToClassMap map:classmap; 15 | d2rq:property ex:p; 16 | d2rq:sqlExpression "TABLE1.ID * 666"; 17 | d2rq:datatype xsd:integer; 18 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/mappings/only-constant-uris.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:db a d2rq:Database. 6 | map:Configuration a d2rq:Configuration; d2rq:serveVocabulary false. 7 | 8 | map:classmap a d2rq:ClassMap; 9 | d2rq:dataStorage map:db; 10 | d2rq:constantValue ex:s; 11 | . 12 | map:pb1 a d2rq:PropertyBridge; 13 | d2rq:belongsToClassMap map:classmap; 14 | d2rq:property ex:p; 15 | d2rq:constantValue ex:o; 16 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/mappings/uri-pattern-empty-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:db a d2rq:Database. 6 | map:Configuration a d2rq:Configuration; d2rq:serveVocabulary false. 7 | 8 | map:classmap a d2rq:ClassMap; 9 | d2rq:dataStorage map:db; 10 | d2rq:uriPattern "http://example.com/@@TABLE1.ID@@"; 11 | . 12 | map:pb1 a d2rq:PropertyBridge; 13 | d2rq:belongsToClassMap map:classmap; 14 | d2rq:property ex:p; 15 | d2rq:constantValue ex:o; 16 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/mappings/uri-pattern.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:db a d2rq:Database. 6 | map:Configuration a d2rq:Configuration; d2rq:serveVocabulary false. 7 | 8 | map:classmap a d2rq:ClassMap; 9 | d2rq:dataStorage map:db; 10 | d2rq:uriPattern "http://example.com/@@TABLE1.ID@@"; 11 | . 12 | map:pb1 a d2rq:PropertyBridge; 13 | d2rq:belongsToClassMap map:classmap; 14 | d2rq:property ex:p; 15 | d2rq:constantValue ex:o; 16 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/schemas/empty-table1.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY); 2 | -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/schemas/multicol-pk.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE A (ID INT PRIMARY KEY); 2 | CREATE TABLE B (A_ID INT REFERENCES A (ID), B_ID INT, PRIMARY KEY (A_ID, B_ID)); 3 | INSERT INTO A VALUES (1); 4 | INSERT INTO B VALUES (1, 100); 5 | INSERT INTO B VALUES (1, 101); 6 | -------------------------------------------------------------------------------- /src/test/resources/d2rq-lang/schemas/table1.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY); 2 | INSERT INTO TABLE1 VALUES (1); 3 | -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/alias.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "com.mysql.jdbc.Driver"; 6 | d2rq:jdbcURL "jdbc:mysql:///db"; 7 | d2rq:numericColumn "People.ID"; 8 | d2rq:numericColumn "People.boss"; 9 | . 10 | :classmap a d2rq:ClassMap; 11 | d2rq:dataStorage :database; 12 | d2rq:uriPattern "http://example.org/p@@People.ID@@"; 13 | . 14 | :bridge a d2rq:PropertyBridge; 15 | d2rq:belongsToClassMap :classmap; 16 | d2rq:property :boss; 17 | d2rq:refersToClassMap :classmap; 18 | d2rq:alias "People AS Bosses"; 19 | d2rq:join "People.boss = Bosses.ID"; 20 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/download-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "org.hsqldb.jdbcDriver"; 6 | d2rq:jdbcURL "jdbc:hsqldb:mem:test"; 7 | . 8 | 9 | :dm a d2rq:DownloadMap; 10 | d2rq:dataStorage :database; 11 | d2rq:uriPattern "downloads/@@People.ID@@"; 12 | d2rq:contentDownloadColumn "People.pic"; 13 | d2rq:mediaType "image/png"; 14 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/literal-instead-of-resource.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "com.mysql.jdbc.Driver"; 6 | d2rq:jdbcURL "jdbc:mysql:///db"; 7 | d2rq:numericColumn "People.ID"; 8 | . 9 | :classmap a d2rq:ClassMap; 10 | d2rq:dataStorage :database; 11 | d2rq:uriPattern "http://example.org/p@@People.ID@@"; 12 | d2rq:class "Person"; 13 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/resource-instead-of-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "com.mysql.jdbc.Driver"; 6 | d2rq:jdbcURL ; 7 | d2rq:numericColumn "People.ID"; 8 | . 9 | :classmap a d2rq:ClassMap; 10 | d2rq:dataStorage :database; 11 | d2rq:uriPattern "http://example.org/p@@People.ID@@"; 12 | d2rq:class :Person; 13 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/simple.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix ex: . 3 | @prefix map: <#> . 4 | 5 | map:database a :Database; 6 | :jdbcDriver "com.mysql.jdbc.Driver"; 7 | :jdbcURL "jdbc:mysql:///db"; 8 | :numericColumn "People.ID"; 9 | :textColumn "People.name"; 10 | :textColumn "People.email"; 11 | :textColumn "People.www"; 12 | . 13 | map:classmap1 a :ClassMap; 14 | :dataStorage map:database; 15 | :uriPattern "http://example.org/p@@People.ID@@"; 16 | :class ex:Person 17 | :properties [ :property ex:name; :column "People.name"; ]; 18 | :properties [ :property ex:mbox; :uriPattern "mailto:@@People.email@@"; ]; 19 | :properties [ :property ex:homepage; :uriColumn "People.www"; ]; 20 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/translation-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "com.mysql.jdbc.Driver"; 6 | d2rq:jdbcURL "jdbc:mysql:///db"; 7 | d2rq:numericColumn "People.ID"; 8 | d2rq:numericColumn "People.boss"; 9 | . 10 | 11 | :tt a d2rq:TranslationTable; 12 | d2rq:translation [ 13 | d2rq:databaseValue "literal"; 14 | d2rq:rdfValue "http://example.org/foo"; 15 | ]; 16 | d2rq:translation [ 17 | d2rq:databaseValue "uri"; 18 | d2rq:rdfValue :foo; 19 | ]; 20 | . -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/translationtable.csv: -------------------------------------------------------------------------------- 1 | db1,rdf1 2 | db2,rdf2 -------------------------------------------------------------------------------- /src/test/resources/d2rq-reader/type-classmap-and-propertybridge.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "com.mysql.jdbc.Driver"; 6 | d2rq:jdbcURL "jdbc:mysql:///db"; 7 | d2rq:numericColumn "People.ID"; 8 | d2rq:textColumn "People.name"; 9 | . 10 | :classmap-and-bridge a d2rq:ClassMap; 11 | d2rq:dataStorage :database; 12 | d2rq:uriPattern "http://example.org/p@@People.ID@@"; 13 | . 14 | :classmap-and-bridge a d2rq:PropertyBridge; 15 | d2rq:belongsToClassMap :classmap; 16 | d2rq:property :name; 17 | d2rq:column "People.name"; 18 | . -------------------------------------------------------------------------------- /src/test/resources/download/download-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix : . 2 | @prefix d2rq: . 3 | 4 | :database a d2rq:Database; 5 | d2rq:jdbcDriver "org.hsqldb.jdbcDriver"; 6 | d2rq:jdbcURL "jdbc:hsqldb:mem:test"; 7 | d2rq:username "d2rq"; 8 | . 9 | 10 | :downloadCLOB a d2rq:DownloadMap; 11 | d2rq:dataStorage :database; 12 | d2rq:uriPattern "downloads/clob/@@PEOPLE.ID@@"; 13 | d2rq:contentDownloadColumn "PEOPLE.PIC_CLOB"; 14 | d2rq:mediaType "text/plain"; 15 | . 16 | :downloadBLOB a d2rq:DownloadMap; 17 | d2rq:dataStorage :database; 18 | d2rq:uriPattern "downloads/blob/@@PEOPLE.ID@@"; 19 | d2rq:contentDownloadColumn "PEOPLE.PIC_BLOB"; 20 | d2rq:mediaType "image/png"; 21 | . -------------------------------------------------------------------------------- /src/test/resources/hsqldb/simple.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix : . 3 | 4 | :db a d2rq:Database; 5 | d2rq:jdbcURL "jdbc:hsqldb:mem:test"; 6 | d2rq:jdbcDriver "org.hsqldb.jdbcDriver"; 7 | d2rq:username "d2rq"; 8 | . 9 | 10 | :classmap a d2rq:ClassMap; 11 | d2rq:dataStorage :db; 12 | d2rq:uriPattern "test/@@TEST.ID@@"; 13 | d2rq:class :Test; 14 | . -------------------------------------------------------------------------------- /src/test/resources/jena/prefixes.ttl: -------------------------------------------------------------------------------- 1 | @prefix : <#> . 2 | @prefix ex: . 3 | @prefix d2rq: . 4 | 5 | :database a d2rq:Database; 6 | d2rq:jdbcURL "jdbc:hsqldb:mem:test"; 7 | d2rq:username "d2rq"; 8 | d2rq:numericColumn "People.ID"; 9 | . 10 | :classmap a d2rq:ClassMap; 11 | d2rq:dataStorage :database; 12 | d2rq:uriPattern "http://example.org/p@@People.ID@@"; 13 | d2rq:class ex:Person; 14 | . -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/child-column-not-in-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "NO_SUCH_COLUMN"; 18 | rr:parent "COLUMN2". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/child-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child ex:COLUMN1; 18 | rr:parent "COLUMN2". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/class-must-be-iri.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:column "COLUMN1"; 11 | rr:class "ex:Person". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/column-name-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column ex:COLUMN1. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/column-not-in-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "NO_SUCH_COLUMN". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/column-not-in-view.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:sqlQuery "SELECT * FROM TABLE1" ]. 8 | 9 | map:terms1 rr:column "NO_SUCH_COLUMN". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-properties-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]; 9 | rr:predicateObjectMap [ 10 | rr:predicate ex:p; 11 | rr:objectMap map:terms1; 12 | ]. 13 | 14 | map:terms1 15 | rr:column "COLUMN1"; 16 | rr:datatype xsd:string; 17 | rr:language "en". 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-properties-subject.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:subjectMap [ rr:column "COLUMN1" ]; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]. 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-properties-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 10 | rr:tableName "TABLE1"; 11 | rr:sqlQuery "SELECT * FROM TABLE1". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-properties-term-map1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:constant ex:s; 11 | rr:column "COLUMN1". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-properties-term-map2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:constant ex:s; 11 | rr:template "example/{COLUMN1}". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-properties-term-map3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:column "COLUMN1"; 11 | rr:template "example/{COLUMN1}". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/conflicting-types.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]; 9 | rr:predicateObjectMap map:predicateObjects1. 10 | 11 | map:predicateObjects1 12 | rr:predicate ex:p; 13 | rr:objectMap map:terms1. 14 | 15 | map:terms1 16 | rr:column "COLUMN1"; 17 | rr:parentTriplesMap map:triples1. 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/constant-must-be-iri-or-literal1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 rr:constant _:NotAnIRI. 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/constant-must-be-iri-or-literal2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicate ex:p; 12 | rr:object _:NotAnIRI. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/constant-must-be-iri1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:constant "Not an IRI". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/constant-must-be-iri2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject "Not an IRI"; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/datatype-must-be-iri.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:datatype "xsd:dateTime". 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/datatype-only-with-term-type-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]; 9 | rr:predicateObjectMap [ 10 | rr:predicate ex:p; 11 | rr:objectMap map:terms1; 12 | ]. 13 | 14 | map:terms1 15 | rr:column "COLUMN1"; 16 | rr:datatype xsd:date; 17 | rr:termType rr:IRI. 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-child.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1", "COLUMN2"; 18 | rr:parent "COLUMN2". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-column-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:sqlQuery "SELECT COLUMN1, COLUMN1 FROM TABLE1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-constant.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:term1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:term1 rr:constant ex:s1, ex:s2. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-logical-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1, map:table2. 8 | 9 | map:table1 rr:tableName "TABLE1". 10 | map:table2 rr:tableName "TABLE1". 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-parent-triples-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:ref1; 11 | ]. 12 | 13 | map:triples2 14 | rr:subject ex:s2; 15 | rr:logicalTable [ rr:tableName "TABLE1" ]. 16 | 17 | map:ref1 rr:parentTriplesMap map:triples1, map:triples2. 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-parent.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1"; 18 | rr:parent "COLUMN1", "COLUMN2". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-subject-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:subjects1, map:subjects2; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:subjects1 rr:constant ex:s1. 10 | map:subjects2 rr:constant ex:s2. 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-subject.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s1, ex:s2; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/duplicate-term-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:termType rr:IRI, rr:Literal. 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/graph-map-must-not-be-literal1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicate ex:p; 12 | rr:object ex:o; 13 | rr:graphMap "Nope". 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/graph-map-must-not-be-literal2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:constant ex:s; 11 | rr:graphMap "Nope". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/graph-map-wrong-type1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicate ex:p; 12 | rr:object ex:o; 13 | rr:graphMap map:terms1. 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/graph-map-wrong-type2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:constant ex:s; 11 | rr:graphMap map:terms2. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-child-column-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "Not a valid column name"; 18 | rr:parent "COLUMN1". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-column-name-empty.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-column-name-qualified.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "TABLE1.COLUMN1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-column-name-quoted-empty.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "\"\"". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-column-name-quoting.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "\"COLUMN1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-column-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "Not a valid column name". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-iri-template.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "aaa {COLUMN1}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-language-tag.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:language "en/us". 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-parent-column-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1"; 18 | rr:parent "Not a valid column name". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-sql-query.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:sqlQuery "Not valid SQL". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-string-template-in-inverse-expression.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:template "{COLUMN1}"; 11 | rr:inverseExpression "{". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-string-template-qualified-column-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{TABLE1.COLUMN1}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-string-template-undoubled-backslash.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "aaa\\aaa{COLUMN1}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-string-template-unexpected-character.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{COLUMN 1}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-string-template-unmatched-curly.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/invalid-term-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:column "COLUMN1"; 11 | rr:termType ex:Nope. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/inverse-column-not-in-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:sqlQuery "SELECT COLUMN1 X FROM TABLE1" ]. 8 | 9 | map:terms1 10 | rr:column "X"; 11 | rr:inverseExpression "{X} = {NO_SUCH_COLUMN}". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/inverse-expression-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:inverseExpression "COLUMN1 = {COLUMN1}"@en. 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/join-condition-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:ref1; 11 | ]. 12 | 13 | map:ref1 14 | rr:parentTriplesMap map:triples1; 15 | rr:joinCondition "Nope". 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/join-condition-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:ref1; 11 | ]. 12 | 13 | map:ref1 14 | rr:parentTriplesMap map:triples1; 15 | rr:joinCondition map:join1. 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/language-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:language ex:en. 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/language-only-with-term-type-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:language "en"; 16 | rr:termType rr:IRI. 17 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/logical-table-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable "Nope". 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/logical-table-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable ex:table1. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/malformed-table-name-empty.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/malformed-table-name-quoted-empty.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "\"\"". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/malformed-table-name-quoting.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "\"TABLE1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/malformed-table-name-too-many-periods.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "INVALID.CATALOG1.SCHEMA1.COLUMN1.TABLE1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/malformed-table-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "Not a valid table name". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/missing-child.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:parent "COLUMN1"; 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/missing-join.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:ref1; 11 | ]. 12 | 13 | map:triples2 14 | rr:subject ex:s2; 15 | rr:logicalTable [ rr:tableName "TABLE2" ]. 16 | 17 | map:ref1 rr:parentTriplesMap map:triples2. 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/missing-object.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicate ex:p. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/missing-parent.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1"; 18 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/missing-predicate.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:object ex:o. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/missing-subject.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]. 7 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/no-r2rml-triples.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:Database1 a d2rq:Database; 7 | d2rq:jdbcDSN "jdbc:mysql://localhost/iswc"; 8 | d2rq:jdbcDriver "com.mysql.jdbc.Driver"; 9 | d2rq:username "user"; 10 | d2rq:password "password". 11 | map:Conference a d2rq:ClassMap; 12 | d2rq:dataStorage map:Database1; 13 | d2rq:class ex:Conference; 14 | d2rq:uriPattern "http://conferences.org/comp/confno@@Conferences.ConfID@@". 15 | map:eventTitle a d2rq:PropertyBridge; 16 | d2rq:belongsToClassMap map:Conference; 17 | d2rq:property ex:eventTitle; 18 | d2rq:column "Conferences.Name"; 19 | d2rq:datatype xsd:string. 20 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/no-such-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "NO_SUCH_TABLE". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/no-triples-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | 4 | map:termMap1 rr:column "FOO". 5 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/no-triples.ttl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d2rq/r2rml-kit/a4f9121a3bf4596384ea6cc6f4025326233bba2d/src/test/resources/r2rml/invalid/no-triples.ttl -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/object-map-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicate ex:p; 12 | rr:objectMap "Nope". 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/object-map-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicate ex:p; 12 | rr:objectMap map:terms1. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/parent-column-not-in-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1"; 18 | rr:parent "NO_SUCH_COLUMN". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/parent-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1"; 18 | rr:parent ex:COLUMN2. 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/parent-triples-map-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:ref1; 11 | ]. 12 | 13 | map:ref1 rr:parentTriplesMap "Nope". 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/parent-triples-map-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:ref1; 11 | ]. 12 | 13 | map:ref1 rr:parentTriplesMap map:triples2. 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/predicate-map-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicateMap "Nope"; 12 | rr:object ex:o. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/predicate-map-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | 10 | map:predicateObjects1 11 | rr:predicateMap map:terms1; 12 | rr:object ex:o. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/predicate-object-map-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap "Nope". 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/predicate-object-map-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap map:predicateObjects1. 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/sql-query-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:sqlQuery "SELECT * FROM TABLE1"@en. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/sql-version-must-be-iri1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 10 | rr:sqlQuery "SELECT * FROM TABLE1"; 11 | rr:sqlVersion "Oracle". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/sql-version-must-be-iri2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix rdfs: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable map:table1. 9 | 10 | map:table1 11 | rr:sqlQuery "SELECT * FROM TABLE1"; 12 | rr:sqlVersion [ rdfs:label "Oracle" ]. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/subject-map-must-not-be-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap "Nope"; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/subject-map-wrong-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/syntax-error.ttl: -------------------------------------------------------------------------------- 1 | THIS IS NOT TURTLE! 2 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/table-name-must-be-string1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName ex:NotAString. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/table-name-must-be-string2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName _:NotAString. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/table-name-must-be-string3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable map:table1. 9 | 10 | map:table1 rr:tableName "TABLE1"^^ex:Datatype. 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/table-name-must-be-string4.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 rr:tableName "TABLE1"@en. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/template-column-not-in-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{NO_SUCH_COLUMN}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/template-must-be-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{COLUMN1}"@en. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/term-type-must-be-iri.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:column "COLUMN1"; 11 | rr:termType "IRI". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/wrong-term-type1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:column "COLUMN1"; 11 | rr:termType rr:Literal. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/wrong-term-type2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicateMap map:terms1; 10 | rr:object ex:o; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:termType rr:BlankNode. 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/invalid/wrong-term-type3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap [ 7 | rr:column "COLUMN1"; 8 | rr:graphMap map:terms1; 9 | ]; 10 | rr:logicalTable [ rr:tableName "TABLE1" ]. 11 | 12 | map:terms1 13 | rr:column "COLUMN1"; 14 | rr:termType rr:BlankNode. 15 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/class.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ 8 | rr:constant ex:s; 9 | rr:class ex:C; 10 | ]. 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/constant-object.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:constant ex:o ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/constant-predicate.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicateMap [ rr:constant ex:p ]; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/constant-subject.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ rr:constant ex:s ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/iri-column-absolute.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID"; rr:termType rr:IRI ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/iri-column-relative.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID"; rr:termType rr:IRI ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/iri-template-absolute.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:template "http://notbase.example.com/{ID}" ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/iri-template-relative.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:template "path/{ID}" ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/no-class-for-empty-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ 8 | rr:constant ex:s; 9 | rr:class ex:C; 10 | ]. 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/no-p-o-maps.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/no-triple-for-empty-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/null-no-triple.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "VALUE" ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-literal-language.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID"; rr:language "en" ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-literal-typed-custom.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID"; rr:datatype ex:dt ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-literal-typed-natural.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:subject ex:s; 9 | rr:predicateObjectMap [ 10 | rr:predicate ex:p; 11 | rr:objectMap [ rr:column "ID"; rr:datatype xsd:integer ]; 12 | ]. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-literal-typed-string.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:subject ex:s; 9 | rr:predicateObjectMap [ 10 | rr:predicate ex:p; 11 | rr:objectMap [ rr:column "ID"; rr:datatype xsd:string ]; 12 | ]. 13 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID" ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-term-type-iri.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID"; rr:termType rr:IRI ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-column-term-type-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:column "ID"; rr:termType rr:Literal ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-template-iri.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:template "foo{ID}" ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/o-template-term-type-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:template "foo{ID}"; rr:termType rr:Literal ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/only-shortcut-iris.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/ref-object-map-join-different-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ rr:template "s{ID}" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples2; 12 | rr:joinCondition [ rr:child "REF"; rr:parent "ID" ]; 13 | ]; 14 | ]. 15 | 16 | map:triples2 17 | rr:logicalTable [ rr:tableName "TABLE2" ]; 18 | rr:subjectMap [ rr:template "o{ID}" ]. -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/ref-object-map-join-same-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ rr:template "{ID}" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition [ rr:child "REF"; rr:parent "ID" ]; 13 | ]; 14 | ]. -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/ref-object-map-join-same-view.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:sqlQuery "SELECT ID FOO, REF FROM TABLE1" ]; 7 | rr:subjectMap [ rr:template "{FOO}" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition [ rr:child "REF"; rr:parent "FOO" ]; 13 | ]; 14 | ]. -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/ref-object-map-no-joins1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:parentTriplesMap map:triples1 ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/ref-object-map-no-joins2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ rr:template "{ID}" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:parentTriplesMap map:triples1 ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/ref-object-map-two-joins.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ rr:template "s{ID}" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples2; 12 | rr:joinCondition [ rr:child "REF1"; rr:parent "ID1" ]; 13 | rr:joinCondition [ rr:child "REF2"; rr:parent "ID2" ]; 14 | ]; 15 | ]. 16 | 17 | map:triples2 18 | rr:logicalTable [ rr:tableName "TABLE2" ]; 19 | rr:subjectMap [ rr:template "o{ID1}_{ID2}" ]. -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/reuse-term-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap map:terms1; 8 | rr:predicateObjectMap [ 9 | rr:predicateMap map:terms1; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 rr:constant ex:x; 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/shortcut-literal-language.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object "a"@en; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/shortcut-literal-typed.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object 42; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/shortcut-literal.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object "o"; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-classes.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subjectMap [ 8 | rr:constant ex:s; 9 | rr:class ex:C1, ex:C2; 10 | ]. 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-o-maps.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ rr:constant ex:o1 ], [ rr:constant ex:o2 ]; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-o-shortcuts.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object ex:o1, ex:o2; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-p-maps.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicateMap [ rr:constant ex:p1 ], [ rr:constant ex:p2 ]; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-p-o-maps.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p1; 10 | rr:object ex:o1; 11 | ], [ 12 | rr:predicate ex:p2; 13 | rr:object ex:o2; 14 | ]; 15 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-p-shortcuts.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p1, ex:p2; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/mappings/two-p-two-o-shortcuts.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:logicalTable [ rr:tableName "TABLE1" ]; 7 | rr:subject ex:s; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p1, ex:p2; 10 | rr:object ex:o1, ex:o2; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/empty-table1.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY); 2 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/same-table-ref.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY, REF INT); 2 | INSERT INTO TABLE1 VALUES (1, NULL); 3 | INSERT INTO TABLE1 VALUES (2, 1); 4 | INSERT INTO TABLE1 VALUES (3, 4); -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/table1-iri.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID VARCHAR(100) PRIMARY KEY); 2 | INSERT INTO TABLE1 VALUES ('http://other.example.com/1'); 3 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/table1-null.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY, VALUE INT); 2 | INSERT INTO TABLE1 VALUES (1, NULL); 3 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/table1.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY); 2 | INSERT INTO TABLE1 VALUES (1); 3 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/two-tables-multicol.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY, REF1 INT, REF2 INT); 2 | INSERT INTO TABLE1 VALUES (1, 10, 1); 3 | INSERT INTO TABLE1 VALUES (2, 10, 2); 4 | INSERT INTO TABLE1 VALUES (3, 11, 1); 5 | INSERT INTO TABLE1 VALUES (4, NULL, NULL); 6 | CREATE TABLE TABLE2 (ID1 INT, ID2 INT, PRIMARY KEY (ID1, ID2)); 7 | INSERT INTO TABLE2 VALUES (10, 1); 8 | INSERT INTO TABLE2 VALUES (10, 2); 9 | INSERT INTO TABLE2 VALUES (11, 1); 10 | INSERT INTO TABLE2 VALUES (12, 1); 11 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/two-tables.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (ID INT PRIMARY KEY, REF INT); 2 | INSERT INTO TABLE1 VALUES (1, 11); 3 | INSERT INTO TABLE1 VALUES (2, 12); 4 | INSERT INTO TABLE1 VALUES (3, NULL); 5 | CREATE TABLE TABLE2 (ID INT PRIMARY KEY); 6 | INSERT INTO TABLE2 VALUES (10); 7 | INSERT INTO TABLE2 VALUES (11); 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/schemas/validator-test.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE TABLE1 (COLUMN1 INT PRIMARY KEY, COLUMN2 VARCHAR(100), "A ""valid"" column.name" VARCHAR(100)); 2 | CREATE TABLE TABLE2 (COLUMN1 INT PRIMARY KEY); 3 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/constant-literal-as-object1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object "Object"; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/constant-literal-as-object2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 rr:constant "Object". 14 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/correct-term-map-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 a rr:SubjectMap; rr:column "COLUMN1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/valid-column-name-quoted.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "\"A \"\"valid\"\" column.name\"". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/well-formed1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/well-formed2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:object ex:o; 11 | ]. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/valid/well-formed3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap [ 11 | rr:parentTriplesMap map:triples1; 12 | rr:joinCondition map:join1; 13 | ]; 14 | ]. 15 | 16 | map:join1 17 | rr:child "COLUMN1"; 18 | rr:parent "COLUMN2". 19 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/empty-separator-in-string-template.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{COLUMN1}{COLUMN2}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/graph-on-graph-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap [ 7 | rr:column "COLUMN1"; 8 | rr:graphMap map:terms1; 9 | ]; 10 | rr:logicalTable [ rr:tableName "TABLE1" ]. 11 | 12 | map:terms1 13 | rr:constant ex:graph1; 14 | rr:graphMap map:terms1. 15 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/graph-on-object-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]; 8 | rr:predicateObjectMap [ 9 | rr:predicate ex:p; 10 | rr:objectMap map:terms1; 11 | ]. 12 | 13 | map:terms1 14 | rr:column "COLUMN1"; 15 | rr:graph ex:graph1. 16 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/possible-unsafe-separator-in-iri-template.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{COLUMN1}-{COLUMN2}". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-logical-table-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap [ rr:column "COLUMN1" ]; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 a rr:R2RMLView; rr:tableName "TABLE1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-term-map-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 a rr:ObjectMap; rr:column "COLUMN1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple1.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:sqlVersion rr:SQL2008; 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]. 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple2.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable map:table1. 8 | 9 | map:table1 10 | rr:tableName "TABLE1"; 11 | rr:language "en". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple3.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 10 | rr:constant ex:s; 11 | rr:joinCondition map:join1. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple4.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]; 9 | rr:predicateObjectMap map:predicateObjects1. 10 | 11 | map:predicateObjects1 12 | rr:predicate ex:p; 13 | rr:object ex:o; 14 | rr:datatype xsd:date. 15 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple5.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]; 9 | rr:predicateObjectMap [ 10 | rr:predicate ex:p; 11 | rr:objectMap map:ref1; 12 | ]. 13 | 14 | map:ref1 15 | rr:parentTriplesMap map:triples1; 16 | rr:class ex:Foo. 17 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple6.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | @prefix xsd: . 5 | 6 | map:triples1 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]; 9 | rr:predicateObjectMap [ 10 | rr:predicate ex:p; 11 | rr:objectMap [ 12 | rr:parentTriplesMap map:triples1; 13 | rr:joinCondition map:join1; 14 | ]; 15 | ]. 16 | 17 | map:join1 18 | rr:child "COLUMN1"; 19 | rr:parent "COLUMN2"; 20 | rr:graph ex:graph1. 21 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple7.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:graphMap map:terms1; 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]. 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-triple8.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:termType rr:IRI; 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]. 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/spurious-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 a rr:LogicalTable; 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/string-template-without-column-name.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subjectMap map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "aaa". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/subject-instead-subject-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject map:terms1; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "COLUMN1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unknown-class-in-r2rml-namespace.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 a rr:UndefinedClass; 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unknown-property-in-r2rml-namespace.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:undefinedProperty true; 7 | rr:subject ex:s; 8 | rr:logicalTable [ rr:tableName "TABLE1" ]. 9 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unknown-resource-in-r2rml-namespace.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:sqlQuery "SELECT * FROM TABLE1"; rr:sqlVersion rr:SQL1992 ]. 8 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-base-table.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:table1 rr:tableName "TABLE1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-column-term-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:column "COLUMN1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-constant-term-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:constant ex:p. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-join.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:join1 10 | rr:child "COLUMN1"; 11 | rr:parent "COLUMN2". 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-predicate-object-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:predicateObjects1 10 | rr:predicate ex:p; 11 | rr:object ex:o. 12 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-r2rml-view.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:table1 rr:sqlQuery "SELECT * FROM TABLE1". 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-ref-object-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:ref1 rr:parentTriplesMap map:triples1. 10 | -------------------------------------------------------------------------------- /src/test/resources/r2rml/warning/unreferenced-template-term-map.ttl: -------------------------------------------------------------------------------- 1 | @prefix rr: . 2 | @prefix map: . 3 | @prefix ex: . 4 | 5 | map:triples1 6 | rr:subject ex:s; 7 | rr:logicalTable [ rr:tableName "TABLE1" ]. 8 | 9 | map:terms1 rr:template "{COLUMN1}". 10 | -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/defined-properties.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this d2rq:column "that". 4 | d2rq:this d2rq:belongsToClassMap d2rq:that. -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/defined-types.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this a d2rq:Database. 4 | d2rq:that a d2rq:ClassMap. 5 | d2rq:them a d2rq:PropertyBridge. -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/no-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this d2rq:something d2rq:that. -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/one-undefined-property.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this d2rq:price 12 . 4 | -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/one-undefined-type.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this a d2rq:Pint. 4 | -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/other-namespace-properties.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:this ex:foo ex:that. 4 | ex:this ex:bar ex:that. -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/other-namespace-types.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:this a ex:Foo. 4 | ex:that a ex:Bar. 5 | ex:them a ex:Qux. -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/rr-example.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix rr: . 3 | 4 | <#TriplesMap1> 5 | rr:logicalTable [ rr:tableName "EMP" ]; 6 | rr:subjectMap [ 7 | rr:template "http://data.example.com/employee/{EMPNO}"; 8 | rr:class ex:Employee; 9 | ]; 10 | rr:predicateObjectMap [ 11 | rr:predicate ex:name; 12 | rr:objectMap [ rr:column "ENAME" ]; 13 | ]. -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/two-undefined-properties.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this d2rq:price 12 . 4 | d2rq:this d2rq:parallelUniverse d2rq:that . -------------------------------------------------------------------------------- /src/test/resources/vocab-summarizer/two-undefined-types.ttl: -------------------------------------------------------------------------------- 1 | @prefix d2rq: . 2 | 3 | d2rq:this a d2rq:Pint, d2rq:Shot. -------------------------------------------------------------------------------- /validate: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | D2RQ_ROOT="$( dirname "${BASH_SOURCE[0]}" )" 3 | CP="$D2RQ_ROOT/target/classes" 4 | SEP=':' 5 | if [ $(uname -s | grep -ic 'cygwin\|mingw') -gt 0 ]; then SEP=';'; fi 6 | for jar in "$D2RQ_ROOT"/target/dependency/*.jar 7 | do 8 | if [ ! -e "$jar" ]; then continue; fi 9 | CP="$CP$SEP$jar" 10 | done 11 | LOGCONFIG=${LOGCONFIG:-file:$D2RQ_ROOT/src/main/resources/log4j.properties} 12 | exec java -cp "$CP" -Xmx1G "-Dlog4j.configuration=${LOGCONFIG}" org.d2rq.cli.validate "$@" 13 | -------------------------------------------------------------------------------- /validate.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | set D2R_ROOT=%~p0 3 | set CP="%D2R_ROOT%build" 4 | call :findjars "%D2R_ROOT%lib" 5 | set LOGCONFIG=file:%D2R_ROOT%etc/log4j.properties 6 | java -cp %CP% -Xmx1G "-Dlog4j.configuration=%LOGCONFIG%" d2rq.validate %* 7 | exit /B 8 | 9 | :findjars 10 | for %%j in (%1\*.jar) do call :addjar "%%j" 11 | for /D %%d in (%1\*) do call :findjars "%%d" 12 | exit /B 13 | 14 | :addjar 15 | set CP=%CP%;%1 16 | --------------------------------------------------------------------------------