- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Mon, 16 Jul 2007 14:59:20 +0100
- To: Sandro Hawke <sandro@w3.org>
- CC: public-rif-wg@w3.org
Sandro Hawke wrote:
> Dave Reynolds <der@hplb.hpl.hp.com> writes:
>
>> In most cases I hope Consts will be IRIs not strings in which case
>> presumably they would be:
>>
>> <Const rdf:about="http://example.com/myrules#book" />
>>
>> Adopting RDF/XML style does mean we can't use qname/curie notation for
>> shortening IRIs. We can only use relative IRIs so the above could be:
>>
>> <Const rdf:about="#book" />
>>
>> in a document with xml:base of "http://example.com/myrules".
> ...
>> All IRI Const nodes are likely to be serialized multiple times.
>>
>> I don't understand why that might be a problem. If it really is a
>> problem then there are a couple of solutions which preserve RDF/XML
>> compatibility.
>>
>> (i) Serialize each Const once (e.g. at first occurrence) then all
>> references to the same Const would use rdf:resource:
>>
>> ...
>> <Const rdf:about="#book" />
>> ...
>> <Uniterm>
>> <op rdf:resource="#book">
>> <arg rdf:parsetype="Collection">
>> <Var rif:name="Author" />
>> <Const rif:name="LeRif" />
>> </arg>
>> </Uniterm>
>>
>> (ii) Serialize Consts as blank nodes with a property giving their IRI
>>
>> <Const rif:iri="#book" />
>>
>
> There are several issues about Consts that I hope we can separate.
>
> 1. One parse-graph node for each Const? (suggested: yes)
>
> If the same constant occurs several times in a ruleset, are the
> occurances collected in the abstract parse graph? Does the "Const"
> element represent a constant or an occurance-in-the-parse-stream of
> a constant? I had some discussion with Gary and Hassan about this,
> in Innsbruck, and I think our conclusion was the former, they should
> be collected, as in your version (i) above.
>
> In NodeID terms (so this can work without URIs), we say:
>
> <Uniterm>
> <op ... />
> <arg rdf:parseType="Collection">
> <Const rdf:nodeID="n32"><name>book</name></Const>
> ...
>
> I had been thinking that on subsequent occurances one would use a
> nodeID reference on a property (syntactically like like
> rdf:resource), but I see now that wont work because
> parseType=Collection doesn't allow it, so subsequence occurances
> will have to be like this:
>
> <Uniterm>
> <op ... />
> <arg rdf:parseType="Collection">
> <Const rdf:nodeID="n32" />
> ...
>
> which should be fine, too. (I don't like the fact that it's not
> immediately obvious whether this is a first-occurance of a Const
> with no properties or a later occurance of the same Const, but a
> program can tell.) In my mind, the "name" property has no formal
> semantics; it's just for roundtripping.
In XML terms having to manage nodeIDs sounds potentially annoying. As I
said before, it seems to me to be OK to have the parse tree as a tree
and let the model construction/compilation stage apply any scoping rules
to the symbols to identify the coreferences.
In RDF terms then I don't see there being problems with multiple
serializations either.
There would be an issue if we were attaching open metadata to a Const
node and expecting it to be carried across to other references to the
same Const. If that was needed then I'd expect the RIF syntax to include
a declaration statement where such metadata could be attached.
> 2. Semantic for IRIs for Consts? (suggestion: just syntax)
>
> If, intead of a nodeID, we used an IRI for a Const, ... what would
> it mean, in the Semantic Web / RDF sense? For example, here's an
> n3 rule that says that everyone I know is a geek:
>
> { <http://www.w3.org/People/Sandro/data#SandroHawke> foaf:knows ?x }
> =>
> { ?x rdf:type stereotypes:Geek }
>
> Now, that first term is an IRI for a person, me. How would we
> translate this to RIF?
>
> NOT this:
>
> <Const rdf:about="http://www.w3.org/People/Sandro/data#SandroHawke">
>
> because that Const is a syntactic element, not a person. (I am not
> a logical constant -- I am a person.)
Maybe, maybe not.
I've been treating Const as a "symbolic constant" or "logical constant"
(as you put it in your reply to Gary) with an open semantic domain. That
makes it pretty much an alias for rdfs:Resource and you are an
rdfs:Resource :-)
However, I guess you are right that we are treating the RDFS model of
asn06/7 as being a model of the parse tree not a domain ontology and so
Const is a node in the tree. In that case sure use rif:iri or rif:href
instead. Presumably that property would be inverseFunctional.
Dave
--
Hewlett-Packard Limited
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
Received on Monday, 16 July 2007 13:59:49 UTC