Aldo,

you are the greatest... There will be more questions, though...

I will give a look at pages you gave me...

Regards,
Luka

On 9.12.2010. 17:40, Aldo Bucchi wrote:
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







Reply via email to