Re: Asserting subclasses of open ranges or domains

Hi Toby


>  - Are such constructions valid in RDFS and/or OWL?
>> - Are they useful?
>>
>
>
> I think they're valid, but I don't think they're especially useful.
>

That was the first kind of reaction I expected. :))


>         dcterms:subject rdfs:range _:b .
>        skos:Concept rdfs:subClassOf _:b .
>
>        foaf:Person rdfs:subClassOf _:b .
>        <doc> dcterms:subject <#thing> .
>
> what useful conclusions can a reasoner come to? It can't conclude that
> <#thing> is a foaf:Person; it can't conclude that <#thing> is a
> skos:Concept; in fact, <#thing> might be neither of those - it could be
> anything.
>

Indeed, it is exactly the intended meaning. And I agree that in this case
the model is totally useless. But having situations where the model is
useless does not mean it's altogether useless. It's like saying umbrellas
are useless because today it does not rain.

So let's take another situation. Suppose I have the following:

<doc1> dcterms:subject <A> .
<A>  a  skos:Concept.
<doc2> dcterms:subject <B> .
<B>  a   foaf:Person
<doc3> dcterms:subject <C> .
<C>  a   geonames:Feature.

I can conclude that doc1 and doc2 are consistent with the model, whereas I
can't conclude anything for doc3. You can argue that such a conclusion is
useless, but it's a conclusion nevertheless, and I can build on it in my
system. I can decide to be open, and keep all triples, or stick to classes
that have explicitly be recommended by DC as being in the range, therefore
keep only doc1 and doc2 subjects and strike the other one, or mark it as
less reliable, whatever I see fit for my implementation.

Another situation is an annotation tool, where values for dcterms:subject
proposed to the user for annotations would be first restricted to instances
of classes explicitly known as being recommended by DC. The interface could
even allow to choose between "safe" annotation limited to recommended
classes, and "wild" annotation, using any URI you see fit. Similar to what
is implemented at faviki. Recommended option is to annotate using a limited
set of URIs (DBpedia URIs), but you can by-pass the option and annotate with
your own URIs. See http://www.faviki.com that you surely know.


> A related OWL construct is:
>
>        ex:subject rdfs:range _:b .
>        _b: owl:unionOf ( skos:Concept foaf:Person ) .
>
> Where the reasoner could at least conclude that if <doc> ex:subject
> <#thing> then <#thing> must be either a skos:Concept or a foaf:Person or
> both. This is more useful for reasoning with, because combined with a few
> other inferences it could narrow down <#thing>'s class.
>

Indeed, but this is exactly what is *not* wanted. We don't want to
*restrict* the range to those classes, only explicitly *allow* them.


>
> OK, given that your original example is not much use to automated
> reasoners, could it at least be helpful to humans reading the schema? Yes,
> perhaps, but it's likely they'd be served better by text written in natural
> language - a rdfs:comment, skos:note, etc.
>

It's not uncompatible, but I hope the above example proves that
implementations could also leverage a formal declaration.



-- 
Bernard Vatant
Senior Consultant
Vocabulary & Data Engineering
Tel:       +33 (0) 971 488 459
Mail:     bernard.vatant@mondeca.com
----------------------------------------------------
Mondeca
3, cité Nollez 75018 Paris France
Web:    http://www.mondeca.com
Blog:    http://mondeca.wordpress.com
----------------------------------------------------

Received on Tuesday, 8 September 2009 10:47:51 UTC