Re: resources and URIs

Micheal Mealling writes:

> ... is it possible to concretely constrain the term
> 'resource' as used in 2396 so that a 'resource' only comes into
> existence once a URI is assigned to it (i.e. it becomes part of the
> Web)? Then we could create another term for those things that could
> become resources if a URI were assigned? I think that language
> clarification would really help....

Following the approach outlined in

http://lists.w3.org/Archives/Public/www-tag/2003Jul/0172.html

perhaps a useful ontology for resources could be something
along the lines of the following:

--

webarch:WebResource 
   rdfs:subClassOf rdf:Resource;
   rdfs:comment "A resource which is denoted by a URI which
                 is intended to be resolvable via HTTP to a
                 representation." .

webarch:Representation
   rdfs:subClassOf rdf:Resource;
   rdfs:comment "A digitally encoded data entity reflecting the 
                 state and/or nature of a resource." .
    
swarch:SemanticWebResource
   rdfs:subClassOf rdf:Resource;
   rdfs:comment "A resource which is referred to by URI
                 in one or more semantic web statements." .

swarch:SemanticWebStatement
   rdfs:subClassOf rdf:Statement;
   rdfs:comment "A statement which is asserted in one or more
                 web resources." .
 
--

A resource, in general, need not be denoted by any URI, nor
need be referred to in any semantic web statement.

Given the above definitions, a WebResource cannot exist without
being denoted by a URI that is intentionally resolvable via HTTP to 
a representation. 

A SemanticWebResource need not be denoted by a URI, but does
need to be referred to by some semantic web statement made
in some web resource, ultimately expressed in some representation.

Yet a given resource may be both a web resource and a semantic
web resource. Those are not disjunct classes of things, but
rather intersecting classes.

The web architecture is thus concerned with WebResources and 
Representations (among other things).

The semantic web architecture is concerned with 
SemanticWebResources and SemanticWebStatements (among
other things).

Particular agents may only be concerned with Web Resources,
or only with Semantic Web Resources, or only the intersection
of Web Resources and Semantic Web Resources. But they're
all resources.

One can then extend the above ontology to include predicates
for relating resources to their representations, synonymous
denotations of resources by multiple URIs, etc. (here's
where the Semantic Web extends/augments the Web, making
explicit the semantics of web behavior in relation to the
universe of resources).

--

webarch:hasRepresentation 
   a rdfs:Property;
   rdfs:range webarch:Representation .

webarch:representationOf 
   a rdfs:Property;
   rdfs:domain webarch:Representation .

   // Note:
   // any resource can have a representation, whether
   // or not that resource is a WebResource, such as
   // a resource denoted by a blank node in an RDF
   // graph, thus the existence of a representation
   // does not itself make a resource a WebResource

webarch:redirectsTo
   rdfs:subPropertyOf owl:sameIndividualAs;
   rdfs:domain webarch:WebResource ;
   rdfs:range webarch:WebResource ;
   owl:inverseOf webarch:redirectsFrom .    

webarch:redirectsFrom
   rdfs:subPropertyOf owl:sameIndividualAs;
   rdfs:domain webarch:WebResource ;
   rdfs:range webarch:WebResource ;
   owl:inverseOf webarch:redirectsTo .       

--

This last property is pretty nifty, as it allows SW enabled
servers to express redirection relations specific to Web
server behavior using SW machinery (which is what the SW
is for, right?!) and also captures the co-denotation
semantics implicit in the redirection relation, and thus, using
OWL reasoning, one can infer the properties of the particular
resource in terms of any of the URIs synonymously denoting it.

Thus, if we have

<http://example.urn.org/foo>
   webarch:redirectsTo <http://example.com/1234/28/19901> ;
   dc:creator "John Doe" .

then we can infer (among other things)

<http://example.com/1234/28/19901>
   owl:sameIndividualAs <http://example.urn.org/foo> ;
   webarch:redirectsFrom <http://example.urn.org/foo> ;
   dc:creator "John Doe" .

This is a big win for users who may only be aware of a
secondary URI (e.g. <http://example.com/1234/28/19901>)
yet may wish (and rightly so) to use the primary 
(persistent) URI to ensure longer term validity of
their statements. 

A primary SW enabled server can infer statements expressed 
in terms of secondary URIs and, via URIQA or similar, PUT 
those statements on the authoritative server hosting the 
secondary URIs (or simply put the webarch:redirectsFrom
statement). SW queries to those secondary servers will 
then reflect the denotational equivalence and redirection
relation to the more primary URI. The most primary URI
is then determined by following the redirection relation
chain backwards until a URI is located that does not
(knowingly) redirect from another.

--

Anyway, that's how I've been approaching this stuff...

It would, IMO, be excellent if one of the deliverables
accompanying the TAG's Web Architecture document could
be an OWL ontology providing a formal expression of
the concepts, classes, relations, etc. expressed in
the natural language prose. I'm very happy to submit
the above as a strawman ontology of the web architecture.

Regards,

Patrick

--

Patrick Stickler
Nokia, Finland
patrick.stickler@nokia.com

Received on Friday, 18 July 2003 05:09:57 UTC