diff --git a/test-complete-app/build.gradle b/test-complete-app/build.gradle index 9b3e099a..02823118 100644 --- a/test-complete-app/build.gradle +++ b/test-complete-app/build.gradle @@ -18,3 +18,32 @@ ext { command.setValidFor(365) mlAppDeployer.commands.add(command) } + +tasks.register("curlPeople", Exec) { + commandLine = [ + 'curl', + '--fail', + '--anyauth', '--user', 'admin:admin', + '-i', + '-X', 'POST', + '--data-binary', '@./src/main/turtle/people/people.ttl', + '-H', 'Content-type: text/turtle', + 'http://localhost:8079/v1/graphs?graph=/people' + ] +} + +tasks.register("curlCompanies", Exec) { + commandLine = [ + 'curl', + '--fail', + '--anyauth', '--user', 'admin:admin', + '-i', + '-X', 'POST', + '--data-binary', '@./src/main/turtle/companies/companies_100.ttl', + '-H', 'Content-type: text/turtle', + 'http://localhost:8079/v1/graphs?graph=/optic/sparql/test/companies.ttl' + ] +} + +mlDeploy.finalizedBy curlPeople +mlDeploy.finalizedBy curlCompanies \ No newline at end of file diff --git a/test-complete-app/gradle.properties b/test-complete-app/gradle.properties index 3d61cb0a..d7a78f54 100644 --- a/test-complete-app/gradle.properties +++ b/test-complete-app/gradle.properties @@ -3,3 +3,6 @@ mlUsername=admin mlPassword=admin mlNoRestServer=true +mlModulesDatabaseName=nodeOpticFunctionalTestModules +mlSchemasDatabaseName=Schemas +mlRestPort=8079 \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/databases/dmsdk-api-rest-server-modules.json b/test-complete-app/src/main/ml-config/databases/dmsdk-api-rest-server-modules.json new file mode 100644 index 00000000..255145f3 --- /dev/null +++ b/test-complete-app/src/main/ml-config/databases/dmsdk-api-rest-server-modules.json @@ -0,0 +1,3 @@ +{ + "database-name": "dmsdk-api-rest-server-modules" +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/databases/dmsdk-api-rest-server.json b/test-complete-app/src/main/ml-config/databases/dmsdk-api-rest-server.json new file mode 100644 index 00000000..aa3371d5 --- /dev/null +++ b/test-complete-app/src/main/ml-config/databases/dmsdk-api-rest-server.json @@ -0,0 +1,6 @@ +{ + "database-name": "dmsdk-api-rest-server", + "schema-database": "Schemas", + "range-element-index": [ + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/databases/node-client-api-rest-server-modules.json b/test-complete-app/src/main/ml-config/databases/node-client-api-rest-server-modules.json new file mode 100644 index 00000000..d7c25fe3 --- /dev/null +++ b/test-complete-app/src/main/ml-config/databases/node-client-api-rest-server-modules.json @@ -0,0 +1,3 @@ +{ + "database-name": "node-client-api-rest-server-modules" +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/databases/node-client-api-rest-server.json b/test-complete-app/src/main/ml-config/databases/node-client-api-rest-server.json new file mode 100644 index 00000000..09c64be4 --- /dev/null +++ b/test-complete-app/src/main/ml-config/databases/node-client-api-rest-server.json @@ -0,0 +1,190 @@ +{ + "database-name": "node-client-api-rest-server", + "schema-database": "Schemas", + "range-element-index": [ + { + "scalar-type": "double", + "namespace-uri": "", + "localname": "score", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "int", + "namespace-uri": "", + "localname": "popularity", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "int", + "namespace-uri": "", + "localname": "rate", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "dateTime", + "namespace-uri": "", + "localname": "datetime", + "range-value-positions": false, + "invalid-values": "ignore" + } + ], + "range-path-index": [ + { + "scalar-type": "decimal", + "path-expression": "price/amt", + "collation": "", + "range-value-positions": false, + "invalid-values": "reject" + } + ], + "geospatial-path-index": [ + { + "path-expression": "gElemChildParent/gElemChildPoint", + "coordinate-system": "wgs84", + "point-format": "point", + "range-value-positions": false, + "invalid-values": "reject" + } + ], + "geospatial-element-index": [ + { + "namespace-uri": "", + "localname": "gElemPoint", + "coordinate-system": "wgs84", + "point-format": "point", + "range-value-positions": false, + "invalid-values": "reject" + }, + { + "namespace-uri": "", + "localname": "gElemPointWgs84Double", + "coordinate-system": "wgs84/double", + "point-format": "point", + "range-value-positions": false, + "invalid-values": "reject" + } + ], + "geospatial-element-child-index": [ + { + "parent-namespace-uri": "", + "parent-localname": "gElemChildParent", + "namespace-uri": "", + "localname": "gElemChildPoint", + "coordinate-system": "wgs84", + "point-format": "point", + "range-value-positions": false, + "invalid-values": "reject" + }, + { + "parent-namespace-uri": "", + "parent-localname": "gElemChildParentEtrs89Double", + "namespace-uri": "", + "localname": "gElemChildPointEtrs89Double", + "coordinate-system": "etrs89/double", + "point-format": "point", + "range-value-positions": false, + "invalid-values": "reject" + } + ], + "geospatial-element-pair-index": [ + { + "parent-namespace-uri": "", + "parent-localname": "gElemPair", + "latitude-namespace-uri": "", + "latitude-localname": "latitude", + "longitude-namespace-uri": "", + "longitude-localname": "longitude", + "coordinate-system": "wgs84", + "range-value-positions": false, + "invalid-values": "reject" + }, + { + "parent-namespace-uri": "", + "parent-localname": "gElemPairRawDouble", + "latitude-namespace-uri": "", + "latitude-localname": "latitudeRawDouble", + "longitude-namespace-uri": "", + "longitude-localname": "longitudeRawDouble", + "coordinate-system": "raw/double", + "range-value-positions": false, + "invalid-values": "reject" + } + ], + "geospatial-element-attribute-pair-index": [ + { + "parent-namespace-uri": "", + "parent-localname": "gAttrPair", + "latitude-namespace-uri": "", + "latitude-localname": "latitude", + "longitude-namespace-uri": "", + "longitude-localname": "longitude", + "coordinate-system": "wgs84", + "range-value-positions": false, + "invalid-values": "reject" + } + ], + "geospatial-region-path-index": [ + { + "path-expression": "/root/item/point", + "coordinate-system": "wgs84", + "geohash-precision": 1, + "invalid-values": "reject" + }, + { + "path-expression": "/root/item/linestring", + "coordinate-system": "wgs84/double", + "geohash-precision": 2, + "invalid-values": "ignore" + }, + { + "path-expression": "/root/item/circle", + "coordinate-system": "wgs84/double", + "geohash-precision": 1, + "invalid-values": "reject" + }, + { + "path-expression": "/root/item/circle", + "coordinate-system": "wgs84", + "geohash-precision": 1, + "invalid-values": "reject" + }, + { + "path-expression": "/root/item/box", + "coordinate-system": "wgs84/double", + "geohash-precision": 2, + "invalid-values": "ignore" + }, + { + "path-expression": "/root/item/polygon", + "coordinate-system": "wgs84", + "geohash-precision": 3, + "invalid-values": "reject" + }, + { + "path-expression": "/root/item/complex-polygon", + "coordinate-system": "wgs84", + "geohash-precision": 1, + "invalid-values": "ignore" + } + ], + "element-word-lexicon": [ + { + "collation": "http://marklogic.com/collation/", + "namespace-uri": "", + "localname": "defaultWordKey" + }, + { + "collation": "http://marklogic.com/collation/", + "namespace-uri": "", + "localname": "taggedWordKey" + }, + { + "collation": "http://marklogic.com/collation/", + "namespace-uri": "", + "localname": "otherKey" + } + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/databases/nodeOpticFunctionalTest.json b/test-complete-app/src/main/ml-config/databases/nodeOpticFunctionalTest.json new file mode 100644 index 00000000..b7b695cf --- /dev/null +++ b/test-complete-app/src/main/ml-config/databases/nodeOpticFunctionalTest.json @@ -0,0 +1,72 @@ +{ + "database-name": "nodeOpticFunctionalTest", + "schema-database": "Schemas", + "fast-element-trailing-wildcard-searches": true, + "two-character-searches": true, + "one-character-searches": true, + "uri-lexicon": true, + "range-element-index": [ + { + "scalar-type": "string", + "collation": "http://marklogic.com/collation/", + "namespace-uri": "", + "localname": "city", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "string", + "collation": "http://marklogic.com/collation/", + "namespace-uri": "", + "localname": "cityName", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "string", + "collation": "http://marklogic.com/collation/", + "namespace-uri": "", + "localname": "cityTeam", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "date", + "namespace-uri": "", + "localname": "date", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "double", + "namespace-uri": "", + "localname": "distance", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "decimal", + "namespace-uri": "", + "localname": "id", + "range-value-positions": false, + "invalid-values": "ignore" + }, + { + "scalar-type": "int", + "namespace-uri": "", + "localname": "popularity", + "range-value-positions": false, + "invalid-values": "ignore" + } + ], + "geospatial-element-index": [ + { + "namespace-uri": "", + "localname": "latLonPoint", + "coordinate-system": "wgs84", + "point-format": "point", + "range-value-positions": false, + "invalid-values": "reject" + } + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/databases/nodeOpticFunctionalTestModules.json b/test-complete-app/src/main/ml-config/databases/nodeOpticFunctionalTestModules.json new file mode 100644 index 00000000..985ca1bc --- /dev/null +++ b/test-complete-app/src/main/ml-config/databases/nodeOpticFunctionalTestModules.json @@ -0,0 +1,3 @@ +{ + "database-name": "nodeOpticFunctionalTestModules" +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/roles/eval.json b/test-complete-app/src/main/ml-config/security/roles/eval.json new file mode 100644 index 00000000..681dbd5b --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/roles/eval.json @@ -0,0 +1,37 @@ +{ + "role-name": "eval", + "description": "eval role", + "role": [], + "privilege": [ + { + "privilege-name": "xdbc-eval", + "action": "http://marklogic.com/xdmp/privileges/xdbc-eval", + "kind": "execute" + }, + { + "privilege-name": "xdmp-eval-in", + "action": "http://marklogic.com/xdmp/privileges/xdmp-eval-in", + "kind": "execute" + }, + { + "privilege-name": "xdmp-invoke", + "action": "http://marklogic.com/xdmp/privileges/xdmp-invoke", + "kind": "execute" + }, + { + "privilege-name": "xdmp-invoke-in", + "action": "http://marklogic.com/xdmp/privileges/xdmp-invoke-in", + "kind": "execute" + }, + { + "privilege-name": "xdmp-spawn", + "action": "http://marklogic.com/xdmp/privileges/xdmp-spawn", + "kind": "execute" + }, + { + "privilege-name": "xdmp-spawn-in", + "action": "http://marklogic.com/xdmp/privileges/xdmp-spawn-in", + "kind": "execute" + } + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/roles/qbvuser-role.json b/test-complete-app/src/main/ml-config/security/roles/qbvuser-role.json new file mode 100644 index 00000000..5cab4f0f --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/roles/qbvuser-role.json @@ -0,0 +1,75 @@ +{ + "role-name": "qbvuser-role", + "description": "qbvuser role for test-complete tests", + "role": [ + "tde-view", + "query-view-admin", + "app-user", + "eval", + "harmonized-reader", + "rest-extension-user", + "rest-reader", + "rest-writer", + "rest-admin", + "tde-admin", + "manage-user", + "sparql-update-user" + ], + "privilege": [ + { + "privilege-name": "any-uri", + "action": "http://marklogic.com/xdmp/privileges/any-uri", + "kind": "execute" + }, + { + "privilege-name": "xdmp-eval", + "action": "http://marklogic.com/xdmp/privileges/xdmp-eval", + "kind": "execute" + }, + { + "privilege-name": "xdmp-eval-in", + "action": "http://marklogic.com/xdmp/privileges/xdmp-eval-in", + "kind": "execute" + }, + { + "privilege-name": "sem-sparql", + "action": "http://marklogic.com/xdmp/privileges/sem-sparql", + "kind": "execute" + }, + { + "privilege-name": "xdbc-eval", + "action": "http://marklogic.com/xdmp/privileges/xdbc-eval", + "kind": "execute" + }, + { + "privilege-name": "xdbc-invoke", + "action": "http://marklogic.com/xdmp/privileges/xdbc-invoke", + "kind": "execute" + }, + { + "privilege-name": "xdmp-sql", + "action": "http://marklogic.com/xdmp/privileges/xdmp-sql", + "kind": "execute" + }, + { + "privilege-name": "xdmp-http-get", + "action": "http://marklogic.com/xdmp/privileges/xdmp-http-get", + "kind": "execute" + }, + { + "privilege-name": "xdmp-http-post", + "action": "http://marklogic.com/xdmp/privileges/xdmp-http-post", + "kind": "execute" + }, + { + "privilege-name": "xdbc-invoke-in", + "action": "http://marklogic.com/xdmp/privileges/xdbc-invoke-in", + "kind": "execute" + }, + { + "privilege-name": "xdbc-eval-in", + "action": "http://marklogic.com/xdmp/privileges/xdbc-eval-in", + "kind": "execute" + } + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/roles/rest-evaluator.json b/test-complete-app/src/main/ml-config/security/roles/rest-evaluator.json new file mode 100644 index 00000000..476c59cb --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/roles/rest-evaluator.json @@ -0,0 +1,54 @@ +{ + "role-name": "rest-evaluator", + "description": "REST writer who can eval, invoke, or set a dynamic databases", + "role": [ + "rest-writer" + ], + "privilege": [ + { + "privilege-name": "xdmp-eval", + "action": "http://marklogic.com/xdmp/privileges/xdmp-eval", + "kind": "execute" + }, + { + "privilege-name": "xdmp-eval-in", + "action": "http://marklogic.com/xdmp/privileges/xdmp-eval-in", + "kind": "execute" + }, + { + "privilege-name": "xdmp-invoke", + "action": "http://marklogic.com/xdmp/privileges/xdmp-invoke", + "kind": "execute" + }, + { + "privilege-name": "xdbc-eval", + "action": "http://marklogic.com/xdmp/privileges/xdbc-eval", + "kind": "execute" + }, + { + "privilege-name": "xdbc-eval-in", + "action": "http://marklogic.com/xdmp/privileges/xdbc-eval-in", + "kind": "execute" + }, + { + "privilege-name": "xdbc-invoke", + "action": "http://marklogic.com/xdmp/privileges/xdbc-invoke", + "kind": "execute" + }, + { + "privilege-name": "any-uri", + "action": "http://marklogic.com/xdmp/privileges/any-uri", + "kind": "execute" + }, + { + "privilege-name": "xdmp-set-session-field", + "action": "http://marklogic.com/xdmp/privileges/xdmp-set-session-field", + "kind": "execute" + }, + { + "privilege-name": "xdmp-get-session-field", + "action": "http://marklogic.com/xdmp/privileges/xdmp-get-session-field", + "kind": "execute" + } + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/roles/tde-User.json b/test-complete-app/src/main/ml-config/security/roles/tde-User.json new file mode 100644 index 00000000..c9d8fd11 --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/roles/tde-User.json @@ -0,0 +1,16 @@ +{ + "role-name": "tde-User", + "description": "test user to write tde to modules database", + "role": [ + "tde-view", + "tde-admin", + "rest-writer" + ], + "privilege": [ + { + "privilege-name": "xdmp-eval-in", + "action": "http://marklogic.com/xdmp/privileges/xdmp-eval-in", + "kind": "execute" + } + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/qbvuser.json b/test-complete-app/src/main/ml-config/security/users/qbvuser.json new file mode 100644 index 00000000..e90b1b21 --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/qbvuser.json @@ -0,0 +1,8 @@ +{ + "user-name": "qbvuser", + "description": "qbvuser for test complete tests.", + "password": "qbvuser", + "role": [ + "qbvuser-role" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/rest-admin.json b/test-complete-app/src/main/ml-config/security/users/rest-admin.json new file mode 100644 index 00000000..1d61dd6f --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/rest-admin.json @@ -0,0 +1,8 @@ +{ + "user-name": "rest-admin", + "description": "rest-admin user", + "password": "x", + "role": [ + "rest-admin" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/rest-evaluator.json b/test-complete-app/src/main/ml-config/security/users/rest-evaluator.json new file mode 100644 index 00000000..fe89e731 --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/rest-evaluator.json @@ -0,0 +1,8 @@ +{ + "user-name": "rest-evaluator", + "description": "rest-writer user with evaluate privileges", + "password": "x", + "role": [ + "rest-evaluator" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/rest-reader-optic.json b/test-complete-app/src/main/ml-config/security/users/rest-reader-optic.json new file mode 100644 index 00000000..6db7588e --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/rest-reader-optic.json @@ -0,0 +1,8 @@ +{ + "user-name": "rest-reader-optic", + "password": "x", + "description": "rest-reader user", + "role": [ + "rest-reader" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/rest-reader.json b/test-complete-app/src/main/ml-config/security/users/rest-reader.json new file mode 100644 index 00000000..7cdeed28 --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/rest-reader.json @@ -0,0 +1,8 @@ +{ + "user-name": "rest-reader", + "description": "rest-reader user", + "password": "x", + "role": [ + "rest-reader" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/rest-writer.json b/test-complete-app/src/main/ml-config/security/users/rest-writer.json new file mode 100644 index 00000000..340ec3ba --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/rest-writer.json @@ -0,0 +1,9 @@ +{ + "user-name": "rest-writer", + "description": "rest-writer user", + "password": "x", + "role": [ + "rest-writer", + "rest-evaluator" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/security/users/tde-user.json b/test-complete-app/src/main/ml-config/security/users/tde-user.json new file mode 100644 index 00000000..deb28d45 --- /dev/null +++ b/test-complete-app/src/main/ml-config/security/users/tde-user.json @@ -0,0 +1,8 @@ +{ + "user-name": "tde-user", + "description": "test user to write tde to modules database", + "password": "x", + "role": [ + "tde-User" + ] +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/servers/dmsdk-api-rest-server.json b/test-complete-app/src/main/ml-config/servers/dmsdk-api-rest-server.json new file mode 100644 index 00000000..3c6ad55d --- /dev/null +++ b/test-complete-app/src/main/ml-config/servers/dmsdk-api-rest-server.json @@ -0,0 +1,13 @@ +{ + "server-name": "dmsdk-api-rest-server", + "port": 8025, + "server-type": "http", + "root": "/", + "content-database": "dmsdk-api-rest-server", + "modules-database": "dmsdk-api-rest-server-modules", + "default-error-format": "json", + "error-handler": "/MarkLogic/rest-api/error-handler.xqy", + "url-rewriter": "/MarkLogic/rest-api/rewriter.xml", + "rewrite-resolves-globally": true, + "authentication": "digestbasic" +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/servers/node-client-api-rest-server.json b/test-complete-app/src/main/ml-config/servers/node-client-api-rest-server.json new file mode 100644 index 00000000..3b6758f6 --- /dev/null +++ b/test-complete-app/src/main/ml-config/servers/node-client-api-rest-server.json @@ -0,0 +1,13 @@ +{ + "server-name": "node-client-api-rest-server", + "port": 8024, + "server-type": "http", + "root": "/", + "content-database": "node-client-api-rest-server", + "modules-database": "node-client-api-rest-server-modules", + "default-error-format": "json", + "error-handler": "/MarkLogic/rest-api/error-handler.xqy", + "url-rewriter": "/MarkLogic/rest-api/rewriter.xml", + "rewrite-resolves-globally": true, + "authentication": "digestbasic" +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-config/servers/nodeOpticFunctionalTest.json b/test-complete-app/src/main/ml-config/servers/nodeOpticFunctionalTest.json new file mode 100644 index 00000000..6baa4b86 --- /dev/null +++ b/test-complete-app/src/main/ml-config/servers/nodeOpticFunctionalTest.json @@ -0,0 +1,13 @@ +{ + "server-name": "nodeOpticFunctionalTest", + "port": 8079, + "server-type": "http", + "root": "/", + "content-database": "nodeOpticFunctionalTest", + "modules-database": "nodeOpticFunctionalTestModules", + "default-error-format": "json", + "error-handler": "/MarkLogic/rest-api/error-handler.xqy", + "url-rewriter": "/MarkLogic/rest-api/rewriter.xml", + "rewrite-resolves-globally": true, + "authentication": "digestbasic" +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/city1.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/city1.json new file mode 100755 index 00000000..8388cedb --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/city1.json @@ -0,0 +1,6 @@ + +{ + "cityName": "london", + "cityTeam": "arsenal", + "cityPopulation": 2000000 +} diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/city2.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/city2.json new file mode 100755 index 00000000..c0a37c3d --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/city2.json @@ -0,0 +1,6 @@ + +{ + "cityName": "new york", + "cityTeam": "yankee", + "cityPopulation": 11000000 +} diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/city3.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/city3.json new file mode 100755 index 00000000..9f18b122 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/city3.json @@ -0,0 +1,6 @@ + +{ + "cityName": "new jersey", + "cityTeam": "nets", + "cityPopulation": 3000000 +} diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/city4.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/city4.json new file mode 100755 index 00000000..5640ea7d --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/city4.json @@ -0,0 +1,6 @@ + +{ + "cityName": "beijing", + "cityTeam": "ducks", + "cityPopulation": 55000000 +} diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/city5.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/city5.json new file mode 100755 index 00000000..3814c03c --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/city5.json @@ -0,0 +1,6 @@ + +{ + "cityName": "cape town", + "cityTeam": "pirates", + "cityPopulation": 650000 +} diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/collections.properties b/test-complete-app/src/main/ml-data/optic/lexicon/test/collections.properties new file mode 100644 index 00000000..b00d41c8 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/collections.properties @@ -0,0 +1,4 @@ +city*=/optic/lexicon/test +doc*=/optic/lexicon/test +doc1.json=/optic/lexicon/test,/other/coll1,/other/coll2 +masterDetail*=/optic/view/test \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/doc1.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc1.json new file mode 100755 index 00000000..38fa8e56 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc1.json @@ -0,0 +1,18 @@ +{ + "city":"london", + "distance":50.4, + "date":"2007-01-01", + "metro":true, + "description":"Two recent discoveries indicate probable very early settlements near the Thames", + "popularity":5, + "location":{ + "latLonPoint":"51.50, -0.12", + "latLonPair":{ + "lat":51.5, + "long":-0.12 + }, + "latLonParent":{ + "latLonChild":"51.50, -0.12" + } + } +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/doc2.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc2.json new file mode 100755 index 00000000..c7345198 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc2.json @@ -0,0 +1,18 @@ +{ + "city":"new york", + "distance":23.3, + "date":"2006-06-23", + "metro":true, + "description":"Henry Hudsons 1609 voyage marked the beginning of European involvement with the area", + "popularity":5, + "location":{ + "latLonPoint":"40.71, -74.01", + "latLonPair":{ + "lat":40.71, + "long":-74.01 + }, + "latLonParent":{ + "latLonChild":"40.71, -74.01" + } + } +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/doc3.json b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc3.json new file mode 100755 index 00000000..2bd7df87 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc3.json @@ -0,0 +1,18 @@ +{ + "city":"new jersey", + "distance":12.9, + "date":"1971-12-23", + "metro":false, + "description":"American forces under Washington met the forces under General Henry Clinton", + "popularity":2, + "location":{ + "latLonPoint":"40.72, -74.07", + "latLonPair":{ + "lat":40.72, + "long":-74.07 + }, + "latLonParent":{ + "latLonChild":"40.72, -74.07" + } + } +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/doc4.xml b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc4.xml new file mode 100755 index 00000000..8431dfa5 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc4.xml @@ -0,0 +1,19 @@ + + beijing + 134.5 + 1981-11-09 + true + The Miyun Reservoir, on the upper reaches of the Chaobai River, is the largest reservoir within the municipality + 5 + + 39.90,116.40 + + 39.90,116.40 + + + 39.90 + 116.40 + + + + \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/lexicon/test/doc5.xml b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc5.xml new file mode 100755 index 00000000..8576dba9 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/lexicon/test/doc5.xml @@ -0,0 +1,19 @@ + + cape town + 377.9 + 1999-04-22 + true + The earliest known remnants in the region were found at Peers cave in Fish Hoek + 3 + + -33.91,18.42 + + -33.91,18.42 + + + -33.91 + 18.42 + + + + \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/plan/test/collections.properties b/test-complete-app/src/main/ml-data/optic/plan/test/collections.properties new file mode 100644 index 00000000..295f8fa8 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/plan/test/collections.properties @@ -0,0 +1 @@ +*=/optic/plan/test \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/plan/test/planLexicons.json b/test-complete-app/src/main/ml-data/optic/plan/test/planLexicons.json new file mode 100644 index 00000000..9a916e74 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/plan/test/planLexicons.json @@ -0,0 +1,161 @@ +{ + "$optic": { + "ns": "op", + "fn": "operators", + "args": [ + { + "ns": "op", + "fn": "from-lexicons", + "args": [ + { + "uri1": { + "uriReference": { } + }, + "city": { + "jsonPropertyReference": { + "property": "city", + "scalarType": "string", + "collation": "http://marklogic.com/collation/", + "nullable": false + } + }, + "popularity": { + "jsonPropertyReference": { + "property": "popularity", + "scalarType": "int", + "nullable": false + } + }, + "date": { + "jsonPropertyReference": { + "property": "date", + "scalarType": "date", + "nullable": false + } + }, + "distance": { + "jsonPropertyReference": { + "property": "distance", + "scalarType": "double", + "nullable": false + } + }, + "point": { + "jsonPropertyReference": { + "property": "latLonPoint", + "scalarType": "point", + "coordinateSystem": "wgs84", + "nullable": false + } + } + }, + "myCity", + { + "ns": "op", + "fn": "fragment-id-col", + "args": [ + "fragId1" + ] + } + ] + }, + { + "ns": "op", + "fn": "join-inner", + "args": [ + { + "ns": "op", + "fn": "operators", + "args": [ + { + "ns": "op", + "fn": "from-lexicons", + "args": [ + { + "uri2": { + "uriReference": { } + }, + "cityName": { + "jsonPropertyReference": { + "property": "cityName", + "scalarType": "string", + "collation": "http://marklogic.com/collation/", + "nullable": false + } + }, + "cityTeam": { + "jsonPropertyReference": { + "property": "cityTeam", + "scalarType": "string", + "collation": "http://marklogic.com/collation/", + "nullable": false + } + } + }, + "myTeam", + { + "ns": "op", + "fn": "fragment-id-col", + "args": [ + "fragId2" + ] + } + ] + } + ] + }, + null, + null + ] + }, + { + "ns": "op", + "fn": "where", + "args": [ + { + "ns": "op", + "fn": "eq", + "args": [ + { + "ns": "op", + "fn": "viewCol", + "args": [ + "myCity", + "city" + ] + }, + { + "ns": "op", + "fn": "col", + "args": [ + "cityName" + ] + } + ] + } + ] + }, + { + "ns": "op", + "fn": "order-by", + "args": [ + [ + { + "ns": "op", + "fn": "asc", + "args": [ + { + "ns": "op", + "fn": "col", + "args": [ + "date" + ] + } + ] + } + ] + ] + } + ] + } +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/plan/test/planTriples.json b/test-complete-app/src/main/ml-data/optic/plan/test/planTriples.json new file mode 100644 index 00000000..bb854c69 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/plan/test/planTriples.json @@ -0,0 +1,73 @@ +{ + "$optic": { + "ns": "op", + "fn": "operators", + "args": [ { + "ns": "op", + "fn": "from-triples", + "args": [ + [ { + "ns": "op", + "fn": "pattern", + "args": [ + [ { + "ns": "op", + "fn": "col", + "args": [ "player_id" ] + } ], + [ { + "ns": "sem", + "fn": "iri", + "args": [ "http://marklogic.com/other/bball/players#age" ] + } ], + [ { + "ns": "op", + "fn": "col", + "args": [ "player_age" ] + } ], null + ] + }, { + "ns": "op", + "fn": "pattern", + "args": [ + [ { + "ns": "op", + "fn": "col", + "args": [ "player_id" ] + } ], + [ { + "ns": "sem", + "fn": "iri", + "args": [ "http://marklogic.com/other/bball/players#name" ] + } ], + [ { + "ns": "op", + "fn": "col", + "args": [ "player_name" ] + } ], null + ] + }, { + "ns": "op", + "fn": "pattern", + "args": [ + [ { + "ns": "op", + "fn": "col", + "args": [ "player_id" ] + } ], + [ { + "ns": "sem", + "fn": "iri", + "args": [ "http://marklogic.com/other/bball/players#team" ] + } ], + [ { + "ns": "op", + "fn": "col", + "args": [ "player_team" ] + } ], null + ] + } ], "myPlayer", null, null + ] + } ] + } +} diff --git a/test-complete-app/src/main/ml-data/optic/plan/test/planViews.json b/test-complete-app/src/main/ml-data/optic/plan/test/planViews.json new file mode 100644 index 00000000..0a5f59ff --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/plan/test/planViews.json @@ -0,0 +1,117 @@ +{ + "$optic": { + "ns": "op", + "fn": "operators", + "args": [ + { + "ns": "op", + "fn": "from-view", + "args": [ + "opticFunctionalTest", + "detail", + "myDetail", + null + ] + }, + { + "ns": "op", + "fn": "join-inner", + "args": [ + { + "ns": "op", + "fn": "operators", + "args": [ + { + "ns": "op", + "fn": "from-view", + "args": [ + "opticFunctionalTest", + "master", + "myMaster", + null + ] + } + ] + }, + [ + { + "ns": "op", + "fn": "on", + "args": [ + { + "ns": "op", + "fn": "viewCol", + "args": [ + "myDetail", + "masterId" + ] + }, + { + "ns": "op", + "fn": "viewCol", + "args": [ + "myMaster", + "id" + ] + } + ] + }, + { + "ns": "op", + "fn": "on", + "args": [ + { + "ns": "op", + "fn": "viewCol", + "args": [ + "myMaster", + "id" + ] + }, + { + "ns": "op", + "fn": "viewCol", + "args": [ + "myDetail", + "id" + ] + } + ] + } + ], + null + ] + }, + { + "ns": "op", + "fn": "order-by", + "args": [ + [ + { + "ns": "op", + "fn": "desc", + "args": [ + { + "ns": "op", + "fn": "viewCol", + "args": [ + "myDetail", + "name" + ] + } + ] + } + ] + ] + }, + { + "ns": "op", + "fn": "offset-limit", + "args": [ + 1, + 100 + ] + } + ] + } +} \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/sparql/test/collections.properties b/test-complete-app/src/main/ml-data/optic/sparql/test/collections.properties new file mode 100644 index 00000000..295f8fa8 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/sparql/test/collections.properties @@ -0,0 +1 @@ +*=/optic/plan/test \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/sparql/test/dedupdoc1.xml b/test-complete-app/src/main/ml-data/optic/sparql/test/dedupdoc1.xml new file mode 100644 index 00000000..76234f73 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/sparql/test/dedupdoc1.xml @@ -0,0 +1,15 @@ + + world + + + http://marklogicsparql.com/id#5555 + http://marklogicsparql.com/addressbook#firstName + Jim + + + http://marklogicsparql.com/id#5555 + http://marklogicsparql.com/addressbook#firstName + Jim + + + \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/triple/test/collections.properties b/test-complete-app/src/main/ml-data/optic/triple/test/collections.properties new file mode 100644 index 00000000..91f8d0dc --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/triple/test/collections.properties @@ -0,0 +1,5 @@ +playerTripleSet.xml=/optic/player/triple/test +duplicatePlayerTripleSet.xml=/optic/player/triple/test +otherPlayerTripleSet.xml=/optic/other/player/triple/test +teamTripleSet.xml=/optic/team/triple/test +duplicateTeamTripleSet.xml=/optic/team/triple/test diff --git a/test-complete-app/src/main/ml-data/optic/triple/test/duplicatePlayerTripleSet.xml b/test-complete-app/src/main/ml-data/optic/triple/test/duplicatePlayerTripleSet.xml new file mode 100755 index 00000000..c7345106 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/triple/test/duplicatePlayerTripleSet.xml @@ -0,0 +1,376 @@ + + + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/name + John Doe + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/description + Describing John Doe + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/dob + 1981-05-04 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/eff + 25.45 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/age + 31 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/name + Bob Brian + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/description + Describing Bob Brian + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/position + Outfielder + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/dob + 1999-01-15 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/eff + 78.45 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/age + 23 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/003 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/name + Josh Ream + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/description + Describing Josh Ream + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/dob + 1985-11-30 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/eff + 53.10 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/name + Pat Crenshaw + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/description + Describing Pat Crenshaw + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/position + Catcher + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/dob + 1998-09-01 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/eff + 33.89 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/age + 25 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/name + Pedro Barrozo + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/description + Describing Pedro Barrozo + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/position + Midfielder + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/dob + 1991-12-09 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/eff + 41.65 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/age + 19 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/002 + + + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/name + Aoki Yamada + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/description + Describing Aoki Yamada + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/position + First Base + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/dob + 1987-03-15 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/eff + 55.2 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/age + 34 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/003 + + + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/name + Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/description + Describing Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/dob + 1984-11-01 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/eff + 32.89 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/name + Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/description + Describing Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/dob + 1984-11-01 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/eff + 32.89 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/name + Juan Leone + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/description + Describing Juan Leone + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/position + Second Base + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/dob + 1993-08-17 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/eff + 29.77 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/age + 27 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + + diff --git a/test-complete-app/src/main/ml-data/optic/triple/test/duplicateTeamTripleSet.xml b/test-complete-app/src/main/ml-data/optic/triple/test/duplicateTeamTripleSet.xml new file mode 100755 index 00000000..9e18ba09 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/triple/test/duplicateTeamTripleSet.xml @@ -0,0 +1,56 @@ + + + + + http://marklogic.com/mlb/team/id/001 + http://marklogic.com/mlb/team/name + Giants + + + http://marklogic.com/mlb/team/id/001 + http://marklogic.com/mlb/team/city + San Francisco + + + http://marklogic.com/mlb/team/id/002 + http://marklogic.com/mlb/team/name + Athletics + + + http://marklogic.com/mlb/team/id/002 + http://marklogic.com/mlb/team/city + Oakland + + + http://marklogic.com/mlb/team/id/003 + http://marklogic.com/mlb/team/name + Padres + + + http://marklogic.com/mlb/team/id/003 + http://marklogic.com/mlb/team/city + San Diego + + + http://marklogic.com/mlb/team/id/004 + http://marklogic.com/mlb/team/name + Yankees + + + http://marklogic.com/mlb/team/id/004 + http://marklogic.com/mlb/team/city + New York + + + http://marklogic.com/mlb/team/id/005 + http://marklogic.com/mlb/team/name + Mariners + + + http://marklogic.com/mlb/team/id/005 + http://marklogic.com/mlb/team/city + Seattle + + + + \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/triple/test/otherPlayerTripleSet.xml b/test-complete-app/src/main/ml-data/optic/triple/test/otherPlayerTripleSet.xml new file mode 100755 index 00000000..c7345106 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/triple/test/otherPlayerTripleSet.xml @@ -0,0 +1,376 @@ + + + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/name + John Doe + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/description + Describing John Doe + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/dob + 1981-05-04 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/eff + 25.45 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/age + 31 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/name + Bob Brian + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/description + Describing Bob Brian + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/position + Outfielder + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/dob + 1999-01-15 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/eff + 78.45 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/age + 23 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/003 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/name + Josh Ream + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/description + Describing Josh Ream + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/dob + 1985-11-30 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/eff + 53.10 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/name + Pat Crenshaw + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/description + Describing Pat Crenshaw + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/position + Catcher + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/dob + 1998-09-01 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/eff + 33.89 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/age + 25 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/name + Pedro Barrozo + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/description + Describing Pedro Barrozo + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/position + Midfielder + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/dob + 1991-12-09 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/eff + 41.65 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/age + 19 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/002 + + + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/name + Aoki Yamada + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/description + Describing Aoki Yamada + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/position + First Base + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/dob + 1987-03-15 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/eff + 55.2 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/age + 34 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/003 + + + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/name + Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/description + Describing Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/dob + 1984-11-01 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/eff + 32.89 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/name + Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/description + Describing Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/dob + 1984-11-01 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/eff + 32.89 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/name + Juan Leone + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/description + Describing Juan Leone + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/position + Second Base + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/dob + 1993-08-17 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/eff + 29.77 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/age + 27 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + + diff --git a/test-complete-app/src/main/ml-data/optic/triple/test/playerTripleSet.xml b/test-complete-app/src/main/ml-data/optic/triple/test/playerTripleSet.xml new file mode 100755 index 00000000..c7345106 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/triple/test/playerTripleSet.xml @@ -0,0 +1,376 @@ + + + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/name + John Doe + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/description + Describing John Doe + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/dob + 1981-05-04 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/eff + 25.45 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/age + 31 + + + http://marklogic.com/baseball/id#001 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/name + Bob Brian + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/description + Describing Bob Brian + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/position + Outfielder + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/dob + 1999-01-15 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/eff + 78.45 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/age + 23 + + + http://marklogic.com/baseball/id#002 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/003 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/name + Josh Ream + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/description + Describing Josh Ream + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/dob + 1985-11-30 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/eff + 53.10 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#003 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/name + Pat Crenshaw + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/description + Describing Pat Crenshaw + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/position + Catcher + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/dob + 1998-09-01 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/eff + 33.89 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/age + 25 + + + http://marklogic.com/baseball/id#004 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/name + Pedro Barrozo + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/description + Describing Pedro Barrozo + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/position + Midfielder + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/dob + 1991-12-09 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/eff + 41.65 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/age + 19 + + + http://marklogic.com/baseball/id#005 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/002 + + + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/name + Aoki Yamada + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/description + Describing Aoki Yamada + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/position + First Base + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/dob + 1987-03-15 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/eff + 55.2 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/age + 34 + + + http://marklogic.com/baseball/id#006 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/003 + + + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/name + Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/description + Describing Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/dob + 1984-11-01 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/eff + 32.89 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/name + Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/description + Describing Matt Rose + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/position + Pitcher + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/dob + 1984-11-01 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/eff + 32.89 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/age + 29 + + + http://marklogic.com/baseball/id#007 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/005 + + + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/name + Juan Leone + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/type + http://marklogic.com/baseball/players/bbtype/Dataset + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/description + Describing Juan Leone + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/position + Second Base + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/dob + 1993-08-17 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/eff + 29.77 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/age + 27 + + + http://marklogic.com/baseball/id#008 + http://marklogic.com/baseball/players/team + http://marklogic.com/mlb/team/id/001 + + + + diff --git a/test-complete-app/src/main/ml-data/optic/triple/test/teamTripleSet.xml b/test-complete-app/src/main/ml-data/optic/triple/test/teamTripleSet.xml new file mode 100755 index 00000000..9e18ba09 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/triple/test/teamTripleSet.xml @@ -0,0 +1,56 @@ + + + + + http://marklogic.com/mlb/team/id/001 + http://marklogic.com/mlb/team/name + Giants + + + http://marklogic.com/mlb/team/id/001 + http://marklogic.com/mlb/team/city + San Francisco + + + http://marklogic.com/mlb/team/id/002 + http://marklogic.com/mlb/team/name + Athletics + + + http://marklogic.com/mlb/team/id/002 + http://marklogic.com/mlb/team/city + Oakland + + + http://marklogic.com/mlb/team/id/003 + http://marklogic.com/mlb/team/name + Padres + + + http://marklogic.com/mlb/team/id/003 + http://marklogic.com/mlb/team/city + San Diego + + + http://marklogic.com/mlb/team/id/004 + http://marklogic.com/mlb/team/name + Yankees + + + http://marklogic.com/mlb/team/id/004 + http://marklogic.com/mlb/team/city + New York + + + http://marklogic.com/mlb/team/id/005 + http://marklogic.com/mlb/team/name + Mariners + + + http://marklogic.com/mlb/team/id/005 + http://marklogic.com/mlb/team/city + Seattle + + + + \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/view/test/collections.properties b/test-complete-app/src/main/ml-data/optic/view/test/collections.properties new file mode 100644 index 00000000..24e46cdc --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/view/test/collections.properties @@ -0,0 +1 @@ +*=/optic/view/test \ No newline at end of file diff --git a/test-complete-app/src/main/ml-data/optic/view/test/masterDetail.xml b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail.xml new file mode 100755 index 00000000..412f27e8 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail.xml @@ -0,0 +1,59 @@ + + + + 1 + Master 1 + 2015-12-01 + + + 2 + Master 2 + 2015-12-02 + + + + + 1 + Detail 1 + 1 + 10.01 + blue + + + 2 + Detail 2 + 2 + 20.02 + blue + + + 3 + Detail 3 + 1 + 30.03 + blue + + + 4 + Detail 4 + 2 + 40.04 + green + + + 5 + Detail 5 + 1 + 50.05 + green + + + 6 + Detail 6 + 2 + 60.06 + green + + + + diff --git a/test-complete-app/src/main/ml-data/optic/view/test/masterDetail2.json b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail2.json new file mode 100755 index 00000000..c11cccf2 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail2.json @@ -0,0 +1,64 @@ +{ + "sets2": { + "masterSet": { + "master": [ + { + "id": "3", + "name": "Master 3", + "date": "2016-03-01" + }, + { + "id": "4", + "name": "Master 4", + "date": "2016-05-25" + } + ] + }, + "detailSet": { + "detail": [ + { + "id": "7", + "name": "Detail 7", + "masterId": "3", + "amount": "64.33", + "color": "red" + }, + { + "id": "8", + "name": "Detail 8", + "masterId": "4", + "amount": "89.36", + "color": "blue" + }, + { + "id": "9", + "name": "Detail 9", + "masterId": "1", + "amount": "72.90", + "color": "yellow" + }, + { + "id": "10", + "name": "Detail 10", + "masterId": "2", + "amount": "30.26", + "color": "black" + }, + { + "id": "11", + "name": "Detail 11", + "masterId": "3", + "amount": "82.04", + "color": "green" + }, + { + "id": "12", + "name": "Detail 12", + "masterId": "1", + "amount": "25.86", + "color": "red" + } + ] + } + } +} diff --git a/test-complete-app/src/main/ml-data/optic/view/test/masterDetail3.json b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail3.json new file mode 100755 index 00000000..cac14f0b --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail3.json @@ -0,0 +1,64 @@ +{ + "sets3": { + "masterSet3": { + "master3": [ + { + "id": "3", + "name": "Master 3", + "date": "2016-03-01" + }, + { + "id": "4", + "name": "Master 4", + "date": "2016-05-25" + } + ] + }, + "detailSet3": { + "detail3": [ + { + "id": "7", + "name": "Detail 7", + "masterId": "3", + "amount": "64.33", + "color": "red" + }, + { + "id": "8", + "name": "Detail 8", + "masterId": "4", + "amount": "89.36", + "color": "blue" + }, + { + "id": "9", + "name": "Detail 9", + "masterId": "1", + "amount": "72.90", + "color": "yellow" + }, + { + "id": "10", + "name": "Detail 10", + "masterId": "2", + "amount": "30.26", + "color": "black" + }, + { + "id": "11", + "name": "Detail 11", + "masterId": "3", + "amount": "82.04", + "color": "green" + }, + { + "id": "12", + "name": "Detail 12", + "masterId": "1", + "amount": "25.86", + "color": "red" + } + ] + } + } +} diff --git a/test-complete-app/src/main/ml-data/optic/view/test/masterDetail4.json b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail4.json new file mode 100755 index 00000000..3650a387 --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail4.json @@ -0,0 +1,43 @@ +{ + "sets4": { + "masterSet4": { + "master4": [ + { + "id": "100", + "name": "Master 100", + "date": "2016-03-11" + }, + { + "id": "200", + "name": "Master 200", + "date": "2016-04-02" + } + ] + }, + "detailSet4": { + "detail4": [ + { + "id": "100", + "name": "Detail 100", + "masterId": "100", + "amount": "64.33", + "color": "red" + }, + { + "id": "200", + "name": "Detail 200", + "masterId": "200", + "amount": "89.36", + "color": "blue" + }, + { + "id": "300", + "name": "Detail 300", + "masterId": "200", + "amount": "72.90", + "color": "yellow" + } + ] + } + } +} diff --git a/test-complete-app/src/main/ml-data/optic/view/test/masterDetail5.json b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail5.json new file mode 100755 index 00000000..be57f67e --- /dev/null +++ b/test-complete-app/src/main/ml-data/optic/view/test/masterDetail5.json @@ -0,0 +1,29 @@ +{ + "sets4": { + "detailSet4": { + "detail4": [ + { + "id": "400", + "name": "Detail 400", + "masterId": "200", + "amount": "164.33", + "color": "purple" + }, + { + "id": "500", + "name": "Detail 500", + "masterId": "100", + "amount": "189.36", + "color": "gold" + }, + { + "id": "600", + "name": "Detail 600", + "masterId": "100", + "amount": "172.90", + "color": "white" + } + ] + } + } +} diff --git a/test-complete-app/src/main/ml-modules/root/optic/test/mapperReducer.sjs b/test-complete-app/src/main/ml-modules/root/optic/test/mapperReducer.sjs new file mode 100644 index 00000000..79978ad1 --- /dev/null +++ b/test-complete-app/src/main/ml-modules/root/optic/test/mapperReducer.sjs @@ -0,0 +1,80 @@ +/* +* Copyright (c) 2015-2025 Progress Software Corporation and/or its subsidiaries or affiliates. All Rights Reserved. +*/ +'use strict'; + +function arrayMapper(row) { + const result = row.concat(); + result.push((typeof result[0] === 'string') ? 'seconds' : + fn.floor(fn.secondsFromDateTime(fn.currentDateTime())) + ); + return result; +} + +function colorIdMapper(row) { + const result = row; + switch(result.myColorId) { + case 1: + result.myColorId = 'RED'; + break; + case 2: + result.myColorId = 'BLUE'; + break; + case 3: + result.myColorId = 'YELLOW'; + break; + case 4: + result.myColorId = 'BLACK'; + break; + default: + result.myColorId = 'NO COLOR'; + } + return result; +} + +function arrayReducer(previous, row) { + const val = (previous === void 0) ? 0 : previous + row[0]; + return val; +} + +function fibReducer(previous, row) { + const i = Array.isArray(previous) ? previous.length : 0; + const result = row; + result.i = i; + switch(i) { + case 0: + result.fib = 0; + break; + case 1: + result.fib = 1; + break; + default: + result.fib = previous[i - 2].fib + previous[i - 1].fib; + break; + } + if (previous === void 0) { + previous = [result]; + } else { + previous.push(result); + } + return previous; +} + +function ageMapper(row) { + const result = row; + if(result.player_age < 21) + result.player_age = 'rookie'; + else if(result.player_age > 21 && result.player_age < 30) + result.player_age = 'premium'; + else + result.player_age = 'veteran'; + return result; +} + +module.exports = { + arrayMapper: arrayMapper, + colorIdMapper: colorIdMapper, + ageMapper: ageMapper, + arrayReducer: arrayReducer, + fibReducer: fibReducer +}; diff --git a/test-complete-app/src/main/ml-schemas/permissions.properties b/test-complete-app/src/main/ml-schemas/permissions.properties new file mode 100644 index 00000000..86366e36 --- /dev/null +++ b/test-complete-app/src/main/ml-schemas/permissions.properties @@ -0,0 +1 @@ +*=app-user,read,app-user,execute,app-builder,read,app-builder,execute,rest-reader,read,rest-reader,execute,rest-reader,update,rest-admin,read,rest-admin,execute,rest-admin,update,rest-writer,read,rest-writer,execute,rest-writer,update diff --git a/test-complete-app/src/main/ml-schemas/tde/exportingRows.tdex b/test-complete-app/src/main/ml-schemas/tde/exportingRows.tdex new file mode 100644 index 00000000..f83ff6b0 --- /dev/null +++ b/test-complete-app/src/main/ml-schemas/tde/exportingRows.tdex @@ -0,0 +1,35 @@ + + diff --git a/test-complete-app/src/main/ml-schemas/tde/masterDetail.tdex b/test-complete-app/src/main/ml-schemas/tde/masterDetail.tdex new file mode 100755 index 00000000..4f479c01 --- /dev/null +++ b/test-complete-app/src/main/ml-schemas/tde/masterDetail.tdex @@ -0,0 +1,35 @@ + diff --git a/test-complete-app/src/main/ml-schemas/tde/masterDetail2.tdej b/test-complete-app/src/main/ml-schemas/tde/masterDetail2.tdej new file mode 100755 index 00000000..40463213 --- /dev/null +++ b/test-complete-app/src/main/ml-schemas/tde/masterDetail2.tdej @@ -0,0 +1,53 @@ +{ + "template": { + "context": "/sets2", + "templates": [{ + "context": "masterSet/master", + "rows": [{ + "schemaName": "opticFunctionalTest2", + "viewName": "master", + "columns": [{ + "name": "id", + "scalarType": "int", + "val": "id" + }, { + "name": "name", + "scalarType": "string", + "val": "name" + }, { + "name": "date", + "scalarType": "date", + "val": "date" + }] + }] + }, { + "context": "detailSet/detail", + "rows": [{ + "schemaName": "opticFunctionalTest2", + "viewName": "detail", + "columns": [{ + "name": "id", + "scalarType": "int", + "val": "id" + }, { + "name": "name", + "scalarType": "string", + "val": "name" + }, { + "name": "masterId", + "scalarType": "int", + "val": "masterId" + }, { + "name": "amount", + "scalarType": "double", + "val": "amount" + }, { + "name": "color", + "scalarType": "string", + "val": "color" + }] + }] + }] + } +} + diff --git a/test-complete-app/src/main/ml-schemas/tde/masterDetail3.tdej b/test-complete-app/src/main/ml-schemas/tde/masterDetail3.tdej new file mode 100755 index 00000000..d702b049 --- /dev/null +++ b/test-complete-app/src/main/ml-schemas/tde/masterDetail3.tdej @@ -0,0 +1,53 @@ +{ + "template": { + "context": "/sets3", + "templates": [{ + "context": "masterSet3/master3", + "rows": [{ + "schemaName": "opticFunctionalTest3", + "viewName": "master3", + "columns": [{ + "name": "id", + "scalarType": "int", + "val": "id" + }, { + "name": "name", + "scalarType": "string", + "val": "name" + }, { + "name": "date", + "scalarType": "date", + "val": "date" + }] + }] + }, { + "context": "detailSet3/detail3", + "rows": [{ + "schemaName": "opticFunctionalTest3", + "viewName": "detail3", + "columns": [{ + "name": "id", + "scalarType": "int", + "val": "id" + }, { + "name": "name", + "scalarType": "string", + "val": "name" + }, { + "name": "masterId", + "scalarType": "int", + "val": "masterId" + }, { + "name": "amount", + "scalarType": "double", + "val": "amount" + }, { + "name": "color", + "scalarType": "string", + "val": "color" + }] + }] + }] + } +} + diff --git a/test-complete-app/src/main/ml-schemas/tde/masterDetail4.tdej b/test-complete-app/src/main/ml-schemas/tde/masterDetail4.tdej new file mode 100755 index 00000000..7d026ce4 --- /dev/null +++ b/test-complete-app/src/main/ml-schemas/tde/masterDetail4.tdej @@ -0,0 +1,53 @@ +{ + "template": { + "context": "/sets4", + "templates": [{ + "context": "masterSet4/master4", + "rows": [{ + "schemaName": "opticFunctionalTest4", + "viewName": "master4", + "columns": [{ + "name": "id", + "scalarType": "int", + "val": "id" + }, { + "name": "name", + "scalarType": "string", + "val": "name" + }, { + "name": "date", + "scalarType": "date", + "val": "date" + }] + }] + }, { + "context": "detailSet4/detail4", + "rows": [{ + "schemaName": "opticFunctionalTest4", + "viewName": "detail4", + "columns": [{ + "name": "id", + "scalarType": "int", + "val": "id" + }, { + "name": "name", + "scalarType": "string", + "val": "name" + }, { + "name": "masterId", + "scalarType": "int", + "val": "masterId" + }, { + "name": "amount", + "scalarType": "double", + "val": "amount" + }, { + "name": "color", + "scalarType": "string", + "val": "color" + }] + }] + }] + } +} + diff --git a/test-complete-app/src/main/turtle/companies/companies_100.ttl b/test-complete-app/src/main/turtle/companies/companies_100.ttl new file mode 100755 index 00000000..605112c7 --- /dev/null +++ b/test-complete-app/src/main/turtle/companies/companies_100.ttl @@ -0,0 +1,1804 @@ +@prefix demor: . +@prefix demov: . +@prefix vcard: . + + +##company 1 +demor:COMPANY001 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 12000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "San Jose"; + vcard:region "Texas"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 2 +demor:COMPANY002 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "San Jose"; + vcard:region "New York"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 3 +demor:COMPANY003 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 1000000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 4 +demor:COMPANY004 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 8; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Menlo Park"; + vcard:region "Arizona"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 5 +demor:COMPANY005 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 347852766; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Menlo Park"; + vcard:region "Texas"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 6 +demor:COMPANY006 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 2300450; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "San Jose"; + vcard:region "North Dakota"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 7 +demor:COMPANY007 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 8; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Menlo Park"; + vcard:region "Nevada"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 8 +demor:COMPANY008 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 347852766; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "North Carolina"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 9 +demor:COMPANY009 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 300000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Atherton"; + vcard:region "Texas"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 10 +demor:COMPANY010 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 15000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Menlo Park"; + vcard:region "New York"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 11 +demor:COMPANY011 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 1000000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 12 +demor:COMPANY012 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 347852766; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Atherton"; + vcard:region "North Carolina"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 13 +demor:COMPANY013 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 1000000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "North Carolina"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 14 +demor:COMPANY014 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 347852766; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "North Dakota"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 15 +demor:COMPANY015 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 12000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Menlo Park"; + vcard:region "North Dakota"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 16 +demor:COMPANY016 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 15000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "San Jose"; + vcard:region "Texas"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 17 +demor:COMPANY017 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 100000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Redwood City"; + vcard:region "Texas"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 18 +demor:COMPANY018 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 1000000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "North Dakota"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 19 +demor:COMPANY019 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 12000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 20 +demor:COMPANY020 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 10000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Atherton"; + vcard:region "Arizona"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 21 +demor:COMPANY021 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 15000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Redwood City"; + vcard:region "New York"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 22 +demor:COMPANY022 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Atherton"; + vcard:region "North Dakota"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 23 +demor:COMPANY023 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 15000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Menlo Park"; + vcard:region "Arizona"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 24 +demor:COMPANY024 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 12000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Menlo Park"; + vcard:region "North Dakota"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 25 +demor:COMPANY025 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 8; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 26 +demor:COMPANY026 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 10000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "San Jose"; + vcard:region "North Carolina"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 27 +demor:COMPANY027 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 15000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Atherton"; + vcard:region "North Carolina"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 28 +demor:COMPANY028 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 2300450; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Atherton"; + vcard:region "Arizona"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 29 +demor:COMPANY029 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 347852766; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Atherton"; + vcard:region "Nevada"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 30 +demor:COMPANY030 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 15000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 31 +demor:COMPANY031 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "Arizona"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 32 +demor:COMPANY032 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 347852766; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 33 +demor:COMPANY033 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 8; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "Arizona"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 34 +demor:COMPANY034 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 15000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "Nevada"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 35 +demor:COMPANY035 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 10000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Menlo Park"; + vcard:region "Nevada"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 36 +demor:COMPANY036 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 300000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 37 +demor:COMPANY037 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 10000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Atherton"; + vcard:region "Arizona"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 38 +demor:COMPANY038 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 300000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Atherton"; + vcard:region "Texas"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 39 +demor:COMPANY039 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "Nevada"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 40 +demor:COMPANY040 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 15000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 41 +demor:COMPANY041 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 300000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "New York"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 42 +demor:COMPANY042 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 10000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Atherton"; + vcard:region "Nevada"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 43 +demor:COMPANY043 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 1000000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "San Jose"; + vcard:region "California"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 44 +demor:COMPANY044 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 10000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Menlo Park"; + vcard:region "North Dakota"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 45 +demor:COMPANY045 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 15000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Redwood City"; + vcard:region "Arizona"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 46 +demor:COMPANY046 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 300000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Atherton"; + vcard:region "California"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 47 +demor:COMPANY047 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 100000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Redwood City"; + vcard:region "New York"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 48 +demor:COMPANY048 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 100000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 49 +demor:COMPANY049 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 347852766; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Redwood City"; + vcard:region "North Carolina"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 50 +demor:COMPANY050 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 347852766; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "San Jose"; + vcard:region "Texas"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 51 +demor:COMPANY051 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Menlo Park"; + vcard:region "Texas"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 52 +demor:COMPANY052 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 12000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Menlo Park"; + vcard:region "Arizona"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 53 +demor:COMPANY053 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 347852766; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Redwood City"; + vcard:region "North Dakota"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 54 +demor:COMPANY054 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 10000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "North Dakota"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 55 +demor:COMPANY055 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 15000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "North Dakota"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 56 +demor:COMPANY056 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 347852766; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Menlo Park"; + vcard:region "New York"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 57 +demor:COMPANY057 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 10000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "San Jose"; + vcard:region "Texas"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 58 +demor:COMPANY058 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 1000000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Redwood City"; + vcard:region "New York"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 59 +demor:COMPANY059 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 15000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "San Jose"; + vcard:region "California"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 60 +demor:COMPANY060 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 100000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Redwood City"; + vcard:region "New York"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 61 +demor:COMPANY061 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 10000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "Texas"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 62 +demor:COMPANY062 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 15000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "Nevada"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 63 +demor:COMPANY063 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 100000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "New York"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 64 +demor:COMPANY064 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 12000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "San Jose"; + vcard:region "North Dakota"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 65 +demor:COMPANY065 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 2300450; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Atherton"; + vcard:region "North Carolina"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 66 +demor:COMPANY066 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 10000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Atherton"; + vcard:region "Nevada"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 67 +demor:COMPANY067 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 8; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Redwood City"; + vcard:region "North Dakota"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 68 +demor:COMPANY068 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 300000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Atherton"; + vcard:region "Texas"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 69 +demor:COMPANY069 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 12000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Redwood City"; + vcard:region "Arizona"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 70 +demor:COMPANY070 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 2300450; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Menlo Park"; + vcard:region "New York"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 71 +demor:COMPANY071 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 8; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "North Dakota"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 72 +demor:COMPANY072 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 1000000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 73 +demor:COMPANY073 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 1000000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "Texas"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 74 +demor:COMPANY074 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 15000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 75 +demor:COMPANY075 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 10000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "Nevada"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 76 +demor:COMPANY076 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 300000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Atherton"; + vcard:region "New York"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 77 +demor:COMPANY077 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 12000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Japan"; + vcard:locality "Redwood City"; + vcard:region "Nevada"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 78 +demor:COMPANY078 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 8; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 79 +demor:COMPANY079 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 1000000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "San Jose"; + vcard:region "Texas"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 80 +demor:COMPANY080 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 15000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Redwood City"; + vcard:region "California"; + vcard:postal-code "22222"; + vcard:street-address "1 Infinite Loop" ]. + +##company 81 +demor:COMPANY081 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 347852766; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "China"; + vcard:locality "Menlo Park"; + vcard:region "Arizona"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 82 +demor:COMPANY082 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 15000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "San Jose"; + vcard:region "Texas"; + vcard:postal-code "66666"; + vcard:street-address "1 Infinite Loop" ]. + +##company 83 +demor:COMPANY083 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 84 +demor:COMPANY084 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "San Jose"; + vcard:region "California"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 85 +demor:COMPANY085 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 347852766; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Atherton"; + vcard:region "Texas"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 86 +demor:COMPANY086 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 1000000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "San Jose"; + vcard:region "New York"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 87 +demor:COMPANY087 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 10000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Atherton"; + vcard:region "California"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 88 +demor:COMPANY088 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 100000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 89 +demor:COMPANY089 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 100000000; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Redwood City"; + vcard:region "New York"; + vcard:postal-code "33333"; + vcard:street-address "1 Infinite Loop" ]. + +##company 90 +demor:COMPANY090 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 10000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CTO"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "San Jose"; + vcard:region "Arizona"; + vcard:postal-code "88888"; + vcard:street-address "1 Infinite Loop" ]. + +##company 91 +demor:COMPANY091 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 10000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "Italy"; + vcard:locality "Menlo Park"; + vcard:region "North Carolina"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 92 +demor:COMPANY092 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 100000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "President"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "New York"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 93 +demor:COMPANY093 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 12000000; + demov:employees 10500; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "Germany"; + vcard:locality "Menlo Park"; + vcard:region "North Carolina"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 94 +demor:COMPANY094 a vcard:Organization; + demov:listed "true"; + demov:industry "Financial Services"; + demov:sales 8; + demov:employees 12; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "Mary Hodges"; + ]; + vcard:hasAddress [ + vcard:country-name "UK"; + vcard:locality "Menlo Park"; + vcard:region "California"; + vcard:postal-code "44444"; + vcard:street-address "1 Infinite Loop" ]. + +##company 95 +demor:COMPANY095 a vcard:Organization; + demov:listed "true"; + demov:industry "Healthcare/Life Sciences"; + demov:sales 12000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Menlo Park"; + vcard:region "Nevada"; + vcard:postal-code "55555"; + vcard:street-address "1 Infinite Loop" ]. + +##company 96 +demor:COMPANY096 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 100000000; + demov:employees 256; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Redwood City"; + vcard:region "North Dakota"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 97 +demor:COMPANY097 a vcard:Organization; + demov:listed "true"; + demov:industry "Industrial Goods"; + demov:sales 347852766; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "India"; + vcard:locality "Redwood City"; + vcard:region "Nevada"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. + +##company 98 +demor:COMPANY098 a vcard:Organization; + demov:listed "true"; + demov:industry "Other"; + demov:sales 300000000; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CFO"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Menlo Park"; + vcard:region "Arizona"; + vcard:postal-code "11111"; + vcard:street-address "1 Infinite Loop" ]. + +##company 99 +demor:COMPANY099 a vcard:Organization; + demov:listed "true"; + demov:industry "Business/Consumer Service"; + demov:sales 300000000; + demov:employees 22647; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "CEO"; + vcard:hasEmail ; + vcard:fn "Joe Brown"; + ]; + vcard:hasAddress [ + vcard:country-name "USA"; + vcard:locality "Atherton"; + vcard:region "Arizona"; + vcard:postal-code "77777"; + vcard:street-address "1 Infinite Loop" ]. + +##company 100 +demor:COMPANY100 a vcard:Organization; + demov:listed "true"; + demov:industry "Retail/Wholesale"; + demov:sales 2300450; + demov:employees 9450; + demov:hasExecutive [ a vcard:Individual; + vcard:hasTitle "Director of IT"; + vcard:hasEmail ; + vcard:fn "John Smith"; + ]; + vcard:hasAddress [ + vcard:country-name "France"; + vcard:locality "Atherton"; + vcard:region "New York"; + vcard:postal-code "99999"; + vcard:street-address "1 Infinite Loop" ]. diff --git a/test-complete-app/src/main/turtle/people/people.ttl b/test-complete-app/src/main/turtle/people/people.ttl new file mode 100644 index 00000000..de6cf435 --- /dev/null +++ b/test-complete-app/src/main/turtle/people/people.ttl @@ -0,0 +1,70 @@ +@prefix foaf: . +@prefix ppl: . + +ppl:person1 foaf:knows ppl:person2 . +ppl:person1 foaf:knows ppl:person3 . +ppl:person1 foaf:knows ppl:person5 . +ppl:person1 foaf:knows ppl:person7 . + +ppl:person2 foaf:knows ppl:person11 . +ppl:person2 foaf:knows ppl:person3 . +ppl:person3 foaf:knows ppl:person13 . +ppl:person13 foaf:knows ppl:person17 . +ppl:person13 foaf:knows ppl:person19 . + +ppl:person4 foaf:knows ppl:person6 . +ppl:person6 foaf:knows ppl:person8 . +ppl:person8 foaf:knows ppl:person10 . +ppl:person10 foaf:knows ppl:person12 . +ppl:person12 foaf:knows ppl:person14 . +ppl:person14 foaf:knows ppl:person16 . +ppl:person16 foaf:knows ppl:person18 . +ppl:person18 foaf:knows ppl:person20 . + +ppl:person20 foaf:knows ppl:person20 . + +ppl:person9 foaf:knows ppl:person12 . +ppl:person12 foaf:knows ppl:person15 . +ppl:person15 foaf:knows ppl:person18 . +ppl:person18 foaf:knows ppl:person9 . + +ppl:person1 a ppl:Person ; + foaf:name "Person 1" . +ppl:person2 a ppl:Person ; + foaf:name "Person 2" . +ppl:person3 a ppl:Person ; + foaf:name "Person 3" . +ppl:person4 a ppl:Person ; + foaf:name "Person 4" . +ppl:person5 a ppl:Person ; + foaf:name "Person 5" . +ppl:person6 a ppl:Person ; + foaf:name "Person 6" . +ppl:person7 a ppl:Person ; + foaf:name "Person 7" . +ppl:person8 a ppl:Person ; + foaf:name "Person 8" . +ppl:person9 a ppl:Person ; + foaf:name "Person 9" . +ppl:person10 a ppl:Person ; + foaf:name "Person 10" . +ppl:person11 a ppl:Person ; + foaf:name "Person 11" . +ppl:person12 a ppl:Person ; + foaf:name "Person 12" . +ppl:person13 a ppl:Person ; + foaf:name "Person 13" . +ppl:person14 a ppl:Person ; + foaf:name "Person 14" . +ppl:person15 a ppl:Person ; + foaf:name "Person 15" . +ppl:person16 a ppl:Person ; + foaf:name "Person 16" . +ppl:person17 a ppl:Person ; + foaf:name "Person 17" . +ppl:person18 a ppl:Person ; + foaf:name "Person 18" . +ppl:person19 a ppl:Person ; + foaf:name "Person 19" . +ppl:person20 a ppl:Person ; + foaf:name "Person 20" . diff --git a/test-complete/nodejs-optic-generate-views.js b/test-complete/nodejs-optic-generate-views.js index fd1a3637..b597689b 100644 --- a/test-complete/nodejs-optic-generate-views.js +++ b/test-complete/nodejs-optic-generate-views.js @@ -27,8 +27,8 @@ const db = marklogic.createDatabaseClient( // Client to query schema database to verify view is stored // Make sure you have qbvuser user created. See XQuery script nodejs-optic-setup.xml of internal repo (SVN). -var dbModClient = marklogic.createDatabaseClient({ - database: dbName + 'Modules', +var dbSchemasClient = marklogic.createDatabaseClient({ + database: 'Schemas', host: connectdef.host, port: connectdef.port, user: 'qbvuser', @@ -76,14 +76,14 @@ describe('Nodejs Optic generate views test', function () { dbClient.rows.generateView(plan, 'InnerJoin', 'keymatch') .then(function (res) { //console.log(JSON.stringify(res, null, 2)); - dbModClient.documents.write({ + dbSchemasClient.documents.write({ uri: '/qbv-InnerJoin-keymatch.xml', collections: 'http://marklogic.com/xdmp/qbv', contentType: 'application/xml', content: res }). result(function (response) { - setTimeout(()=> done(), 10120); + setTimeout(()=> done(), 10120); }); }).catch(error=>done(error)); }); @@ -96,9 +96,9 @@ describe('Nodejs Optic generate views test', function () { .then(function (output) { //console.log(JSON.stringify(output, null, 2)); expect(output.rows.length).to.equal(6); - var row0 = output.rows[0]; - var row3 = output.rows[3]; - var row5 = output.rows[5]; + var row0 = output.rows[0]; + var row3 = output.rows[3]; + var row5 = output.rows[5]; expect(row0['InnerJoin.keymatch.amount'].value).to.equal(60.06); expect(row0['InnerJoin.keymatch.color'].value).to.equal('green'); @@ -130,7 +130,7 @@ describe('Nodejs Optic generate views test', function () { dbClient.rows.generateView(plan, 'sparql', 'groupmin') .then(function (res) { //console.log(JSON.stringify(res, null, 2)); - dbModClient.documents.write({ + dbSchemasClient.documents.write({ uri: '/qbv-sparql-groupmin.xml', collections: 'http://marklogic.com/xdmp/qbv', contentType: 'application/xml', @@ -187,7 +187,7 @@ describe('Nodejs Optic generate views test', function () { dbClient.rows.generateView(plan, 'lexicons', 'orderbyselect') .then(function (res) { //console.log(JSON.stringify(res, null, 2)); - dbModClient.documents.write({ + dbSchemasClient.documents.write({ uri: '/qbv-lexicons-orderby-select.xml', collections: 'http://marklogic.com/xdmp/qbv', contentType: 'application/xml',