Re: Generated RDF conformant with good practise?

On 20/09/2004, at 12:45 PM, David Menendez wrote:

> Matt Halstead writes:
>
>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <rdf:RDF xmlns:bibterm="http://www.book-stuff.com/terms/"
>>>>          xmlns:dc="http://purl.org/dc/elements/1.0/"
>>>>          xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
>>>>     <bibterm:Bib>
>>>>          <bibterm:book rdf:parseType="Resource">
>>>>                  <bibterm:year>1994</bibterm:year>
>>>>                  <dc:title>TCP/IP Illustrated</dc:title>
>>>>          </bibterm:book>
>>>>          <bibterm:book rdf:parseType="Resource">
>>>>                  <bibterm:year>1992</bibterm:year>
>>>>                  <dc:title>Advanced Programming in the Unix
>>>> environment</dc:title>
>>>>          </bibterm:book>
>>>>      </bibterm:Bib>
>>>> </rdf:RDF>
>>
>>
>> This is a good example of something I have wondered about.  If in fact
>> one wanted to create an RDF schema to describe such a structure, then
>> it would be nice to be able to describe that the range of bibterm:book
>> is any resource that has the properties bibterm:year and dc:title.  Is
>> it possible to do this without making a class to represent that, or
>> using the syntax and semantics of OWL?  I.e. is it possible in plain
>> RDF/RDF-S to say that the properties of bibterm:year and bibterm:title
>> are sufficient for a resource to be a valid instance?  if not, then
>> perhaps it is worth considering a non-anoymous resource for this
>> relationship so that one can still define the architecture of the
>> bibterm:book property in RDF/RDF-S semantics.
>
> Anonymous classes are fine. It's anonymous Properties that aren't
> allowed. Aside from that, there's no significant difference between an
> blank node and a URI-labeled node.
>
> I think what you're saying can be represented like this (in the Turtle
> syntax for RDF):
>
>     bibterm:book a owl:ObjectProperty
>         ; rdfs:range
>             [ a owl:Class
>             ; rdfs:subClassOf
>                 [ a owl:Restriction
>                 ; owl:onProperty bibterm:year
>                 ; owl:minCardinality 1
>                 ]
>             ; rdfs:subClassOf
>                 [ a owl:Restriction
>                 ; owl:onProperty dc:title
>                 ; owl:minCardinality 1
>                 ]
>             ]
>         .
>
> This says that the range of bibterm:book is a class whose instances 
> have
> at least one value for bibterm:year and dc:title.
>
> In this example, though, I can't think of a reason not to just declare
> the range of bibterm:book to be bibterm:Book or something.
> -- 
> David Menendez <zednenem@psualum.com> <http://www.eyrie.org/~zednenem/>


But you've used the semantics of OWL to do this, I was wondering if 
there is a way to do this using simply the semantics of RDF/RDF-s

cheers
Matt

Received on Monday, 20 September 2004 00:52:42 UTC