[157]                             home                             [159]

 

Wednesday, February 08, 2006

 

Challenge problem à

Generative Methodology Glass Bead Games

 

On using RDF to model web services

 

 

Communication from Andrea

 

 

Because of the way languages are layered in the Semantic Web tower, (the “layer cake”) with RDF at the base, a set of statements cannot be labeled "a priori" as either an OWL document, an RDFS document, or an RDF document. A set of statements is just a set of statements. It is the way you use that document that defines whether you *interpret* your set of statements as either an OWL document, or as an RDFS document, or as an RDF document. Simply using resource names from the "owl" namespace does not implicitly imports into your document all of the entailments associated to that resource. I try to clarify.

 

RDF, RDFS and OWL define a set of "semantic conditions" attached to some resource names in their vocabulary, which drive the so-called "vocabulary entailment" (you can see the W3C RDF Semantics specification for details). For example, RDF defines the semantic conditions attached to resource names "rdf:type" and "rdf:Property" and so on, RDFS includes the semantic conditions of RDF and further defines the ones attached to resource names "rdfs:subclassOf", "rdfs:Class" and so on (so that more entailments are drawn than from the RDF semantic conditions only), while OWL includes the semantic conditions of both RDF and RDFS and adds those attached to resource names "owl:TransitiveProperty", "owl:inverseOf", and so on (I am actually omitting some details here).

 

Confusion can arise due to the fact that the RDF specification, apart from the semantic conditions attached to the RDF vocabulary, also defines the overall framework - I formalized this in a reply to a previous post of yours about axioms and theories.

 

Now, once you have a set of statements, its vocabulary (i.e. the set of resource names you use in these statements) does not implicitly define which entailment conditions are considered, whether those of OWL, RDFS or merely RDF, no matter if you include some resource names from the OWL or RDFS vocabulary in your statements. As such, they are just statements.

 

It is *the way you use* that document that defines the set of semantic conditions to consider. In other words, it depends on what kind of tool you adopt to answer the questions you make on that document: if you have a document containing the resource name "owl:FunctionalProperty" and you ask a question to a program who is aware of the semantic conditions defined by OWL, then it will take into account the specific semantic conditions attached to "owl:FunctionalProperty" that guarantee you a more sophisticated retrieval of information (I'm using your terminology here). If you ask the same question to a program that is not OWL-aware but only RDFS-aware, it will answer your question by treating "owl:FunctionalProperty" as any other domain-dependent resource name you could imagine (say "foo:bar"), thus missing to draw inferences which only the semantic conditions of OWL would have determined.

 

A -very limited- metaphor: you can tell me (I am the answering program) that you have a hammer, some nails and some pieces of wood (the document), but as long as I don't know that having a hammer will help you assemble your wood with your nails (semantic conditions), I will never suggest you that you can build a table (drawn inference)... for me, it would be the same as if you had told me that you've got a "bribus", some "tyrpels" and some pieces of "groind". Resource names with no special meaning at all.

 

For this reason, *every* document is not "a priori" labelled as being written in language RDF/RDFS/OWL/..., it is the program you use to answer questions posed on that document that is labelled with such language, and the more semantic conditions it can take into account to answer your questions, the more powerful answering tool you have. Those program are commonly called "reasoners", but I avoided to use that term because I know you hate it.

 

Eventually, back to your question: you ask whether to choose "rdf:Property" or any "owl:XXXProperty", and you say "the context is in created a RDF (not OWL) ontology". Well, if you already chose to discard OWL, in the sense that you are not interested in having your questions answered by an engine which takes into account the semantic conditions of OWL, then there is no special reason to choose any "owl:XXXProperty". But still, you don't have any side-effect in adopting them instead of "rdf:Property": simply, the tool answering your questions will only know which entailments are driven by the RDF vocabulary and ignore any additional entailment related to "owl:XXXProperty".

 

I hope I have replied to your question... please tell me in case I have failed.

Regards,

 

Andrea