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/