- From: Pat Hayes <phayes@ihmc.us>
- Date: Tue, 10 Nov 2009 10:44:13 -0600
- To: Alan Ruttenberg <alanruttenberg@gmail.com>
- Cc: Holger Knublauch <holger@topquadrant.com>, public-owl-dev@w3.org, Michael Schneider <schneid@fzi.de>
On Nov 9, 2009, at 7:33 PM, Alan Ruttenberg wrote: > On 11/9/09, Pat Hayes <phayes@ihmc.us> wrote: >> >> On Nov 9, 2009, at 5:23 PM, Alan Ruttenberg wrote: >> >>> On Mon, Nov 9, 2009 at 4:06 PM, Holger Knublauch <holger@topquadrant.com >>>> wrote: >>>> Dear group, >>>> >>>> I am unsure about the right (and best) way of mapping user-defined >>>> OWL 2 >>>> datatypes to RDF graphs. I have been skimming through the OWL specs >>>> but all >>>> examples I saw were of the following format (see >>>> http://www.w3.org/TR/2009/REC-owl2-syntax-20091027/#Datatype_Definitions) >>>> >>>> : >>>> >>>> a:SSN rdf:type rdfs:Datatype . >>>> a:SSN owl:equivalentClass _:x . >>>> _:x rdf:type rdfs:Datatype . >>>> _:x owl:onDatatype xsd:string . >>>> _:x owl:withRestrictions ( _:y ) . >>>> _:y xsd:pattern "[0-9]{3}-[0-9]{2}-[0-9]{4}" . >>>> >>>> This means that a datatype is an instance of rdfs:Datatype that has >>>> an >>>> owl:equivalentClass of another (anonymous) datatype which then >>>> points to the >>>> fact restrictions as an rdf:List. >>>> >>>> 1) Would it also be allowed to use rdfs:subClassOf instead of >>>> owl:equivalentClass? >>> >>> No. The mappings are defined precisely in >>> http://www.w3.org/TR/2009/REC-owl2-mapping-to-rdf-20091027/ >> >> But wait. It is certainly *correct* to use subClassOf instead of >> EquivalentClass, since the latter entails the former. It might not >> convey the full intention of the original OWL, of course, but that >> does not make it into an error. > > I read his question as a question of whether the cited > DatatypeDefinition could be encoded as he proposes. It can not. Ah, I see. True. We need to have a more nuanced term than simply "correct" in these emails. > >>>> 2) Would it be legal to attach the restrictions directly on the >>>> named >>>> datatype instead of going through the (very verbose!) blank node, >>>> e.g. >>>> >>>> a:SSN rdf:type rdfs:Datatype . >>>> a:SSN owl:onDatatype xsd:string . >>>> a:SSN owl:withRestrictions ( _:y ) . >>>> a:SSN xsd:pattern "[0-9]{3}-[0-9]{2}-[0-9]{4}" . >>> >>> No. If you don't see a mapping rule to create or parse such >>> triples in >>> the mapping document, then the construct isn't syntactically >>> correct. >> >> Correct in what language? It is perfectly legal RDF. > > It is perfectly legal RDF and that makes it perfectly legal OWL Full, > apologies if there was confusion. > > I assumed that since he posted to the OWL list he wanted to know about > how OWL parsers in general would see this. They would not parse it > into the DatatypeDefinition that was cited, and any OWL tools that use > the direct semantics would not process this construct. Indeed. > >>> If you wrote the above it wouldn't mean what you intend it to mean. >> >> Can you elaborate on why not? > > Because he cited an example and asked if what was offered was a > reasonable alternative encoding of that construct. The background was > a question of best practices. The encoding offered is not semantically > equivalent, even in OWL Full, and not part of the language OWL DL. I > consider best practice to use the specified construct when there is > one that matches intent, and in order to promote interoperability. What I meant was, what inferences would go wrong. Not rhetorical, I was genuinely interested in the details. BUt let us take this offline or drop the subject. > >> >>> >>> >>>> 3) Is it legal (and good practice) to subclass existing datatypes, >>>> such as >>>> >>>> a:SNN rdfs:subClass xsd:string . >>> >>> Not legal in OWL-DL. If you look at the reverse mapping the >>> consequence of this is that a:SNN and xsd:string will be considered >>> classes, not datatypes and that a term can't denote both a class and >>> datatype. >> >> Which is absurd, of course. A datatype *is* a class in RDF. Still, >> OWL >> is rich in such absurdities. > > Once there is a specification there isn't a question of absurd in the > sense you suggest. The spec *defines* what the thing is. True, but a definition can still be absurd. But let us not harp on this, my views on the awkwardness of the OWL-DL syntactic restrictions are well known. > >>> In OWL Full, this is allowed, but I wouldn't consider it good >>> practice >> >> I would. In what sense is a datatype *not* a class? It is defined to >> be a set, after all. > > That's fine, but then your best practice would prevent the user who > used the construct from making productive use of OWL-DL reasoners. I > don't think *my* customers would find that good advice. Particularly > as it seems unnecessary. Well, it is very handy to be able to treat a datatype as a class, and the RDFS spec actually requires it. BUt of course, if one is aiming to use OWL-DL reasoners, then one should conform to OWL-DL, as you say. I guess I was reacting to the use of the term 'best practice', which seems to claim a degree of correctness which transcends any one particular dialect. But perhaps you did not intend this broader sense: apologies for the misunderstanding. Pat > > -Alan > >> >> Pat Hayes >> >> >>> - however perhaps Michael Schneider has a different opinion? ccing >>> him. >>> >>> -Alan >>> >>>> >>>> Thanks for clarifying these, so that we can built the best >>>> practices into >>>> our tools. >>>> Holger >>>> >>>> >>>> >>> >>> >> >> ------------------------------------------------------------ >> IHMC (850)434 8903 or (650)494 >> 3973 >> 40 South Alcaniz St. (850)202 4416 office >> Pensacola (850)202 4440 fax >> FL 32502 (850)291 0667 mobile >> phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes >> >> >> >> >> >> > ------------------------------------------------------------ IHMC (850)434 8903 or (650)494 3973 40 South Alcaniz St. (850)202 4416 office Pensacola (850)202 4440 fax FL 32502 (850)291 0667 mobile phayesAT-SIGNihmc.us http://www.ihmc.us/users/phayes
Received on Tuesday, 10 November 2009 16:45:31 UTC