@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix webarch: <http://www.w3.org/2001/tag/fdesc54/webarch#>.
@prefix        : <http://www.w3.org/2001/tag/fdesc54/webarch#>.
@prefix mu: <modelling-utilities@@#> .
@prefix xsdt: <http://www.w3.org/2001/XMLSchema#> .
    
    <>     rdfs:comment
"""arch doc ontology in RDF/OWL -- fragment identifier parts.

$Id: frag.n3,v 1.5 2003/11/24 10:22:29 connolly Exp $
$Log: frag.n3,v $
Revision 1.5  2003/11/24 10:22:29  connolly
mu:composite replaces currying

Revision 1.4  2003/11/14 23:55:07  connolly
"Web Architecture Illustrated" developed on the plane

Revision 1.3  2003/11/12 00:04:56  connolly
restored some material that was in idRes.rdf into frag.n3, updated webarch-diag-frag as a result

Revision 1.2  2003/11/06 22:49:29  connolly
make :FRAG explicit

Revision 1.1  2003/11/06 19:16:11  connolly
idRes, frag diagrams done, except spurious Restriction bubbles


for more history, see idRes.rdf
  """;
         rdfs:seeAlso <idRes>,
                <idRes.rdf> .

    :evalFrag a owl:FunctionalProperty;
	rdfs:label "evalFrag";
	rdfs:domain [ a owl:Class; rdfs:label "Rep x Frag";
	  mu:components (:Representation :FragmentIdentifier)
	];
	rdfs:range :Resource.


    :fragment     a owl:FunctionalProperty;
         rdfs:domain :URI;
         rdfs:label "fragment";
         rdfs:range :FragmentIdentifier .
    
    :FragmentIdentifier     a rdfs:Class;
         rdfs:comment """
       Fragment identifiers syntax defined generically by 
       RFC2396. However, meaning of frag identifier in
       a given representation also depends on definingSpecification
       of the media type. The implication is that the full meaning
       of the fragment identifier is not known at the level
       of this class, but for instances of the Representation class.
     """;
         rdfs:isDefinedBy <http://www.apache.org/~fielding/uri/rev-2002/rfc2396bis.html>;
         rdfs:label "Fragment Identifier";
         rdfs:subClassOf xsdt:string .

@prefix log: <http://www.w3.org/2000/10/swap/log#>.

{ ?S :primary ?R } log:means {
 this log:forSome :FRAG.
 :FRAG a :FragmentIdentifer.

 ?R :representation [
   :representationData ?OS;
   :mediaType [ :fragmentHandler ?FDH ]].
 ?OS ?FDH ?FH.
 :FRAG ?FH ?S
}.



xsdt:string a rdfs:Datatype; rdfs:label "string".


{
######
# URI Scheme
# was in uriRes.rdf
:scheme a owl:FunctionalProperty;
  rdfs:label "scheme";
  rdfs:domain :URI; rdfs:range :URIScheme.


:URIScheme a owl:Class; rdfs:label "URI Scheme";
  rdfs:isDefinedBy <http://www.apache.org/~fielding/uri/rev-2002/rfc2396bis.html>.
} a :UnnecessaryDetail.
 
{
    :SecondaryURIReference     a rdfs:Class;
         rdfs:label "SecondaryURIReference";
         rdfs:subClassOf :URIReference .

    :fragment     a owl:FunctionalProperty;
         rdfs:domain :SecondaryURIReference;
         rdfs:label "fragment";
         rdfs:range :FragmentIdentifier .

:URIReference a rdfs:Class; rdfs:label "URIReference";
  rdfs:subClassOf xsdt:string.



:resolveFn a owl:FunctionalProperty;
  rdfs:label "resolveFn";
  rdfs:domain :URIReference;
  rdfs:range  :ResolveFn.


:ResolveFn a rdfs:Class; rdfs:label "ResolveFn";
  rdfs:comment """a function that takes a base URI and returns a URI""";
  rdfs:seeAlso <http://esw.w3.org/topic/NaryRelations>;
  rdfs:subClassOf [ a owl:Restriction; rdfs:label "";
    owl:onProperty :arg;
    owl:allValuesFrom :URI;
  ], [ a owl:Restriction; rdfs:label "";
    owl:onProperty :value;
    owl:allValuesFrom :URI;
  ].


    :SecondaryResource     a owl:Class;
         rdfs:label "Secondary Resource";
         rdfs:subClassOf :Resource .
    
    :primary     a rdfs:Property;
         rdfs:domain :SecondaryResource;
         rdfs:label "primary";
         rdfs:range :Resource .

    
} a :OlderIdea.

