Web | Semantic Web | |
---|---|---|
Traditional Design | hypertext | logic/database |
+ | URIs | |
- | link consistency | ? |
= | viral growth |
Are there parts of traditional logic and databases that, if we set them aside, will result in viral growth of the Semantic Web?
Web | Programming Languages | Mathematical Logic | |
---|---|---|---|
Symbols | URIs | variables | constants |
Referents | Resources | memory cells | objects in the domain |
Values | Representations | values | n/a? |
Note: this is an analogy, not an exact correspondence.
I saw a great <a href="http://www.imdb.com/title/tt0091605/" >movie starring Sean Connery</a>
... vs ....
The <a href="http://www.imdb.com/title/tt0091605/" >IMDB page on "The Name of the Rose"</a> is a great source of information.
Which does http://www.imdb.com/title/tt0091605/ refer to
document and build consensus around principles of Web architecture.
<rdf:Property rdf:about="http://purl.org/dc/elements/1.1/title"> <rdfs:label xml:lang="en-US" >Title</rdfs:label> <!-- ... details elided ... --> </rdf:Property>
Or, equivalently, using turtleTurtle notation:
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix dc: <http://purl.org/dc/elements/1.1/>. dc:title rdf:type rdf:Property.
@prefix log: <http://www.w3.org/2000/10/swap/log#> . @prefix str: <http://www.w3.org/2000/10/swap/string#> . dc:title log:uri "http://purl.org/dc/elements/1.1/title". "http://purl.org/dc/elements/1.1/title" str:startsWith "http:". "http://purl.org/dc/elements/1.1/title" str:notMatches "#".
the log:uri property is similar to the name quoting function in KIF[KIF].
Berners-Lee argued that HTTP URIs (without #)
should be understood as referring to documents, not cars
.
@prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix tbl: <http://example/tbl-terms#>. @forAll ?X, ?URI. { ?X log:uri ?URI. ?URI str:startsWith "http:". ?URI str:notMatches "#". } => { ?X a tbl:Document }. tbl:Document owl:disjointWith tbl:Car.
@prefix foaf: <http://xmlns.com/foaf/0.1/>. <http://markbaker.ca/> a foaf:Person; foaf:name "Mark Baker".
Suppose we do a GET on http://site.example/path and we get back:
200 OK content-type: text/plain hello world.
Then we'll say:
@prefix http: <http://example/http-terms#>. @prefix mime: <http://example/mime-terms#>. _:reply1 a http:OKResponse; http:about <http://site.example/path>; mime:body "hello world."; mime:content-type "text/plain".
@prefix w: <http://example/webarch-terms#>. { _:m a http:OKResponse; http:about ?R; mime:body ?BYTES; mime:content-type ?TYPE. } => { ?R w:representation [ mime:content-type ?TYPE; mime:body ?BYTES ]. }