- From: Richard Cyganiak <richard@cyganiak.de>
- Date: Wed, 1 Aug 2007 10:24:36 +0200
- To: Garret Wilson <garret@globalmentor.com>
- Cc: Semantic Web <semantic-web@w3.org>
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