On Thu, Dec 9, 2010 at 1:32 PM, Luka <[email protected]> wrote: > Aldo, thank you very much for such a thorough reply but > the thing is I'm using a CakePHP framework as development environment > and I don't really know how would CakePHPs object relational mapping behave > if > I would use Virtuoso DB for everything. I don't know could it be even done > without rewriting > CakePHP model classes. > By the way when we say Virtuoso DB which database would > that be? PostgreSQL, MySQL or something totally written from scratch?
Virtuoso has an Object Relational DBMS built-in. You can say it is written from scratch ( over a period of many many years ) in the same way than MySQL and PostgreSQL is written from scratch ;) To summarize: Virtuoso gives you an integrated environment where you have SQL ( Object Relational = Table Inheritance and other goodies ) XML/XQuery RDF And many others. But I don't want to confuse you. The great part is that they are all built-in and talk to each other, so you can basically code in many languages and the logic manages data type and data model impedance mismatch for you. Take a look at this chapter on SQL and also look at those on XML and RDF. http://docs.openlinksw.com/virtuoso/sqlprocedures.html Regarding Cake. I have never used it with Virtuoso and I would need to take a look to see if it works. If it were ODBC compliant that would be the case but these days most developers tie their apps to some DB specific features. Regards, A > > So, I guess I'll have to do it the way you mentioned as a "bad" way. MySQL > (Relational) + Virtuoso(RDF) > > Still, I don't have a solution for my php.ini problem and MySQL driver? > > Thank you very much, > > Luka > > > On 9.12.2010. 17:16, Aldo Bucchi wrote: > > Hi Luka, > > Whether to host PHP in Virtuoso seems to me like a secondary subject. > The primary subject and the one you need to carefully analyze is > whether you need MySQL at all. > If you are tied to MySQL for a specific reason, so be it. But here's > what would happen if you ony use Virtuoso. > > * The state of your system in ONE database ( easier for backups, topology, > etc ) > * Easily moving to/from SQL and RDF = less development = more powerful > features for your app. > > This is key. > > I am using Virtuoso as the RDF-only part in several systems and the > biggest cost from a developer point of view is making it talk to its > SQL counterparts ( for example, you have an ID/URI in RDF that > actually points to an ID in a SQL database and the label exists only > in the SQL part ). On the other hand, on those systems where > everything lives in Virtuoso I you can just JOIN both in a single > query. > > Look at the following pseudocode ( not guaranteed to run I am making > it up now ): > > select distinct > T2.id, T2.label > from > ( sparql select distinct * where { ?product x:has_category x:food; > x:has_id ?id } ) as T1, > product_data as T2 > where > T1.id = T2.id > > SPARQL and SQL working seamlessly together ( versus a SPARQL query + > php loop + many SQL queries ) > > This is basic stuff btw. > > For what you are saying ( keeping relations/categories in RDF ) some > of the killer features are SPARQL's flexibility and some killer > inference capabilities like: > transitivity ( to get ALL products under a top-level category and its > descendants ) and reflexivity ( related_to should work both ways ). > > In the end. The small learning curve you may find in the beginning > will pay off when you get to build queries to power the User > Experience in your system. And that's the part that matters. > > Regards, > A > > On Thu, Dec 9, 2010 at 11:06 AM, Luka <[email protected]> wrote: > > Yes, I have read that article first because it was supposed to be exactly > what I was looking for > but it was written for linux users focusing on how to build Virtuoso with > php etc. so > I had to improvise a little bit since I'm using windows. > After installing Virtuoso (that obviously comes with php dll) I've > uncommented few lines in virtuoso.ini to load php and it seems > to be working because I had php installed before with PATH variable already > set. > What's weird is that when I run phpInfo() inside Virtuoso web server, > php.ini path is empty/unknown, there is no MySQL section etc. > When I run that script in Apache web server everything is there? > So I'm not really sure whether I should have separate php installations or > just copy php installation > folder into Virtuoso hosting/php/ folder and then change php.ini or there's > a Virtuoso config file where I can > change the path to php.ini? > > As I understood there are no RDF views and external data sources in open > source version of Virtuoso. > > ODBC MySQL driver is what I'm looking for in the case of open source version > too? > This way Virtuoso will be a web server hosting php and connecting to > external MySQL? > When I say external I want to say a MySQL that is not a part of Virtuoso > like a plugin (or something integrated by default)? > > Thank you for you time guys, especially you Hugh, > Luka > > On 9.12.2010. 12:56, Hugh Williams wrote: > > Hi Luka, > Have you read the following document on hosting PHP / LAMP applications in > Virtuoso: > http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtuosoPHP > We also have migrated popular LAMP applications like phpBB, WordPress, > MediaWIki & Drupal to be completed hosted in Virtuoso as detailed at: > http://ods.openlinksw.com/wiki/ODS/#Third-Party%20Platform%20Integration > In fact our phpBB3 support forum (http://boards.openlinksw.com/support) is > hosted entirely in Virtuoso in the cloud ... > As you say the open source product does not support the creation of RDF > Views to remote relational data stores, so you essentially will have to > duplicate the MySQL data in Virtuoso either as pure RDF triples or SQL data > that is the mapped to RDF Views of the now local SQL Data if you are to use > it as a triple store for querying the data. So you may as well host > everything in Virtuoso if there is no physical restriction on using MySQL > and other LAMP components ( other then you are a FAN :)), there will be a > learning curve to get up speed with Virtuoso but it will be worth it in the > end as you have an all in one solution making deployment ( and > re-deployment) a simple process (just copy binary, config & db file to new > location) ... > 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 9 Dec 2010, at 10:59, Luka wrote: > > Hello everyone, > > I am working on a web application that would try to leverage the use of RDF > data. > Since, I am PhP/MySQL fan I have some questions regarding the organization > of system. > > I'm using the open source version of Virtuoso. > > So, my application will be a CMS for a specific domain and I thought that > the part > of application that has to do with users login, ACL, static pages, blog > components etc. > should be stored the good old relational way in MySQL. > Since this CMS will have a component that will enable visitors > to browse a tree/list of products sold by a specific shop, I thought to > keep some relationships between products, producers, sellers, shippers etc. > in RDF format. I would > try to create a simple ontology for this domain. > > My question is: how would you organize your project? > > I thought of Installing > 1. Apache with PHP, > 2. MySQL and > 3. Virtuoso > > instead of hosting PHP directly in Virtuoso . [I am more comfortable with > Apache :)] > > ...I would build my CMS on PHP/MySQL stack and as for that specific part > where RDF > data would be used I thought I could map existing MySQL tables that hold > this information? > I read about RDF views but I'm not so sure that open source version can > import data from > external DBMS? > Do you think I should use RDF views (if even possible in o.s. version) or I > should > create a RDF quad store that would be a duplicate of what would already > exist in MySQL tables? > If you have any suggestions for reading (tutorials, manuals) please do share > it with me... > > I am new to Virtuoso so please excuse me if I made a few mistakes in > terminology :) > > Thank you very much. > > Luka > > > ------------------------------------------------------------------------------ > This SF Dev2Dev email is sponsored by: > > WikiLeaks The End of the Free Internet > http://p.sf.net/sfu/therealnews-com_______________________________________________ > Virtuoso-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/virtuoso-users > > > ------------------------------------------------------------------------------ > This SF Dev2Dev email is sponsored by: > > WikiLeaks The End of the Free Internet > http://p.sf.net/sfu/therealnews-com > _______________________________________________ > Virtuoso-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/virtuoso-users > > > > > -- Aldo Bucchi @aldonline skype:aldo.bucchi http://aldobucchi.com/
