http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/extension-es-sql.html ---------------------------------------------------------------------- diff --git a/content/java/develop/extension-es-sql.html b/content/java/develop/extension-es-sql.html index a277f1c..0603e3b 100644 --- a/content/java/develop/extension-es-sql.html +++ b/content/java/develop/extension-es-sql.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SQL EntityStore</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="extensions.html" title="Extensions" /><link rel="prev" href="extension-es-riak.html" title="Riak EntityStore" /><link rel="next" href="extension-index-elasticsearch.html" title="ElasticSearch Index/Query" /> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SQL EntityStore</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="extensions.html" title="Extensions" /><link rel="prev" href="extension-es-riak.html" title="Riak EntityStore" /><link rel="next" href="extension-cache-ehcache.html" title="Ehcache Cache" /> <!-- favicon --> @@ -66,9 +66,9 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-vs-orgjson.html">org.json ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-jackson.html">Jackson ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-stax.html">StAX ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-cache-ehcache.html">Ehcache Cache</a></span></dt><dt><span class="section"><a href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-geode. html">Geode EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-hazelcast.html">Hazelcast EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jdbm.html">JDBM EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-mongodb.html">MongoDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-preferences.html">Preferences EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-riak.html">Riak EntityStore</a></span></dt><dt><span class="section"><span xmlns="" href="extension-es-sql.html">SQL EntityStore</span></span></dt><dt><span class="section"><a href="extension-index-elasticsearch.html">ElasticSear ch Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRDF Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-metrics.html">Codahale Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section" title="SQL EntityStore"><div class="titlepage"><div><div><h3 class="title"><a id="extension-es-sql"></a>SQL EntityStore</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>EntityStore service backed by a SQL data base.</p><p>This extension fully leverage the <a class="xref" href="library-sql.html" title="SQL">SQL Library</a> meaning that you must use it to assemble your DataSource and that you -get <a class="link" href="library-circuitbreaker.html" title="Circuit Breaker">Circuit Breaker</a> and <a class="link" href="library-jmx.html" title="JMX">JMX</a> integration for free.</p><div class="tip" title="Tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>See the <a class="xref" href="sample-sql-support.html" title="SQL Support Sample">SQL Support Sample</a> that demonstrate combined use of <a class="xref" href="library-sql.html" title="SQL">SQL Library</a>, <a class="xref" href="extension-es-sql.html" title="SQL EntityStore"> SQL EntityStore</a> and -<a class="xref" href="extension-indexing-sql.html" title="SQL Index/Query">SQL Index/Query</a>.</p></div><p>The following SQL databases are supported:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href= "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-serialization-javaxjson.html">javax.json serialization</a></span></dt><dt><span class="section"><a href="extension-serialization-javaxxml.html">javax.xml serialization</a></span></dt><dt><span class="section"><a href="extension-serialization-messagepack.html">MessagePack serialization</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-geode.html">Geode EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-hazelcast.html">Hazelcast EntityStore</a ></span></dt><dt><span class="section"><a >href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-jdbm.html">JDBM >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-mongodb.html">MongoDB >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-preferences.html">Preferences >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-riak.html">Riak >EntityStore</a></span></dt><dt><span class="section"><span xmlns="" >href="extension-es-sql.html">SQL EntityStore</span></span></dt><dt><span >class="section"><a href="extension-cache-ehcache.html">Ehcache >Cache</a></span></dt><dt><span class="section"><a >href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span >class="se ction"><a href="extension-index-elasticsearch.html">ElasticSearch Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRDF Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-metrics.html">Codahale Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="extension-es-sql"></a>SQL EntityStore</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>E ntityStore service backed by a SQL database.</p><p>This extension fully leverage the <a class="xref" href="library-sql.html" title="SQL">SQL Library</a> meaning that you must use it to assemble your DataSource and that you +get <a class="link" href="library-circuitbreaker.html" title="Circuit Breaker">Circuit Breaker</a> and <a class="link" href="library-jmx.html" title="JMX">JMX</a> integration for free.</p><p>The database schema is managed using <a class="xref" href="">???</a>.</p><div class="tip" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Tip</h3><p>See the <a class="xref" href="sample-sql-support.html" title="SQL Support Sample">SQL Support Sample</a> that demonstrate combined use of <a class="xref" href="library-sql.html" title="SQL">SQL Library</a>, <a class="xref" href="extension-es-sql.html" title="SQL EntityStore"> SQL EntityStore</a> and +<a class="xref" href="extension-indexing-sql.html" title="SQL Index/Query">SQL Index/Query</a>.</p></div><p>The following SQL databases are supported:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> <a class="ulink" href="http://www.postgresql.org/" target="_top">PostgreSQL</a> </li><li class="listitem"> <a class="ulink" href="http://www.mysql.com/" target="_top">MySQL</a> and <a class="ulink" href="http://mariadb.org/" target="_top">MariaDB</a> @@ -79,34 +79,54 @@ get <a class="link" href="library-circuitbreaker.html" title="Circuit Breaker">C </li><li class="listitem"> <a class="ulink" href="http://db.apache.org/derby/" target="_top">Apache Derby</a> and <a class="ulink" href="http://www.oracle.com/technetwork/java/javadb/overview/index.htm" target="_top">Oracle JavaDB</a> </li></ul></div><p>Each entity state is stored as a single row so maximum number of entities is the maximum number of rows per table -supported by the underlying SQL database.</p><p>Implementations per database Vendor share a generic codebase but can override about everything SQL. As a consequence -they can have strong differences in terms of performance if they use vendor specific extensions.</p><div class="section" title="Configuration"><div class="titlepage"><div><div><h4 class="title"><a id="_configuration_14"></a>Configuration</h4></div></div></div><p>SQL EntityStore Configuration is optional and provides only one configuration property: <code class="literal">schemaName</code> defaulted to -<span class="emphasis"><em>polygene_es</em></span>. On SQL databases that donât support schemas this configuration property is simply ignored.</p><p>The assembly snippets below show the DataSource assembly alongside the SQL EntityStore assembly. Remember to configure -the DataSource properly, see <a class="xref" href="library-sql.html" title="SQL">SQL Library</a> and <a class="xref" href="howto-configure-service.html" title="Configure a Service">Configure a Service</a>.</p></div><div class="section" title="PostgreSQL"><div class="titlepage"><div><div><h4 class="title"><a id="_postgresql"></a>PostgreSQL</h4></div></div></div><p>Maximum number of entities is unlimited.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) +supported by the underlying SQL database.</p><div class="table"><a id="idm447725245360"></a><p class="title"><strong>Table 62. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.extensions</p></td><td align="left" valign="top"><p>org.apache.polygene.extension.entitystore-sql</p></td><td align="left" valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_configuration_12"></a>Configuration</h4></div></div></div><p>Here are the available configuration properties:</p><pre class="programlisting brush: java">public inte rface SQLMapEntityStoreConfiguration extends SQLConfiguration +{ + /** + * Name of the database schema to use. + * Ignored on SQL databases that don't support schemas. + */ + @UseDefaults( "POLYGENE_ES" ) + @Override + Property<String> schemaName(); + + /** + * Name of the entities table. + */ + @UseDefaults( "POLYGENE_ENTITIES" ) + Property<String> entityTableName(); + + /** + * Defines whether the database schema and table should be created if not already present. + */ + @UseDefaults( "true" ) + Property<Boolean> createIfMissing(); +} +</pre><p>The assembly snippets below show the DataSource assembly alongside the SQL EntityStore assembly. Remember to configure +the DataSource properly, see <a class="xref" href="library-sql.html" title="SQL">SQL Library</a> and <a class="xref" href="howto-configure-service.html" title="Configure a Service">Configure a Service</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_postgresql"></a>PostgreSQL</h4></div></div></div><p>Maximum number of entities is unlimited.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) throws AssemblyException { [...snip...] // DataSourceService - new DBCPDataSourceServiceAssembler(). - identifiedBy( "postgresql-datasource-service" ). - visibleIn( Visibility.module ). - withConfig( config, Visibility.layer ). - assemble( module ); + new DBCPDataSourceServiceAssembler() + .identifiedBy( "postgresql-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( config, Visibility.layer ) + .assemble( module ); // DataSource - new DataSourceAssembler(). - withDataSourceServiceIdentity( "postgresql-datasource-service" ). - identifiedBy( "postgresql-datasource" ). - visibleIn( Visibility.module ). - withCircuitBreaker(). - assemble( module ); + new DataSourceAssembler() + .withDataSourceServiceIdentity( "postgresql-datasource-service" ) + .identifiedBy( "postgresql-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); // SQL EntityStore - new PostgreSQLEntityStoreAssembler(). - visibleIn( Visibility.application ). - withConfig( config, Visibility.layer ). - assemble( module ); + new PostgreSQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( config, Visibility.layer ) + .assemble( module ); [...snip...] } @@ -133,31 +153,31 @@ the DataSource properly, see <a class="xref" href="library-sql.html" title="SQL" enabled=true driver=org.postgresql.Driver username=jdbc_test_login -password=password</pre></div><div class="section" title="MySQL and MariaDB"><div class="titlepage"><div><div><h4 class="title"><a id="_mysql_and_mariadb"></a>MySQL and MariaDB</h4></div></div></div><p>Maximum number of entities depends on the choosen storage engine.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) +password=password</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_mysql_and_mariadb"></a>MySQL and MariaDB</h4></div></div></div><p>Maximum number of entities depends on the choosen storage engine.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) throws AssemblyException { [...snip...] // DataSourceService - new DBCPDataSourceServiceAssembler(). - identifiedBy( "mysql-datasource-service" ). - visibleIn( Visibility.module ). - withConfig( config, Visibility.layer ). - assemble( module ); + new DBCPDataSourceServiceAssembler() + .identifiedBy( "mysql-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( config, Visibility.layer ) + .assemble( module ); // DataSource - new DataSourceAssembler(). - withDataSourceServiceIdentity( "mysql-datasource-service" ). - identifiedBy( "mysql-datasource" ). - visibleIn( Visibility.module ). - withCircuitBreaker(). - assemble( module ); + new DataSourceAssembler() + .withDataSourceServiceIdentity( "mysql-datasource-service" ) + .identifiedBy( "mysql-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); // SQL EntityStore - new MySQLEntityStoreAssembler(). - visibleIn( Visibility.application ). - withConfig( config, Visibility.layer ). - assemble( module ); + new MySQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( config, Visibility.layer ) + .assemble( module ); [...snip...] } @@ -182,35 +202,35 @@ password=password</pre></div><div class="section" title="MySQL and MariaDB"><div # enabled=true -#url=jdbc:mysql://localhost:3306/jdbc_test_db?profileSQL=true&useLegacyDatetimeCode=false&serverTimezone=UTC -driver=com.mysql.jdbc.Driver +#url=jdbc:mysql://localhost:3306/jdbc_test_db?profileSQL=false&useLegacyDatetimeCode=false&serverTimezone=UTC&nullCatalogMeansCurrent=true&nullNamePatternMatchesAll=true +driver=com.mysql.cj.jdbc.Driver username=root -password=</pre></div><div class="section" title="SQLite"><div class="titlepage"><div><div><h4 class="title"><a id="_sqlite"></a>SQLite</h4></div></div></div><p>Maximum number of entities is unlimited.</p><p>The <a class="ulink" href="http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC" target="_top">Xerial SQLite JDBC</a> driver is recommended. +password=</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_sqlite"></a>SQLite</h4></div></div></div><p>Maximum number of entities is unlimited.</p><p>The <a class="ulink" href="http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC" target="_top">Xerial SQLite JDBC</a> driver is recommended. It provides native support on Linux, Windows and MaxOSX, pure Java on other OSes.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) throws AssemblyException { [...snip...] // DataSourceService - new DBCPDataSourceServiceAssembler(). - identifiedBy( "sqlite-datasource-service" ). - visibleIn( Visibility.module ). - withConfig( config, Visibility.layer ). - assemble( module ); + new DBCPDataSourceServiceAssembler() + .identifiedBy( "sqlite-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( config, Visibility.layer ) + .assemble( module ); // DataSource - new DataSourceAssembler(). - withDataSourceServiceIdentity( "sqlite-datasource-service" ). - identifiedBy( "sqlite-datasource" ). - visibleIn( Visibility.module ). - withCircuitBreaker(). - assemble( module ); + new DataSourceAssembler() + .withDataSourceServiceIdentity( "sqlite-datasource-service" ) + .identifiedBy( "sqlite-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); // SQL EntityStore - new SQLiteEntityStoreAssembler(). - visibleIn( Visibility.application ). - withConfig( config, Visibility.layer ). - assemble( module ); + new SQLiteEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( config, Visibility.layer ) + .assemble( module ); } </pre><p>Sample DataSource configuration defaults:</p><pre class="programlisting brush: java"># # Licensed to the Apache Software Foundation (ASF) under one @@ -236,31 +256,31 @@ enabled=true url=jdbc:sqlite::memory: driver=org.sqlite.JDBC username= -password=</pre></div><div class="section" title="H2 Database Engine"><div class="titlepage"><div><div><h4 class="title"><a id="_h2_database_engine"></a>H2 Database Engine</h4></div></div></div><p>Maximum number of entities is 2^64.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) +password=</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_h2_database_engine"></a>H2 Database Engine</h4></div></div></div><p>Maximum number of entities is 2^64.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) throws AssemblyException { [...snip...] // DataSourceService - new DBCPDataSourceServiceAssembler(). - identifiedBy( "h2-datasource-service" ). - visibleIn( Visibility.module ). - withConfig( config, Visibility.layer ). - assemble( module ); + new DBCPDataSourceServiceAssembler() + .identifiedBy( "h2-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( config, Visibility.layer ) + .assemble( module ); // DataSource - new DataSourceAssembler(). - withDataSourceServiceIdentity( "h2-datasource-service" ). - identifiedBy( "h2-datasource" ). - visibleIn( Visibility.module ). - withCircuitBreaker(). - assemble( module ); + new DataSourceAssembler() + .withDataSourceServiceIdentity( "h2-datasource-service" ) + .identifiedBy( "h2-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); // SQL EntityStore - new H2SQLEntityStoreAssembler(). - visibleIn( Visibility.application ). - withConfig( config, Visibility.layer ). - assemble( module ); + new H2SQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( config, Visibility.layer ) + .assemble( module ); } </pre><p>Sample DataSource configuration defaults:</p><pre class="programlisting brush: java"># # Licensed to the Apache Software Foundation (ASF) under one @@ -286,31 +306,31 @@ enabled=true url=jdbc:h2:mem:test driver=org.h2.Driver username= -password=</pre></div><div class="section" title="Apache Derby and Oracle JavaDB"><div class="titlepage"><div><div><h4 class="title"><a id="_apache_derby_and_oracle_javadb"></a>Apache Derby and Oracle JavaDB</h4></div></div></div><p>Maximum number of entities is unlimited.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) +password=</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_apache_derby_and_oracle_javadb"></a>Apache Derby and Oracle JavaDB</h4></div></div></div><p>Maximum number of entities is unlimited.</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">public void assemble( ModuleAssembly module ) throws AssemblyException { [...snip...] // DataSourceService - new DBCPDataSourceServiceAssembler(). - identifiedBy( "derby-datasource-service" ). - visibleIn( Visibility.module ). - withConfig( config, Visibility.layer ). - assemble( module ); + new DBCPDataSourceServiceAssembler() + .identifiedBy( "derby-datasource-service" ) + .visibleIn( Visibility.module ) + .withConfig( config, Visibility.layer ) + .assemble( module ); // DataSource - new DataSourceAssembler(). - withDataSourceServiceIdentity( "derby-datasource-service" ). - identifiedBy( "derby-datasource" ). - visibleIn( Visibility.module ). - withCircuitBreaker(). - assemble( module ); + new DataSourceAssembler() + .withDataSourceServiceIdentity( "derby-datasource-service" ) + .identifiedBy( "derby-datasource" ) + .visibleIn( Visibility.module ) + .withCircuitBreaker() + .assemble( module ); // SQL EntityStore - new DerbySQLEntityStoreAssembler(). - visibleIn( Visibility.application ). - withConfig( config, Visibility.layer ). - assemble( module ); + new DerbySQLEntityStoreAssembler() + .visibleIn( Visibility.application ) + .withConfig( config, Visibility.layer ) + .assemble( module ); } </pre><p>Sample DataSource configuration defaults:</p><pre class="programlisting brush: java"># # Licensed to the Apache Software Foundation (ASF) under one
http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/extension-index-elasticsearch.html ---------------------------------------------------------------------- diff --git a/content/java/develop/extension-index-elasticsearch.html b/content/java/develop/extension-index-elasticsearch.html index 3b20faa..045493f 100644 --- a/content/java/develop/extension-index-elasticsearch.html +++ b/content/java/develop/extension-index-elasticsearch.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ElasticSearch Index/Query</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="extensions.html" title="Extensions" /><link rel="prev" href="extension-es-sql.html" title="SQL EntityStore" /><link rel="next" href="extension-index-rdf.html" title="OpenRDF Index/Query" /> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ElasticSearch Index/Query</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="extensions.html" title="Extensions" /><link rel="prev" href="extension-cache-memcache.html" title="Memcache Cache" /><link rel="next" href="extension-index-rdf.html" title="OpenRDF Index/Query" /> <!-- favicon --> @@ -66,8 +66,8 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-vs-orgjson.html">org.json ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-jackson.html">Jackson ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-stax.html">StAX ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-cache-ehcache.html">Ehcache Cache</a></span></dt><dt><span class="section"><a href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-geode. html">Geode EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-hazelcast.html">Hazelcast EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jdbm.html">JDBM EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-mongodb.html">MongoDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-preferences.html">Preferences EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-riak.html">Riak EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span class="section"><span xmlns="" href="extension-index-elasticsearch.html">ElasticSearch Index/Query</span></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRDF Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-metrics.html">Codahale Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section" title="ElasticSearch Index/Query"><div class="titlepage"><div><div><h3 class="title"><a id="extension-index-elasticsearch"></a>ElasticSearch Index/Query</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-beta">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-tests-good">tests</p><p>Index/Que ry services backed by <a class="ulink" href="http://www.elasticsearch.org/" target="_top">ElasticSearch</a> search engine built on top of -<a class="ulink" href="http://lucene.apache.org/" target="_top">Apache Lucene</a>.</p><div class="warning" title="Warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>ElasticSearch Index/Query do not support ComplexQueries from the Query API, ie. queries by "example value".</p></div><p>Three modes of operation are supported:</p><div class="itemizedlist"><ul class="itemizedlist"><li class="listitem"> + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href= "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-serialization-javaxjson.html">javax.json serialization</a></span></dt><dt><span class="section"><a href="extension-serialization-javaxxml.html">javax.xml serialization</a></span></dt><dt><span class="section"><a href="extension-serialization-messagepack.html">MessagePack serialization</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-geode.html">Geode EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-hazelcast.html">Hazelcast EntityStore</a ></span></dt><dt><span class="section"><a >href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-jdbm.html">JDBM >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-mongodb.html">MongoDB >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-preferences.html">Preferences >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-riak.html">Riak >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span >class="section"><a href="extension-cache-ehcache.html">Ehcache >Cache</a></span></dt><dt><span class="section"><a >href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span >class="section"><span xm lns="" href="extension-index-elasticsearch.html">ElasticSearch Index/Query</span></span></dt><dt><span class="section"><a href="extension-index-rdf.html">OpenRDF Index/Query</a></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-metrics.html">Codahale Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="extension-index-elasticsearch"></a>ElasticSearch Index/Query</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-beta">code</p><p class="devstatus-docs-good">docs</p><p class="devstatus-test s-good">tests</p><p>Index/Query services backed by <a class="ulink" href="http://www.elasticsearch.org/" target="_top">ElasticSearch</a> search engine built on top of +<a class="ulink" href="http://lucene.apache.org/" target="_top">Apache Lucene</a>.</p><div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Warning</h3><p>ElasticSearch Index/Query do not support ComplexQueries from the Query API, ie. queries by "example value".</p></div><p>Three modes of operation are supported:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> embedded local only filesystem based node ; </li><li class="listitem"> managed cluster client ; @@ -76,13 +76,12 @@ with a provided client. </li></ul></div><p>In any case, Lucene hard limits apply. See the <a class="ulink" href="https://lucene.apache.org/core/6_1_0/core/org/apache/lucene/codecs/lucene60/package-summary.html#Limitations" target="_top">Lucene File Format</a> documentation about maximum index size and document count. -Moreover, each field cannot be larger than 32766 bytes in its serialized form.</p><div class="section" title="Embedded on local file system"><div class="titlepage"><div><div><h4 class="title"><a id="_embedded_on_local_file_system"></a>Embedded on local file system</h4></div></div></div><p>Filesystem based ElasticSearch Index/Query service relies on the <a class="xref" href="library-fileconfig.html" title="FileConfig">FileConfig Library</a> to decide where it stores its +Moreover, each field cannot be larger than 32766 bytes in its serialized form.</p><div class="table"><a id="idm447725144704"></a><p class="title"><strong>Table 65. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.extensions</p></td><td align="left" valign="top"><p>org.apache.polygene.extension.indexing-elasticsearch</p></td><td align="left" valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_embedded_on_local_file_system"></a>Embedded on local file system</h4></div></div></div><p>Filesystem based ElasticSearch Index/Query service relies on the <a class="xref" href="library-fileconfig.html" title="FileConfig">FileConfig Library</a> to decide where it stores its index data, transaction logs etcâ¦</p><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new ESFilesystemIndexQueryAssembler() .withConfig( configModule, configVisibility ) .assemble( module ); -</pre><div class="section" title="Configuration"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_15"></a>Configuration</h5></div></div></div><div class="important" title="Important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>By default queries can only traverse Aggregated Associations, if you want to be able to traverse all +</pre><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_15"></a>Configuration</h5></div></div></div><div class="important" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Important</h3><p>By default queries can only traverse Aggregated Associations, if you want to be able to traverse all Associations set the <code class="literal">indexNonAggregatedAssociations</code> configuration property to <code class="literal">TRUE</code>.</p></div><p>Here are the configuration properties for the filesystem ElasticSearch Index/Query services:</p><pre class="programlisting brush: java">public interface ElasticSearchConfiguration - extends ConfigurationComposite { /** @@ -106,10 +105,10 @@ Associations set the <code class="literal">indexNonAggregatedAssociations</code> } </pre><p>All configuration properties are defaulted meaning that you can use ElasticSearch Index/Query service without -configuration.</p></div></div><div class="section" title="In an ElasticSearch cluster"><div class="titlepage"><div><div><h4 class="title"><a id="_in_an_elasticsearch_cluster"></a>In an ElasticSearch cluster</h4></div></div></div><div class="section" title="Assembly"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_21"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new ESClusterIndexQueryAssembler() +configuration.</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_in_an_elasticsearch_cluster"></a>In an ElasticSearch cluster</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_21"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new ESClusterIndexQueryAssembler() .withConfig( configModule, configVisibility ) .assemble( module ); -</pre></div><div class="section" title="Configuration"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_16"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the clustered ElasticSearch Index/Query service. Note that it inherits the +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_16"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the clustered ElasticSearch Index/Query service. Note that it inherits the properties defined in the filesystem configuration, see above.</p><pre class="programlisting brush: java">public interface ElasticSearchClusterConfiguration extends ElasticSearchConfiguration { @@ -148,16 +147,33 @@ properties defined in the filesystem configuration, see above.</p><pre class="pr } </pre><p>Again, all configuration properties are defaulted meaning that you can use ElasticSearch Index/Query service without -configuration.</p></div></div><div class="section" title="Using a provided client"><div class="titlepage"><div><div><h4 class="title"><a id="_using_a_provided_client"></a>Using a provided client</h4></div></div></div><div class="section" title="Assembly"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_22"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new ESClientIndexQueryAssembler( client ) +configuration.</p></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_using_a_provided_client"></a>Using a provided client</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_22"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new ESClientIndexQueryAssembler( client ) .withConfig( configModule, configVisibility ) .assemble( module ); -</pre></div><div class="section" title="Configuration"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_17"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the ElasticSearch Index/Query service using a provided client. -Note that the <code class="literal">clusterName</code> is ignored as this is managed by the client.</p><pre class="programlisting brush: java">Traceback (most recent call last): - File "/Users/paul/.asciidoc/filters/snippet/snippet.py", line 100, in <module> - for line in snippet(**configuration(indata)): - File "/Users/paul/.asciidoc/filters/snippet/snippet.py", line 83, in snippet - raise ValueError('Missing snippet for tag "' + tag + '" in file "' + source + '".') -ValueError: Missing snippet for tag "client" in file "extensions/indexing-elasticsearch/src/main/java/org/apache/polygene/index/elasticsearch/ElasticSearchConfiguration.java". +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_17"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the ElasticSearch Index/Query service using a provided client. +Note that the <code class="literal">clusterName</code> is ignored as this is managed by the client.</p><pre class="programlisting brush: java">public interface ElasticSearchConfiguration +{ + + /** + * Cluster name. + * Defaults to 'polygene_cluster'. + */ + @Optional Property<String> clusterName(); + + /** + * Index name. + * Defaults to 'polygene_index'. + */ + @Optional Property<String> index(); + + /** + * Set to true to index non aggregated associations as if they were aggregated. + * WARN: Don't use this if your domain model contains circular dependencies. + * Defaults to 'FALSE'. + */ + @UseDefaults Property<Boolean> indexNonAggregatedAssociations(); + +} </pre><p>Again, all configuration properties are defaulted meaning that you can use ElasticSearch Index/Query service without configuration.</p></div></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p> Copyright © 2015 The Apache Software Foundation, Licensed under the <a href="http://www.apache.org/licenses/" target="_blank">Apache License, Version 2.0</a>. http://git-wip-us.apache.org/repos/asf/polygene-website/blob/51abe7dd/content/java/develop/extension-index-rdf.html ---------------------------------------------------------------------- diff --git a/content/java/develop/extension-index-rdf.html b/content/java/develop/extension-index-rdf.html index 8afa2a5..0982141 100644 --- a/content/java/develop/extension-index-rdf.html +++ b/content/java/develop/extension-index-rdf.html @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>OpenRDF Index/Query</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.76.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="extensions.html" title="Extensions" /><link rel="prev" href="extension-index-elasticsearch.html" title="ElasticSearch Index/Query" /><link rel="next" href="extension-index-solr.html" title="Apache Solr Index/Query" /> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>OpenRDF Index/Query</title><link rel="stylesheet" type="text/css" href="css/style.css" /><meta name="generator" content="DocBook XSL Stylesheets V1.79.1" /><link rel="home" href="index.html" title="" /><link rel="up" href="extensions.html" title="Extensions" /><link rel="prev" href="extension-index-elasticsearch.html" title="ElasticSearch Index/Query" /><link rel="next" href="extension-index-solr.html" title="Apache Solr Index/Query" /> <!-- favicon --> @@ -66,9 +66,9 @@ })(); </script> - </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href="glossary.ht ml">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-vs-orgjson.html">org.json ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-jackson.html">Jackson ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-vs-stax.html">StAX ValueSerialization</a></span></dt><dt><span class="section"><a href="extension-cache-ehcache.html">Ehcache Cache</a></span></dt><dt><span class="section"><a href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-geode. html">Geode EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-hazelcast.html">Hazelcast EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-jdbm.html">JDBM EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-mongodb.html">MongoDB EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-preferences.html">Preferences EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-riak.html">Riak EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span class="section"><a href="extension-index-elasticsearch.html">ElasticSearch Index/Query< /a></span></dt><dt><span class="section"><span xmlns="" href="extension-index-rdf.html">OpenRDF Index/Query</span></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-metrics.html">Codahale Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section" title="OpenRDF Index/Query"><div class="titlepage"><div><div><h3 class="title"><a id="extension-index-rdf"></a>OpenRDF Index/Query</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-brief">docs</p><p class="devstatus-tests-good">tests</p><p>Index/Query services backed by <a class="ulink" href="http://www.openrdf.org/" target="_top">OpenRDF Sesame</a> framework for processing RDF data.</p><div class="section" title="In Memory"><div class="titlepage"><div><div><h4 class="title"><a id="_in_memory"></a>In Memory</h4></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new RdfMemoryStoreAssembler().assemble( module ); -</pre><p>No configuration needed.</p></div><div class="section" title="On Filesystem"><div class="titlepage"><div><div><h4 class="title"><a id="_on_filesystem"></a>On Filesystem</h4></div></div></div><div class="section" title="Assembly"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_23"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new RdfNativeSesameStoreAssembler().assemble( module ); -</pre></div><div class="section" title="Configuration"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_18"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the Native RDF Index/Query:</p><pre class="programlisting brush: java">public interface NativeConfiguration extends ConfigurationComposite + </head><body><div xmlns="" xmlns:exsl="http://exslt.org/common" class="logo"><a href="index.html"><img src="images/logo-standard.png" /></a></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="top-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="index.html#home">Polygeneâ¢</a></span></dt><dt><span class="section"><a href="intro.html">Introduction</a></span></dt><dt><span class="section"><a href="tutorials.html">Tutorials</a></span></dt><dt><span class="section"><a href="javadocs.html">Javadoc</a></span></dt><dt><span class="section"><a href="samples.html">Samples</a></span></dt><dt><span class="section"><a href="core.html">Core</a></span></dt><dt><span class="section"><a href="libraries.html">Libraries</a></span></dt><dt><span class="section"><span xmlns="" href="extensions.html">Extensions</span></span></dt><dt><span class="section"><a href="tools.html">Tools</a></span></dt><dt><span class="section"><a href= "glossary.html">Glossary </a></span></dt></dl></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="sub-nav"><div xmlns="http://www.w3.org/1999/xhtml" class="toc"><dl class="toc"><dt><span class="section"><a href="extensions.html#_overview_7">Overview</a></span></dt><dt><span class="section"><a href="extension-serialization-javaxjson.html">javax.json serialization</a></span></dt><dt><span class="section"><a href="extension-serialization-javaxxml.html">javax.xml serialization</a></span></dt><dt><span class="section"><a href="extension-serialization-messagepack.html">MessagePack serialization</a></span></dt><dt><span class="section"><a href="extension-es-memory.html">Memory EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-file.html">File EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-geode.html">Geode EntityStore</a></span></dt><dt><span class="section"><a href="extension-es-hazelcast.html">Hazelcast EntityStore</a ></span></dt><dt><span class="section"><a >href="extension-es-jclouds.html">JClouds EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-jdbm.html">JDBM >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-leveldb.html">LevelDB EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-mongodb.html">MongoDB >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-preferences.html">Preferences >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-redis.html">Redis EntityStore</a></span></dt><dt><span >class="section"><a href="extension-es-riak.html">Riak >EntityStore</a></span></dt><dt><span class="section"><a >href="extension-es-sql.html">SQL EntityStore</a></span></dt><dt><span >class="section"><a href="extension-cache-ehcache.html">Ehcache >Cache</a></span></dt><dt><span class="section"><a >href="extension-cache-memcache.html">Memcache Cache</a></span></dt><dt><span >class="section"><a href= "extension-index-elasticsearch.html">ElasticSearch Index/Query</a></span></dt><dt><span class="section"><span xmlns="" href="extension-index-rdf.html">OpenRDF Index/Query</span></span></dt><dt><span class="section"><a href="extension-index-solr.html">Apache Solr Index/Query</a></span></dt><dt><span class="section"><a href="extension-indexing-sql.html">SQL Index/Query</a></span></dt><dt><span class="section"><a href="extension-metrics-metrics.html">Codahale Metrics</a></span></dt><dt><span class="section"><a href="extension-migration.html">Migration</a></span></dt><dt><span class="section"><a href="extension-reindexer.html">Reindexer</a></span></dt></dl></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a id="extension-index-rdf"></a>OpenRDF Index/Query</h3></div></div></div><p class="remark"><em><span class="comment"></span></em></p><p class="devstatus-code-stable">code</p><p class="devstatus-docs-brief">docs</p><p class="devstatus-tests-good">tests </p><p>Index/Query services backed by <a class="ulink" href="http://www.openrdf.org/" target="_top">OpenRDF Sesame</a> framework for processing RDF data.</p><div class="table"><a id="idm447725104512"></a><p class="title"><strong>Table 66. Artifact</strong></p><div class="table-contents"><table class="table" summary="Artifact" border="1"><colgroup><col class="col_1" /><col class="col_2" /><col class="col_3" /></colgroup><thead><tr><th align="left" valign="top">Group ID</th><th align="left" valign="top">Artifact ID</th><th align="left" valign="top">Version</th></tr></thead><tbody><tr><td align="left" valign="top"><p>org.apache.polygene.extensions</p></td><td align="left" valign="top"><p>org.apache.polygene.extension.indexing-rdf</p></td><td align="left" valign="top"><p>3.0.0-SNAPSHOT</p></td></tr></tbody></table></div></div><br class="table-break" /><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_in_memory"></a>In Memory</h4></div></div></div><p>Assem bly is done using the provided Assembler:</p><pre class="programlisting brush: java">new RdfMemoryStoreAssembler().assemble( module ); +</pre><p>No configuration needed.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_on_filesystem"></a>On Filesystem</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_23"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new RdfNativeSesameStoreAssembler().assemble( module ); +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_18"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the Native RDF Index/Query:</p><pre class="programlisting brush: java">public interface NativeConfiguration extends ConfigurationComposite { @Optional @Matches( "([spoc][spoc][spoc][spoc],?)*" ) Property<String> tripleIndexes(); @@ -76,179 +76,179 @@ @UseDefaults Property<Boolean> forceSync(); } -</pre></div></div><div class="section" title="In a RDBMS"><div class="titlepage"><div><div><h4 class="title"><a id="_in_a_rdbms"></a>In a RDBMS</h4></div></div></div><div class="section" title="Assembly"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_24"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new RdfRdbmsSesameStoreAssembler().assemble( module ); -</pre></div><div class="section" title="Configuration"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_19"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the RDBMS based RDF Index/Query:</p><pre class="programlisting brush: java">public interface RdbmsRepositoryConfiguration +</pre></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_in_a_rdbms"></a>In a RDBMS</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_assembly_24"></a>Assembly</h5></div></div></div><p>Assembly is done using the provided Assembler:</p><pre class="programlisting brush: java">new RdfRdbmsSesameStoreAssembler().assemble( module ); +</pre></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a id="_configuration_19"></a>Configuration</h5></div></div></div><p>Here are the configuration properties for the RDBMS based RDF Index/Query:</p><pre class="programlisting brush: java">public interface RdbmsRepositoryConfiguration { Property<String> jdbcDriver(); Property<String> jdbcUrl(); Property<String> user(); Property<String> password(); } -</pre></div></div><div class="section" title="Named RDF Queries"><div class="titlepage"><div><div><h4 class="title"><a id="_named_rdf_queries"></a>Named RDF Queries</h4></div></div></div><p>RDF queries are rather difficult to create manually. Not only do you need to learn a difficult language and a new +</pre></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a id="_named_rdf_queries"></a>Named RDF Queries</h4></div></div></div><p>RDF queries are rather difficult to create manually. Not only do you need to learn a difficult language and a new syntax, but also need to understand the indexing model that happens in Apache Polygene RDF indexing system.</p><p>Below follows a large set of working queries, which can be used as a starting point. See the testcases for details of the Entity model that is being indexed.</p><pre class="programlisting brush: java">"PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "\n" + "}", // script01 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Domain>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Domain>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "FILTER (?v0 = \"Gaming\")\n" + "}", // script02 </pre><pre class="programlisting brush: java">"PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "\n" + "}", // script03 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" - + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:placeOfBirth ?v0. \n" + "?v0 ns2:name ?v1. \n" + "FILTER (?v1 = \"Kuala Lumpur\")\n" + "}", // script04 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" - + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:mother ?v0. \n" + "?v0 ns1:placeOfBirth ?v1. \n" + "?v1 ns2:name ?v2. \n" + "FILTER (?v2 = \"Kuala Lumpur\")\n" + "}", // script05 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER (?v0 >= \"1973\")\n" + "}", // script06 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" - + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:yearOfBirth ?v0. \n" + "?entity ns1:placeOfBirth ?v1. \n" + "?v1 ns2:name ?v2. \n" + "FILTER ((?v0 >= \"1900\") && (?v2 = \"Penang\"))\n" + "}", // script07 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER ((?v0 = \"1970\") || (?v0 = \"1975\"))\n" + "}", // script08 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Female>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Female>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER ((?v0 = \"1970\") || (?v0 = \"1975\"))\n" + "}", // script09 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:yearOfBirth ?v0. \n" + "FILTER (!(?v0 = \"1975\"))\n" + "}", // script10 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "OPTIONAL {?entity ns1:email ?v0}. \n" + "FILTER (bound(?v0))\n" + "}", // script11 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "OPTIONAL {?entity ns1:email ?v0}. \n" + "FILTER (! bound(?v0))\n" + "}", // script12 </pre><pre class="programlisting brush: java">"PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" - + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Male#> \n" + + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Male#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "OPTIONAL {?entity ns1:wife ?v0}. \n" + "FILTER (bound(?v0))\n" + "}", // script13 </pre><pre class="programlisting brush: java">"PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" - + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Male#> \n" + + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Male#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Male>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Male>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "OPTIONAL {?entity ns1:wife ?v0}. \n" + "FILTER (! bound(?v0))\n" + "}", // script14 </pre><pre class="programlisting brush: java">"PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" - + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Male#> \n" + + "PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Male#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "OPTIONAL {?entity ns1:wife ?v0}. \n" + "FILTER (! bound(?v0))\n" + "}", // script15 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "\n" + "}", // script16 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "\n" + "} ", // script17 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "\n" + "}\n", // script18 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "FILTER (?v0 > \"D\")\n" + "} ", // script19 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" - + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:yearOfBirth ?v0. \n" + "?entity ns2:name ?v1. \n" + "FILTER (?v0 > \"1973\")\n" + "}\n" , // script20 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Person#> \n" - + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Person#> \n" + + "PREFIX ns2: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Person>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Person>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:placeOfBirth ?v0. \n" + "?v0 ns2:name ?v1. \n" + "?entity ns1:yearOfBirth ?v2. \n" + "\n" + "}", // script21 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Nameable>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "FILTER regex(?v0,\"J.*Doe\")\n" + "}", // script22 -</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.indexing.model.Nameable#> \n" +</pre><pre class="programlisting brush: java">"PREFIX ns1: <urn:polygene:type:org.apache.polygene.test.model.Nameable#> \n" + "PREFIX ns0: <urn:polygene:type:org.apache.polygene.api.identity.HasIdentity#> \n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> \n" + "SELECT DISTINCT ?reference\n" - + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.indexing.model.Domain>. \n" + + "WHERE {\n" + "?entityType rdfs:subClassOf <urn:polygene:type:org.apache.polygene.test.model.Domain>. \n" + "?entity rdf:type ?entityType. \n" + "?entity ns0:identity ?reference. \n" + "?entity ns1:name ?v0. \n" + "FILTER (?v0 = ?domain)\n" + "}" // script24 </pre></div></div><div xmlns="" xmlns:exsl="http://exslt.org/common" class="footer"><p>
