I'm back on the trail to get redland working with virtuoso storage. I want to be able to use virtuoso as a backend from python (and probably c++ later on)! I'm still having issues with the librdf 1.0.10 version. I can connect using pyodbc to virtuoso with unixodbc installed. I am getting undefined symbol errors when using the bindings with virtuoso support built in.
In [1]: import RDF > python: symbol lookup error: /home/prima/opt/redland/lib/ > redland/librdf_storage_virtuoso.so: undefined symbol: > librdf_storage_register_factory > Does the virtuoso support in redland need iODBC? I don't have that installed, rather unixodbc and it's sources. Will it still work with this version of sql.h? or does it expect the sql.h from virtuoso itself? (I noticed there was an sql.h in the virtuoso sources at virtuoso-opensource-6.1.0/libsrc/odbcsdk/include/sql.h.) It compiled ok using the system sql.h... Chris On Tue, Mar 16, 2010 at 9:00 PM, Hugh Williams <[email protected]>wrote: > Hi Chris, > > Can you enable ODBC tracing, repeat the tests and provided the resultant > trace file for analysis so we can see what errors might be occurring at the > ODBC level. It might also be useful to enable Virtuoso server tracing to see > any additional error that might be occurring on the server side as detailed > at: > > http://docs.openlinksw.com/virtuoso/fn_trace_on.html > > The trace details will be written to the virtuoso.log file. > > Best Regards > Hugh Williams > Professional Services > OpenLink Software > Web: http://www.openlinksw.com > Support: http://support.openlinksw.com > Forums: http://boards.openlinksw.com/support > Twitter: http://twitter.com/OpenLink > > On 16 Mar 2010, at 19:15, Chris Wj wrote: > > Ok, got the test program to seemingly connect after renaming the DSN. > > 1: Remove all triples in <http://red> context > **PASSED**: removed context triples from the graph > 2: Add triples to <http://red> context > **PASSED**: add triple to context > 3: Print all triples in <http://red> context > [[ > ]] > **PASSED**: > 4: Count of triples in <http://red> context > **PASSED**: graph has 6 triples > 5: Exec: ARC aa bb > **FAILED**: Failed to get arc > 6: Exec: ARCS aa cc > : matching nodes: 0 > **PASSED**: > 7: Exec: ARCS-IN cc > **PASSED**: matching arcs: 0 > 8: Exec: ARCS-OUT aa > **PASSED**: matching arcs: 0 > 9: Exec: CONTAINS aa bb1 cc > **PASSED**: the graph contains the triple > 10: Exec: FIND aa - - > **PASSED**: matching triples: 0 > 11: Exec: HAS-ARC-IN cc bb > **FAILED**: the graph does not contain the arc > 12: Exec: HAS-ARC-OUT aa bb > **FAILED**: the graph does not contain the arc > 13: Exec: SOURCE aa cc > **FAILED**: Failed to get source > 14: Exec: SOURCES bb cc > : matching nodes: 0 > **PASSED**: > 15: Exec: TARGET aa bb > **FAILED**: Failed to get target > 16: Exec: TARGETS aa bb > : matching nodes: 0 > **PASSED**: > 17: Exec: REMOVE aa bb1 cc > **PASSED**: removed triple from the graph > 18: Exec: QUERY "CONSTRUCT {?s ?p ?o} FROM <http://red> WHERE {?s ?p > ?o}" > rdf_model.c:1393: (librdf_model_query_execute) assertion failed: object > pointer of type librdf_query is NULL. > **FAILED**: Query of model with 'CONSTRUCT {?s ?p ?o} FROM <http://red> > WHERE {?s ?p ?o}' failed > rdf_query.c:390: (librdf_free_query) assertion failed: object pointer of > type librdf_query is NULL. > rdf_query.c:390: (librdf_free_query) assertion failed: object pointer of > type librdf_query is NULL. > 19: Exec1: QUERY_AS_BINDINGS "SELECT * WHERE {graph <http://red> { ?s ?p > ?o }}" > rdf_model.c:1393: (librdf_model_query_execute) assertion failed: object > pointer of type librdf_query is NULL. > **FAILED**: Query of model with 'SELECT * WHERE {graph <http://red> { ?s > ?p ?o }}' failed > rdf_query.c:390: (librdf_free_query) assertion failed: object pointer of > type librdf_query is NULL. > rdf_query.c:390: (librdf_free_query) assertion failed: object pointer of > type librdf_query is NULL. > 20: Exec2: QUERY_AS_BINDINGS "SELECT * WHERE {graph <http://red> { ?s ?p > ?o }}" > rdf_model.c:1393: (librdf_model_query_execute) assertion failed: object > pointer of type librdf_query is NULL. > **FAILED**: Query of model with 'SELECT * WHERE {graph <http://red> { ?s > ?p ?o }}' failed > rdf_query.c:390: (librdf_free_query) assertion failed: object pointer of > type librdf_query is NULL. > rdf_query.c:390: (librdf_free_query) assertion failed: object pointer of > type librdf_query is NULL. > ============================== > =============== > PASSED: 12 FAILED: 8 > > -Chris > > > On Tue, Mar 16, 2010 at 3:00 PM, Chris Wj <[email protected]> wrote: > >> I recently recompiled redland to use unixODBC instead to see if that would >> work. >> >> When I run the test program I get failures that say: >> >> Error - Virtuoso SQLConnect() failed [IM002] [unixODBC][Driver >> Manager]Data source name not found, and no default driver specified >> >> I can use the odbc DataManager to connect to Virtuoso ODBC without a >> problem though. >> >> I have been trying pyodbc, and that has been failing as well with the same >> error. >> >> -Chris >> >> >> On Tue, Mar 16, 2010 at 2:16 PM, Hugh Williams >> <[email protected]>wrote: >> >>> Hi Chris, >>> >>> Have you been able to get the provided test program for testing the >>> Redland connectivity and storage to Virtuoso as detailed at: >>> >>> >>> http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFDriverRedland >>> >>> As that I would assume to be the starting point and once working then >>> seek to connect from Python and other such languages etc. >>> >>> Best Regards >>> Hugh Williams >>> Professional Services >>> OpenLink Software >>> Web: http://www.openlinksw.com >>> Support: http://support.openlinksw.com >>> Forums: http://boards.openlinksw.com/support >>> Twitter: http://twitter.com/OpenLink >>> >>> On 16 Mar 2010, at 16:28, Chris Wj wrote: >>> >>> I originally posted this in the Redland mailing list, but would like to >>> ask here as well... >>> >>> I'm trying to get Redland to connect to a Virtuoso instance and I am >>> having some issues. I built the latest stable Redland with virtuoso support >>> with iODBC. I did a test iODBC connection to Virtuoso through the iodbc tool >>> 'iodbcadm-gtk', and it tests ok. >>> >>> Software versions: >>> Redland 1.0.10 (my compile) >>> Redland Bindings 1.0.10.1 (my compile) >>> Raptor 1.4.19 (system library) >>> Rasqal 0.9.16 (system library) >>> Virtuoso 6.1 (my compile) >>> Ubuntu 9.10 x64 >>> >>> Built librdf with >>> >>>> ./configure --with-virtuoso=yes --with-iodbc-lib=/usr/lib >>>> --with-odbc-inc=/usr/include --prefix=/media/dataext3/opt >>>> >>> >>> In Python, I've tried various combinations of this type of command: >>> >>>> >>> vstore = RDF.Storage(storage_name="virtuoso", name="db1", >>>> options_string="dsn='LocalVirtuoso',user='dba',pass='dba'") >>>> >>> >>> Which produces this output: >>> >>> 1498 if self._storage == "NULL" or self._storage == None: >>>> 1499 self._storage=None >>>> -> 1500 raise RedlandError("Creating Storage failed") >>>> 1501 >>>> 1502 def __del__(self): >>>> >>>> RedlandError: 'Creating Storage failed' >>>> >>> >>> This message is pretty bad as I have no idea what part is causing the >>> failure. >>> >>> Any thoughts as to what the problem may be? Has anyone had luck doing >>> this? >>> >>> Thanks, >>> -Chris------------------------------------------------------------------------------ >>> >>> Download Intel® Parallel Studio Eval >>> Try the new software tools for yourself. Speed compiling, find bugs >>> proactively, and fine-tune applications for parallel performance. >>> See why Intel Parallel Studio got high marks during beta. >>> >>> http://p.sf.net/sfu/intel-sw-dev_______________________________________________ >>> Virtuoso-users mailing list >>> [email protected] >>> https://lists.sourceforge.net/lists/listinfo/virtuoso-users >>> >>> >>> >> > >
