AwwswTimsRules
TimBL's http inference rules, for comparison with those in AwwswAnalysis
We note the TAG finding:
- If an "http" resource responds to a GET request with a 2xx response, then the resource identified by that URI is an information resource;
- If an "http" resource responds to a GET request with a 303 (See Other) response, then the resource identified by that URI could be any resource;
- If an "http" resource responds to a GET request with a 4xx (error) response, then the nature of the resource is unknown.
We find the phrase "resource responds to a GET request" a little incorrect, would prefer: "If an HTTP server responds to a GET request"
E.g. caching information gives certain promises about other responses that might be received in the future, etc.
Draft format for rules .. does this work? Ontology to be refined!
Architectural rule:
{ ?x http:representation ?y. ?y http:status "200" } => { ?x a link:Document }.
Architectural rule:
The 301 Moved and 302 Found redirections point to a different URI for the resource. So conclusions about the second resource to a certain extent can be carried onto the first resource.
{ ?x http:representation ?y. ?y http:status "301"; hh:location ?z. ?z a link:Document } => { ?x a link:Document }. { ?x http:representation ?y. ?y http:status "302"; hh:location ?z. ?z a link:Document } => { ?x a link:Document }.
There may, however be other classes for which this does not work. The class of information resources which do not change with time for example: a time-varying resource URI can 302 to a time-invariant URI.
Architectural rule:
Here ?z mentions ?x is true if, for example, a representation of ?z parses to an RDF graph which includes a node whose URI is ?x. Other languages could have similr definitions.
{ ?x http:representation ?y. ?y http:status "301". ?z link:mentions ?x} => { ?z link:warning "Document uses a URI which has moved" }.
Ontological assumptions which allow us to infer a problem are of course open but include:
link:Document owl:disjointWith foaf:Person, doap:Project, ical:Event. # etc etc