Hacker News new | past | comments | ask | show | jobs | submit login

Sorry, semantic web = semantic networks a la Quillian. It's a step backward.

RDBMS work because they have a solid semantic foundation with n-ary relations. Description logic based formalism can't do n-ary, nor can RDF triple stores. The whole adventure is ill fated and us database weenies knew it from the start.





If you read their description, you can sense that this simple capability is beyond their grasp. They are falling back on reification and complex syntax. They even promise more notes soon LOL!

Here is an example I would like to see Semantic Web people treat. No references to W3C documents, just show us the solution. It's trivial in SQL.

Supplier(supplierId, name,country)

Part(partId, name,price)

Customer(custId,name,country)

Supplies(supplierId,partId,custId)

"Give the American suppliers who supply parts under 10$ to customers in Japan".

I won't bore you with the SQL solution. Now let's see it in OWL! Good luck!


It's reasonably trivial in RDF/OWL as well; Supplies would be a class whose instances have statements that point to supplier, part, and customer. In rough SPARQL that would be something like:

select distinct ?supplier where

?supplies hasSupplier ?supplier

?supplies hasPart ?part

?supplies hasCustomer ?customer

?supplier hasCountry "US"

?customer hasCountry "Japan"

?part hasPrice ?price

filter(?price < 10)

Not that bad, maybe more verbose than SQL, but not that difficult to express. You'd probably want type constraints on the variables, too.


OK, you are right, that wasn't so bad. Perhaps I will take a closer look at SPARQL one of these days.

BTW how does it do with things like spatial constrains. In relational databases it's easy to express spatial joins over relations. For example given

Structure(id, name, x, y, type)

you can query for things like all the structures of type 'pharmacy' within 1 km of a 'hospital'. It's simple to define functions like distance(x1,y1,x2,y2) that may be predicated on. Anything like that in SPARQL (yet)?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: