RE: FOAF DL
Hi! One note of caution! The FOAF-DL ontology is only (approximately) equivalent to the original version of FOAF in OWL /2/, since OWL keys have only been introduced as of OWL 2. Older existing systems that depend on the FOAF inverse-functional data properties (IFDPs) have to make sure that they can also work with the new OWL 2 keys, before switching to the FOAF-DL ontology. If such a system internally uses a reasoner that is able to work with IFDPs but does not know about OWL 2 keys (e.g. the current version of the Jena rule reasoner), then the system will not be able to make the expected inferences anymore, i.e. that two foaf:Person having the same mbox_sha1sum are the same person. So one will have to decide to either stay with the old FOAF ontology, or to replace the currently used reasoner. This is, of course, a general problem when trying to upgrade to a newer specification. But it should at least be stated explicitly, when publishing a variant of an ontology that is in wide use. Michael -Original Message- From: semantic-web-requ...@w3.org [mailto:semantic-web-requ...@w3.org] On Behalf Of Antoine Zimmermann Sent: Friday, July 16, 2010 1:17 PM To: foaf-...@lists.foaf-project.org; Semantic Web; Linked Data community Subject: FOAF DL Dear all, I know that the compatibility of FOAF with OWL DL has been discussed a lot in the past (and still sometimes surfaces again). However, I'm wondering, would it be reasonable to provide a DL version of FOAF in complement of the official FOAF ontology? More generally, wouldn't it be reasonable to provide alternative versions of an ontology? Think of XHTML: there are three different XML Schemas for XHTML [1]. One could imagine alternative versions like FOAF (Full), FOAF-DL, FOAF-lite... Anyway, I did it: I've made a FOAF-DL ontology which modifies the FOAF ontology such that (1) it is in OWL 2 DL and (2) it maximally preserves inferences of the original FOAF ontology [2]. Interestingly, FOAF-DL is an OWL 2 RL ontology (in a nutshell, OWL 2 RL is a subset of OWL 2 DL with low computational complexity and that is compatible with rule-based inference engine). You may notice that there are strange annotation properties for this ontology: owl:Ontology rdf:about=http://purl.org/az/foaf#; ... yoda:preferredVersion rdf:resource=http://xmlns.com/foaf/0.1// ... /owl:Ontology The Yoda vocabulary [3] is used to relate alternative versions of an ontology. Here, it is said that there is a preferred version, which is the official FOAF ontology. Critiques to any of the previous comments are welcome. [1] http://www.w3.org/TR/xhtml1-schema/#schemas [2] The FOAF-DL ontology. http://purl.org/az/foaf [3] Yoda: A Vocabulary for Linking Alternative Specifications of a Vocabulary. http://purl.org/NET/yoda Regards, -- Antoine Zimmermann Post-doctoral researcher at: Digital Enterprise Research Institute National University of Ireland, Galway IDA Business Park Lower Dangan Galway, Ireland antoine.zimmerm...@deri.org http://vmgal34.deri.ie/~antzim/ -- Dipl.-Inform. Michael Schneider Research Scientist, Information Process Engineering (IPE) Tel : +49-721-9654-726 Fax : +49-721-9654-727 Email: michael.schnei...@fzi.de WWW : http://www.fzi.de/michael.schneider === FZI Forschungszentrum Informatik an der Universität Karlsruhe Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe Tel.: +49-721-9654-0, Fax: +49-721-9654-959 Stiftung des bürgerlichen Rechts, Az 14-0563.1, RP Karlsruhe Vorstand: Prof. Dr.-Ing. Rüdiger Dillmann, Dipl. Wi.-Ing. Michael Flor, Prof. Dr. Dr. h.c. Wolffried Stucky, Prof. Dr. Rudi Studer Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus ===
Re: FOAF DL
El 16/07/10 13:16, Antoine Zimmermann escribió: Dear all, [...] The Yoda vocabulary [3] is used to relate alternative versions of an ontology. Here, it is said that there is a preferred version, which is the official FOAF ontology. Critiques to any of the previous comments are welcome. Not a critique to the previous comments but I think it would be interesting to include an IP license in your work :-) Thank you for your Yoda vocabulary. -- Best regards, Javier de la Cueva
FOAF DL
Dear all, I know that the compatibility of FOAF with OWL DL has been discussed a lot in the past (and still sometimes surfaces again). However, I'm wondering, would it be reasonable to provide a DL version of FOAF in complement of the official FOAF ontology? More generally, wouldn't it be reasonable to provide alternative versions of an ontology? Think of XHTML: there are three different XML Schemas for XHTML [1]. One could imagine alternative versions like FOAF (Full), FOAF-DL, FOAF-lite... Anyway, I did it: I've made a FOAF-DL ontology which modifies the FOAF ontology such that (1) it is in OWL 2 DL and (2) it maximally preserves inferences of the original FOAF ontology [2]. Interestingly, FOAF-DL is an OWL 2 RL ontology (in a nutshell, OWL 2 RL is a subset of OWL 2 DL with low computational complexity and that is compatible with rule-based inference engine). You may notice that there are strange annotation properties for this ontology: owl:Ontology rdf:about=http://purl.org/az/foaf#; ... yoda:preferredVersion rdf:resource=http://xmlns.com/foaf/0.1// ... /owl:Ontology The Yoda vocabulary [3] is used to relate alternative versions of an ontology. Here, it is said that there is a preferred version, which is the official FOAF ontology. Critiques to any of the previous comments are welcome. [1] http://www.w3.org/TR/xhtml1-schema/#schemas [2] The FOAF-DL ontology. http://purl.org/az/foaf [3] Yoda: A Vocabulary for Linking Alternative Specifications of a Vocabulary. http://purl.org/NET/yoda Regards, -- Antoine Zimmermann Post-doctoral researcher at: Digital Enterprise Research Institute National University of Ireland, Galway IDA Business Park Lower Dangan Galway, Ireland antoine.zimmerm...@deri.org http://vmgal34.deri.ie/~antzim/
Re: FOAF DL
Looks interesting. In the description you say (1) foaf:mbox_sha1sum, foaf:jabberID, foaf:aimChatID, foaf:icqChatID, foaf:yahooChatID and foaf:msnChatID are not owl:InverseFunctionalProperties anymore; instead, they are defined as owl:Keys for foaf:Agents, which is practically the same I agree that making them owl:Keys is the only option for DL but the comment practically the same is maybe overstating it. My understanding was that the semantics of Keys [1] only applies to named individuals and so isn't effective on anonymous individuals (which is a common use case in FOAF). Is that correct? Dave [1] http://www.w3.org/TR/owl2-direct-semantics/#Keys On Fri, 2010-07-16 at 12:16 +0100, Antoine Zimmermann wrote: Dear all, I know that the compatibility of FOAF with OWL DL has been discussed a lot in the past (and still sometimes surfaces again). However, I'm wondering, would it be reasonable to provide a DL version of FOAF in complement of the official FOAF ontology? More generally, wouldn't it be reasonable to provide alternative versions of an ontology? Think of XHTML: there are three different XML Schemas for XHTML [1]. One could imagine alternative versions like FOAF (Full), FOAF-DL, FOAF-lite... Anyway, I did it: I've made a FOAF-DL ontology which modifies the FOAF ontology such that (1) it is in OWL 2 DL and (2) it maximally preserves inferences of the original FOAF ontology [2]. Interestingly, FOAF-DL is an OWL 2 RL ontology (in a nutshell, OWL 2 RL is a subset of OWL 2 DL with low computational complexity and that is compatible with rule-based inference engine). You may notice that there are strange annotation properties for this ontology: owl:Ontology rdf:about=http://purl.org/az/foaf#; ... yoda:preferredVersion rdf:resource=http://xmlns.com/foaf/0.1// ... /owl:Ontology The Yoda vocabulary [3] is used to relate alternative versions of an ontology. Here, it is said that there is a preferred version, which is the official FOAF ontology. Critiques to any of the previous comments are welcome. [1] http://www.w3.org/TR/xhtml1-schema/#schemas [2] The FOAF-DL ontology. http://purl.org/az/foaf [3] Yoda: A Vocabulary for Linking Alternative Specifications of a Vocabulary. http://purl.org/NET/yoda Regards,
Re: FOAF DL
Beware, technical stuff follows. Le 16/07/2010 13:07, Dave Reynolds a écrit : Looks interesting. In the description you say (1) foaf:mbox_sha1sum, foaf:jabberID, foaf:aimChatID, foaf:icqChatID, foaf:yahooChatID and foaf:msnChatID are not owl:InverseFunctionalProperties anymore; instead, they are defined as owl:Keys for foaf:Agents, which is practically the same I agree that making them owl:Keys is the only option for DL but the comment practically the same is maybe overstating it. My understanding was that the semantics of Keys [1] only applies to named individuals and so isn't effective on anonymous individuals (which is a common use case in FOAF). Is that correct? Yes, you are correct. Here, I made a simplifying short cut but saying practically the same. In most cases, a blank node can be simply considered as a named individual, using the blank node ID (regardless of whether it is specified in the serialisation or internally represented) as a name for the individual. In this case, the un-named individual are only those that exists because of inferences but which have no identifier at all (for instance, when using the OWL construct owl:someValueFrom. Such shortcuts are practically used in reasoners to deduce things about blank nodes in the same way they deduce things about URIs. Using this approach on the following data: foaf:yahooChatID a owl:DatatypeProperty ; rdfs:domain foaf:Agent . foaf:Agent owl:hasKey ( foaf:yahooChatID ). _:bnode1 foaf:yahooChatID xyz . _:bnode2 foaf:yahooChatID xyz . one can infer: _:bnode1 owl:sameAs _:bnode2 . When the serialisation does not specify a name for a blank node, their is still an internal name somewhere. For instance: [ a :Person ] foaf:yahooChatID xyz ; foaf:firstName John . [ a :Person ] foaf:yahooChatID xyz ; foaf:lastName Doe . allows one to infer that there is one person with first name John and last name Doe (but its local identifier is only known to the reasoner). An example where the inference would not hold is as follows: :chatID a owl:DatatypeProperty ; rdfs:domain :Agent . :Agent owl:hasKey ( :chatID ). :hasFather a owl:ObjectProperty, owl:FunctionalProperty . :john :chatId xyz . :bob a [ owl:Restriction ; owl:onProperty :hasFather ; owl:allValuesFrom [ a owl:Restriction; owl:onProperty :chatId; owl:hasValue xyz ] ] . from this, we cannot conclude that John is the father of Bob, although Bob has a father (un-named) whose :chatId is exactly the same as John. If :chatId was inverse functional, we could conclude it. However, I said practically the same because this case is unlikely to occur in practice. Hope it's clear enough. For the specs for keys, see [1,2,3]. [1] OWL 2 Web Ontology Language - Structural Specification and Functional-Style Syntax, Sect.9.5 Keys. http://www.w3.org/TR/owl2-syntax/#Keys [2] OWL 2 Web Ontology Language - New Features and Rationale, Sect.2.2.6 F9: Keys. http://www.w3.org/TR/owl2-new-features/#F9:_Keys [3] OWL 2 Web Ontology Language - Direct Semantics, Sect.2.3.5 Keys. http://www.w3.org/TR/owl2-semantics/#Keys Regards, Dave [1] http://www.w3.org/TR/owl2-direct-semantics/#Keys On Fri, 2010-07-16 at 12:16 +0100, Antoine Zimmermann wrote: Dear all, I know that the compatibility of FOAF with OWL DL has been discussed a lot in the past (and still sometimes surfaces again). However, I'm wondering, would it be reasonable to provide a DL version of FOAF in complement of the official FOAF ontology? More generally, wouldn't it be reasonable to provide alternative versions of an ontology? Think of XHTML: there are three different XML Schemas for XHTML [1]. One could imagine alternative versions like FOAF (Full), FOAF-DL, FOAF-lite... Anyway, I did it: I've made a FOAF-DL ontology which modifies the FOAF ontology such that (1) it is in OWL 2 DL and (2) it maximally preserves inferences of the original FOAF ontology [2]. Interestingly, FOAF-DL is an OWL 2 RL ontology (in a nutshell, OWL 2 RL is a subset of OWL 2 DL with low computational complexity and that is compatible with rule-based inference engine). You may notice that there are strange annotation properties for this ontology: owl:Ontology rdf:about=http://purl.org/az/foaf#; ... yoda:preferredVersion rdf:resource=http://xmlns.com/foaf/0.1// ... /owl:Ontology The Yoda vocabulary [3] is used to relate alternative versions of an ontology. Here, it is said that there is a preferred version, which is the official FOAF ontology. Critiques to any of the previous comments are welcome. [1] http://www.w3.org/TR/xhtml1-schema/#schemas [2] The FOAF-DL ontology. http://purl.org/az/foaf [3] Yoda: A Vocabulary for Linking Alternative Specifications of a Vocabulary. http://purl.org/NET/yoda Regards, -- Antoine Zimmermann Post-doctoral researcher at: Digital Enterprise Research Institute
Re: FOAF DL
On Fri, 2010-07-16 at 16:17 +0100, Antoine Zimmermann wrote: Beware, technical stuff follows. Le 16/07/2010 13:07, Dave Reynolds a écrit : Looks interesting. In the description you say (1) foaf:mbox_sha1sum, foaf:jabberID, foaf:aimChatID, foaf:icqChatID, foaf:yahooChatID and foaf:msnChatID are not owl:InverseFunctionalProperties anymore; instead, they are defined as owl:Keys for foaf:Agents, which is practically the same I agree that making them owl:Keys is the only option for DL but the comment practically the same is maybe overstating it. My understanding was that the semantics of Keys [1] only applies to named individuals and so isn't effective on anonymous individuals (which is a common use case in FOAF). Is that correct? Yes, you are correct. Here, I made a simplifying short cut but saying practically the same. In most cases, a blank node can be simply considered as a named individual, using the blank node ID (regardless of whether it is specified in the serialisation or internally represented) as a name for the individual. In this case, the un-named individual are only those that exists because of inferences but which have no identifier at all (for instance, when using the OWL construct owl:someValueFrom. Such shortcuts are practically used in reasoners to deduce things about blank nodes in the same way they deduce things about URIs. Using this approach on the following data: foaf:yahooChatID a owl:DatatypeProperty ; rdfs:domain foaf:Agent . foaf:Agent owl:hasKey ( foaf:yahooChatID ). _:bnode1 foaf:yahooChatID xyz . _:bnode2 foaf:yahooChatID xyz . one can infer: _:bnode1 owl:sameAs _:bnode2 . When the serialisation does not specify a name for a blank node, their is still an internal name somewhere. For instance: [ a :Person ] foaf:yahooChatID xyz ; foaf:firstName John . [ a :Person ] foaf:yahooChatID xyz ; foaf:lastName Doe . allows one to infer that there is one person with first name John and last name Doe (but its local identifier is only known to the reasoner). An example where the inference would not hold is as follows: :chatID a owl:DatatypeProperty ; rdfs:domain :Agent . :Agent owl:hasKey ( :chatID ). :hasFather a owl:ObjectProperty, owl:FunctionalProperty . :john :chatId xyz . :bob a [ owl:Restriction ; owl:onProperty :hasFather ; owl:allValuesFrom [ a owl:Restriction; owl:onProperty :chatId; owl:hasValue xyz ] ] . from this, we cannot conclude that John is the father of Bob, although Bob has a father (un-named) whose :chatId is exactly the same as John. If :chatId was inverse functional, we could conclude it. However, I said practically the same because this case is unlikely to occur in practice. Hope it's clear enough. For the specs for keys, see [1,2,3]. Yes that's clear and reasonable. I had looked at those parts of the specs but the phrasing in [1] seemed to rule out blank nodes since the RDF semantics [3] specifically states that blank nodes are existentially quantified variables: are treated as simply indicating the existence of a thing, without using, or saying anything about, the name of that thing. (This is not the same as assuming that the blank node indicates an 'unknown' URI reference; for example, it does not assume that there is any URI reference which refers to the thing. However, you are basically saying that the Skolemization lemma applies here, which makes sense. Thanks, Dave [3] http://www.w3.org/TR/rdf-mt/#unlabel [1] OWL 2 Web Ontology Language - Structural Specification and Functional-Style Syntax, Sect.9.5 Keys. http://www.w3.org/TR/owl2-syntax/#Keys [2] OWL 2 Web Ontology Language - New Features and Rationale, Sect.2.2.6 F9: Keys. http://www.w3.org/TR/owl2-new-features/#F9:_Keys [3] OWL 2 Web Ontology Language - Direct Semantics, Sect.2.3.5 Keys. http://www.w3.org/TR/owl2-semantics/#Keys Regards, Dave [1] http://www.w3.org/TR/owl2-direct-semantics/#Keys On Fri, 2010-07-16 at 12:16 +0100, Antoine Zimmermann wrote: Dear all, I know that the compatibility of FOAF with OWL DL has been discussed a lot in the past (and still sometimes surfaces again). However, I'm wondering, would it be reasonable to provide a DL version of FOAF in complement of the official FOAF ontology? More generally, wouldn't it be reasonable to provide alternative versions of an ontology? Think of XHTML: there are three different XML Schemas for XHTML [1]. One could imagine alternative versions like FOAF (Full), FOAF-DL, FOAF-lite... Anyway, I did it: I've made a FOAF-DL ontology which modifies the FOAF ontology such that (1) it is in OWL 2 DL and (2) it maximally preserves inferences of the original FOAF ontology [2]. Interestingly, FOAF-DL is an OWL 2 RL ontology