Re: wildcard resource representation

On 1 Aug 2007, at 02:57, Garret Wilson wrote:
> I'm creating an ontology in which it is useful to identify "any  
> resource". That is, let's say that I want to specify to which  
> resource a particular <eg:Rule> applies. I can specify (let me try  
> my hand at N3 here);
>
> [] a eg:Rule;
>  eg:appliesTo <urn:uuid:92f01109-e08e-4ac2-b0d4-b13f65ba7595>
>
> That means that the rules applies to some identified resource. But  
> is there any convention for identifying "any resource"? I see  
> several options:

That's why we have blank nodes.

[] a eg:Rule;
     eg:appliesTo [ a rdfs:Resource ];
     .

This says that the rule applies to "anything that has rdf:type  
rdfs:Resource".

Since, in fact, *everything* is of type rdfs:Resource, this is  
redundant, and can be stated simply as

[] a eg:Rule;
     eg:appliesTo [];
     .

"This rule applies to anything."

The nice thing about this is that you can do things like:

[] a eg:Rule;
     eg:appliesTo [ a foaf:Person; foaf:name "Garret" ];
     .

"This rule applies only to people called Garret."

>    * If I assume that the resources are people with emails, I could  
> use
>      <mailto:*.*>. But that doesn't seem general enough---it's almost
>      too much of a hack.

I'm pretty sure this violates a couple of RFCs.

>    * Maybe there's a wildcard URI out there---that is, perhaps
>      <urn:uuid:1234...> is universally agreed upon as the wildcard
>      resource. But I'm not holding my breath that this exists.

That's a bit like asking "Is there a wildcard number around? Maybe  
1234 is universally adgreed upon as the wildcard number?" No, that's  
what variables are for. Blank nodes are, basically, anonymous variables.

>    * Maybe I could create my own wildcard URI: <eg:wildcard>. But that
>      seems too specific to my ontology.

"Maybe I could define my own wildcard number ..." ;-)

>    * What about a class of all resources? If I were to use
>      <http://www.w3.org/2000/01/rdf-schema#Resource>, that doesn't  
> seem
>      to be what I'm wanting to say semantically---it would say that  
> the
>      rule applies to the class of resources, not to every instance of
>      that class.

Depends on the definition of eg:appliesTo. I think there's nothing  
wrong with this:

[] a eg:Rule;
     eg:appliesToClass rdfs:Resource;
     .

>    * I could create a type <eg:AnyResource> and this could be the  
> value
>      of the eg:appliesTo property, but this seems to have the same
>      problem as using the type <rdfs:Resource>.

Yes, since then eg:AnyResource = rdfs:Resource .

Best,
Richard


>
> Any suggestions? There are almost limitless ways I can go with  
> this, but is there some convention?
>
> Garret
>
>

Received on Wednesday, 1 August 2007 08:25:26 UTC