Hi Hank, I like to be brief so this might sound bad, but I mean everything in the friendliest possible way.
You and almost all the people arguing against you are wrong about almost everything. I don't mean to say anyone's opinion is wrong. I'm talking about basic understanding of what certain words mean.
Let me break it down. There are 3 models for "programming" (in the general sense) computers:
1. Functional
2. Relational
3. Imperative
The functional model can't store data and therefore can't be used to create a database. So there are fundametally only 2 kinds of databases.
A database created using the Relational model uses relations to both store and retrieve data, so lets call it a relational database. A database created using the Imperative model uses pointers & nodes to store data and pointer navigation to retrieve data, so lets call it a navigational database.
That's it. There are only 2 database models. Each model can be used to implement different kinds of databases based on the limits they place on the structure.
There are 2 primary kinds of navigational database: graph/network and tree/hierarchy. A filesystem for example is a tree/hierarchy database.
A relation is basically a truth table with columns that are related to each other by a truth statement and rows of truth values that fulfill the truth of the statement. A standard relational database doesn't place any limits the number of rows or columns. A binary database limits the numbers of columns to 2.
A SQL DBMS is a (partially successful) attempt to implement a language that can be used to create a database which uses relational model.
OK, the important parts:
1. The semantic web is an implementation of the relational model that limits the relations to 3 columns and a single row.
2. Just because you use a SQL DBMS to create a database doesn't mean you actually created a relational database. You can put pointers in your tables, turning your relations into nodes on a graph, turing your database into a navigational database with some relational features.
Much of what you said in your original post was exactly backwards. You said "relational sucks" but the things you described as problems were features of navigational databases, not relational. Then you said "the semantic web is awesome because it's a navigational database" when in fact it's a relational database.
Functional and relational are 2 sides of the same coin. For instance:
x + y = z
Can be viewed as either a function called binary_addition with x & y as inputs and z as the output, or as the description of a relationship between 3 sets.
So, to solve the problem using SQL for example you would create a table binary_addition(x,y,z) and then fill it with all the true values that caused x + y = z to be true and then say "select z from binary_addition where x = 4 and y = 4"
In the functional model the computer stores the process for turning the input values you give it into the output values you want. In the relational model the computer stores a table containing all known possible input values, all known possible output values, and how they relate to each other, and gives you a way to retrieve them.
Note, the functional model is implemented by what that famous guy whose name I can't remember called "function-level" programming languages, not functional (aka lambda) languages.
The famous guy is named Robin Milner. He created the ML language. In lambda languages like lisp or javascript you can use functions as arguments and return values. I function-level, or applicative, languages you can only create new functions by combining existing functions. I think. I've never used a function-level language.
Hi Hank, I like to be brief so this might sound bad, but I mean everything in the friendliest possible way.
You and almost all the people arguing against you are wrong about almost everything. I don't mean to say anyone's opinion is wrong. I'm talking about basic understanding of what certain words mean.
Let me break it down. There are 3 models for "programming" (in the general sense) computers:
1. Functional 2. Relational 3. Imperative
The functional model can't store data and therefore can't be used to create a database. So there are fundametally only 2 kinds of databases.
A database created using the Relational model uses relations to both store and retrieve data, so lets call it a relational database. A database created using the Imperative model uses pointers & nodes to store data and pointer navigation to retrieve data, so lets call it a navigational database.
That's it. There are only 2 database models. Each model can be used to implement different kinds of databases based on the limits they place on the structure.
There are 2 primary kinds of navigational database: graph/network and tree/hierarchy. A filesystem for example is a tree/hierarchy database.
A relation is basically a truth table with columns that are related to each other by a truth statement and rows of truth values that fulfill the truth of the statement. A standard relational database doesn't place any limits the number of rows or columns. A binary database limits the numbers of columns to 2.
A SQL DBMS is a (partially successful) attempt to implement a language that can be used to create a database which uses relational model.
OK, the important parts:
1. The semantic web is an implementation of the relational model that limits the relations to 3 columns and a single row.
2. Just because you use a SQL DBMS to create a database doesn't mean you actually created a relational database. You can put pointers in your tables, turning your relations into nodes on a graph, turing your database into a navigational database with some relational features.
Much of what you said in your original post was exactly backwards. You said "relational sucks" but the things you described as problems were features of navigational databases, not relational. Then you said "the semantic web is awesome because it's a navigational database" when in fact it's a relational database.
That's all.