- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Tue, 31 Jul 2007 10:11:18 +0100
- To: Michael Kifer <kifer@cs.sunysb.edu>
- CC: RIF <public-rif-wg@w3.org>
Michael Kifer wrote:
> So, given the last part of your response, we basically agree.
> The right translation, in my opinion, is what you proposed with Jos plus
> the two (not 4 rules) like this:
>
> ?p # ?t :- ?p[rdf:type -> ?t] .
> ?p ## ?t :- ?p[rdfs:subClassOf -> ?t] .
Why not the reverse rules?
Surely if someone writes a RIF rule for, say, classification:
?p # eg:Manager :- ?p # eg:Employee, ?p eg:manages ?m .
then in order for any RDF rules (including ones which quantify over the
slot name) to see those deductions we need the inverse mapping as well.
> In this way, RDF's theory of subclasses is hooked into the minimalistic
> RIF's theory. The translation should always be with respect to some
> scope/module so the additional rif axioms will not affect other rule sets.
> Applications written in RIF dialects will be able to easily navigate within
> RDF.
I'm a little nervous of making modules an intrinsic part of the mappings
since I'm not sure how many systems other than Flora support modules.
> I did not understand what you wanted to say by "it would be preferable if
> RDF and XML data models could be mixed in the same module" below. You seem
> to imply that the current proposal prevents navigation within XML
> literals. Why so?
In the RDF mapping the XML literal is an opaque data type. If we added
builtins for pulling apart that datatype then we could navigate within
the literal. I guess the current proposal doesn't rule out *also* having
such builtins.
Dave
--
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
>
>
> --michael
>
>
>> Michael Kifer wrote:
>>>> [On the telecon I started to raise the issue of why having separate type
>>>> and subclass modelling in RIF is problematic, especially for RDF/RDFS,
>>>> the discussion timed out and I took the action to clarify the issue in
>>>> email.]
>>>>
>>>> The core issue is that in RDF, RDFS and OWL/full the properties that
>>>> express model level relations (rdf:type, rdfs:subClassOf etc) are not
>>>> distinct from those that express instance level relations. There is no
>>>> metamodel/model/instance layering.
>>>>
>>>> Take a concrete example:
>>>>
>>>> :Dave rdf:type :Person .
>>>> :Dave foaf:name "Dave" .
>>>> :Person rdfs:subClassOf :Animal .
>>>>
>>>> In Jos's translation this would correspond to RIF Frames:
>>>>
>>>> :Dave [rdf:type -> :Person, foaf:name -> "Dave"] /\
>>>> :Person[rdfs:subClassOf :Animal]
>>>>
>>>> (I've omitted all the ".."^^rif:iri and stuck to curie format for IRIs
>>>> for clarity so this is not legal RIF syntax.)
>>>>
>>>> I presume from the discussion that if we accept the Classification
>>>> machinery then the translation would have to be modified to generate:
>>>>
>>>> :Dave # :Person [foaf:name -> "Dave"] /\ :Person ## :Animal
>>>>
>>>> Now consider a RIF condition which asks for all the property values of a
>>>> specific object:
>>>>
>>>> :Dave[?p -> ?v]
>>>>
>>>> With raw RDF this should match the example data with the binding sets:
>>>>
>>>> { {p=foaf:name, v="Dave"} {p=rdf:type, v=:Person} }
>>>>
>>>> if I have enabled RDFS semantics then there should be a third binding:
>>>>
>>>> { {p=foaf:name, v="Dave"} {p=rdf:type, v=:Person}
>>>> {p=rdf:type, v=:Animal} }
>>>>
>>>> Whereas under the proposed semantics all I would get is:
>>>>
>>>> { {p=foaf:name, v="Dave"} }
>>>>
>>>> Of course we could define # and ## to just be aliases for the frame
>>>> slots corresponding to rdf:type and rdfs:subClassOf. However, that
>>>> wouldn't be very helpful for people like Gary who want to use # and ##
>>>> to represent a Java or XML Schema data models.
>>>>
>>>> We could define the aliases as part of the RDF translation so that all
>>>> RDF datasets expressed in RIF would explicitly also include the
>>>> correspondence rules:
>>>>
>>>> ?p[rdf:type -> ?t] :- ?p # ?t .
>>>> ?p[rdfs:subClassOf -> ?t] :- ?p ## ?t .
>>>>
>>>> ?p # ?t :- ?p[rdf:type -> ?t] .
>>>> ?p ## ?t :- ?p[rdfs:subClassOf -> ?t] .
>>>>
>>>> But that strikes me as horrible.
>>> First, I am not sure we need the second pair of axioms. But even if we do,
>>> I do not see any problem here. Why is it horrible? You translate one theory
>>> into another. The theory that you are translating into RIF may have its
>>> peculiarities, which may require additional axioms. Why is RDF special so
>>> that its translation should somehow not use axioms?
>> It is only special in that it is defined by W3C as one of the
>> foundations of the semantic web, RIF is part of the semantic web
>> activity and our charter calls for us to define something which is RDF
>> compatible.
>>
>> Given enough mappings anything which is sufficiently computationally
>> complete could be claimed as RDF compatible - it is a judgement call how
>> natural and useful a given set of mappings is.
>>
>> In this case the mappings to # and ## seems to buy us little.
>> We risk ending up with a nest of incompatible mappings. Gary, for
>> example, would likely implement #/## by mapping to Java classes and
>> would then be unable to translate rules like the above and would be
>> unable to work with RDF data. Not a problem for him right now but given
>> Oracle's investment in RDF and OWL it might be a problem in the future.
>> Yet there is no difficulty in using Oracle's rule engine to process RDF
>> data if it weren't for this seemingly artificial requirement to map
>> different class hierarchy concepts to the same #/## machinery.
>>
>>> Finally, none of the axioms are, in fact, necessary in the translation. You
>>> can use your old translation. As we discussed, we need a module/scope
>>> mechanism. An RDF KB can be embedded using your original translation into
>>> some module, say module named foobar. Another module may query that RDF KB
>>> using something like
>>>
>>> ?- ?o[rdf:type->?c]@foobar.
>>>
>>> or it may decide to "import" the RDF class hierarchy by adding a rule
>>>
>>> ?o:?c :- ?o[rdf:type->?c]@foobar.
>> That's a good point.
>>
>> Though it would be preferable if RDF and XML data models could be mixed
>> in the same module. RDF supports embedding of XML literals and a future
>> semantic web dialect of RIF may want to be able to express rules which
>> can navigate the internal structure of such literals within RDF data.
>>
>> Dave
>> --
>> Hewlett-Packard Limited
>> Registered Office: Cain Road, Bracknell, Berks RG12 1HN
>> Registered No: 690597 England
>>
>>
>
>
>
Received on Tuesday, 31 July 2007 09:11:54 UTC