0

I'm learning how to use the Good relation ontology in particular, together with the Product type ontology that it recommend as a basic ontology to further describe/type your goods: http://www.productontology.org/

Looking at how the product type ontology work i retrieved its RDF for the type book: That is i requested http://www.productontology.org/id/Book with a MIME RDF+XML. I then Get to the following file http://www.productontology.org/doc/Book.rdf

Now here is my question. I do not understand the following at the head of the ontology.

<-- OWL DL work-arounds instead of imports -->

<owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/title" />
<owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/subject" />
<owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/creator" />
<owl:AnnotationProperty rdf:about="http://purl.org/dc/terms/license" />
<owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/rights" />
<owl:AnnotationProperty rdf:about="http://purl.org/dc/elements/1.1/contributor" />
<owl:Class rdf:about="http://xmlns.com/foaf/0.1/Document" />
<owl:AnnotationProperty rdf:about="http://xmlns.com/foaf/0.1/primaryTopic" />
<owl:AnnotationProperty rdf:about="http://xmlns.com/foaf/0.1/page" />
<owl:AnnotationProperty rdf:about="http://xmlns.com/foaf/0.1/homepage" />
<owl:AnnotationProperty rdf:about="http://www.w3.org/2007/05/powder-s#describedby" />
<owl:Class rdf:about="http://schema.org/Product" />

<-- OWL 1 DL compatibility of the OWL2 deprecated property -->

<owl:AnnotationProperty rdf:about="http://www.w3.org/2002/07/owl#deprecated" />

That's it i would like to understand the prupose of this workaround. My guess is that, in OWL you can't just import a namespace and use its properties as is.... But then what about rdfs, rdf namespace.... Hence my question. Can someone Help ?

MaatDeamon
  • 9,532
  • 9
  • 60
  • 127

1 Answers1

2

The issue is not related to the namespaces. What this ontology is doing is declaring some annotation properties instead of importing the ontology that already defines them.

The reason for doing so is that the rest of that ontology does not conform tho the OWL 2 DL profile, and importing it would make the goodrelations ontology be OWL 2 Full as well.

Namespaces are not limited in ontologies: any on to go can define a class or a property in any namespace. Keeping the ontology prefix synchronised with the entities prefixes is only a convention, not an obligation.

Ignazio
  • 10,504
  • 1
  • 14
  • 25
  • Are you saying that the dublin core ontology or the FOAF ontology are not OWL2 DL compatible ? – MaatDeamon May 05 '14 at 12:15
  • Also, Why not just referencing external properties and class by their URI (using the synctatic sugar of namespace declaration or not), henceforth not importing anything ? As suggested in http://answers.semanticweb.com/questions/18505/ontology-import-vs-owlsameas-in-ontology-design – MaatDeamon May 05 '14 at 12:16
  • Yes exactly. I do not know about the current version, but for a long time foaf and Dublin core have not been OWL 2DL ontologies. – Ignazio May 05 '14 at 13:58
  • I is not possible to just use the iris without declaration because OWL 2 DL requires all entities except named individuals to be declared. The reason is parsing ambiguity for some constructs if declaration is absent. – Ignazio May 05 '14 at 14:00
  • I think i figure out the OWL 2 DL Issue. Taken from http://bloody-byte.net/rdf/dc_owl2dl/ I quote "n modelling DC as OWL ontologies others have so far chosen to declare all properties as annotation properties. This is because Dublin Core doesn't always make clear statements if the values of the properties should be literals or non-literals (and for example for dcterms:title it explicitly states that both literals and non-literals are allowed). And annotation properties allow for both because they have no semantic relevance for reasoning." – MaatDeamon May 05 '14 at 14:39
  • I beleive this has to do with Owl 2 Dl explicitly stating that data property and object property must be explicitly different thing. I mean a property must either be a data property or object property but not both. Have I spotted the right thing ? – MaatDeamon May 05 '14 at 14:41
  • What you explain about the import is very important, thx appreciated. Meanwhile why is it that, we do not import RDFS, in order to use it then ? We just declare its namespace and we can use rdfs:SubclassOf for example. that does not follows what you said. Perhaps it is a special case then ? – MaatDeamon May 05 '14 at 14:45
  • Finally, more generally, if one as an instance data file that is suppose to be OWL2 DL compatible, when reusing properties and class of others according to linked data principle, are we limited to the following choices: Annotation properties (if not interested in the reasoning conclusion), imports, defining our own term and using owl:SameAs and Owl:equivalent Class ? – MaatDeamon May 05 '14 at 14:50
  • for RDF, RDFS and OWL namespaces, the terms in those namespaces are defined in the specs (and no new terms can be added in those ontologies in a new ontology, since it is a reserved namespace) so there is no need to redefine them or to import ontologies that define them. – Ignazio May 05 '14 at 14:52
  • For annotation properties, their range can be defined only by IRIs, so datatype and class ranges can be mixed. They do not have semantics, though - and that's good, otherwise datatype and classes would end up being mixed, which again is not allowed. So I think you're right in this being one reason. – Ignazio May 05 '14 at 14:54