W3C home > Mailing lists > Public > public-rdf-dawg@w3.org > July to September 2005

(Struggling for) Clarification about RDF Graph

From: Bijan Parsia <bparsia@isr.umd.edu>
Date: Wed, 7 Sep 2005 14:37:25 -0400
Message-Id: <b08d655fbca5dee442efbf9d70b3144a@isr.umd.edu>
To: RDF Data Access Working Group <public-rdf-dawg@w3.org>

Sorry to spec lawyer, er...ok, no I'm not :)

In 1 Introduction, the first sentence reads:

"""An RDF graph is a set of triples; each triple consists of a subject,  
a predicate and an object. This is defined in RDF Concepts and Abstract  
Syntax[12]."""

I read this as saying that SPARQL defers to the RDF specs for the  
meaning of "RDF Graph", i.e., the smallest thing which may be queried.  
(SPARQL does define a dataset, which is an extension of RDF Graphs).

In  
http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-data-model  
:

"""The assertion of an RDF triple says that some relationship,  
indicated by the predicate, holds between the things denoted by subject  
and object of the triple. The assertion of an RDF graph amounts to  
asserting all the triples in it, so the meaning of an RDF graph is the  
conjunction (logical AND) of the statements corresponding to all the  
triples it contains. A formal account of the meaning of RDF graphs is  
given in [RDF-SEMANTICS]."""

This suggests that RDF graphs *have* a meaning. It's unclear whether  
the term "RDF Graph" refers to the abstract syntax alone, or the  
interpreted syntax. *If* it is the latter, then I believe the current  
sparql document requires at least RDF entailment closure. I also  
believe that it is ambiguous in the RDF specifications.

Ok, but this section is non-normative. Section 4  
<http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section- 
URIspaces>:

"""Vocabulary terms in the rdf: namespace are listed in section 5.1 of  
the RDF syntax specification [RDF-SYNTAX]. Some of these terms are  
defined by the RDF specifications to denote specific concepts. Others  
have syntactic purpose (e.g. rdf:ID is part of the RDF/XML syntax)."""

Which is suggestive. Hmm. But the:
	http://www.w3.org/TR/rdf-syntax-grammar/

Sez:
	"""The mapping to the RDF graph is done by emitting statements in the  
form defined in the N-Triples section of RDF Test Cases [RDF-TESTS]  
which creates an RDF graph, that has semantics defined by RDF Semantics  
[RDF-SEMANTICS]."""

and
	"""2.1 Introduction

The RDF Concepts and Abstract Syntax [RDF-CONCEPTS] defines the RDF  
Graph data model (Section 3.1) and the RDF Graph abstract syntax  
(Section 6). Along with the RDF Semantics [RDF-SEMANTICS] this provides  
an abstract syntax with a formal semantics for it. """

However, the RDF Semantics:
<http://www.w3.org/TR/rdf-mt/#prelim>

"""Semantic extensions of RDF MUST conform to the semantic conditions  
for simple interpretations described in sections 1.3 and 1.4 and 1.5  
and those for RDF interpretations described in section 3.1 of this  
document. Any name for entailment in a semantic extension SHOULD be  
indicated by the use of a vocabulary entailment term. The semantic  
conditions imposed on an RDF semantic extension MUST define a notion of  
vocabulary
"""							^^^^^^^^^^^^^^
key bit.
"""
  entailment which is valid according to the model-theoretic semantics  
described in the normative parts of this document; except that if the  
semantic extension is defined on some syntactically restricted subset  
of RDF graphs, then the semantic conditions need only apply to this  
subset. Specifications of such syntactically restricted semantic  
extensions MUST include a specification of their syntactic conditions  
which are sufficient to enable software to distinguish unambiguously  
those RDF graphs to which the extended semantic conditions apply.  
Applications based on such syntactically restricted semantic extensions  
MAY treat RDF graphs which do not conform to the required syntactic  
restrictions as syntax errors."""

I don't see how to go below RDF interpretations.

However, clearly:	
<http://www.w3.org/TR/2004/REC-rdf-concepts-20040210/#section-Graph- 
syntax>

Defines a notion of "abstract syntax" and calls it the "RDF Graph".

6.3 defines a notion of equivalence under which, IIRC, Enrico's two  
graphs are *not* equivalent.

Which the RDF semantics uses, but:

"""Merging lemma. The merge of a set S of RDF graphs is entailed by S,  
and entails every member of S. [Proof]

This means that a set of graphs can be treated as equivalent to its  
merge, i.e. a single graph, as far as the model theory is concerned.  
This can be used to simplify the terminology somewhat: for example, the  
definition of S entails E, above, can be paraphrased by saying that S  
entails E when every interpretation which satisfies S also satisfies  
E."""

which suggests a standard notion of equivalence as mutual entailment.

I haven't thought about data literals. I mean, is value matching  
defined via Concepts and Abstract syntax section 6.5.1? it seems like  
literal equality in the abstract syntax is *not* defined by value  
equality (though the filter operations have some freedom in their  
definition).

=========
=========
=========

I think we can say things like, "subgraph of the Abstract Syntax of an  
RDF document/graph/whatever" and be unambiguous (but it might not do  
*all* that we want). Graph equivalent graphs should return the same  
answer sets modulo possible renaming of bnodes.

We can also say, "subgraph of the RDF Abstract Syntax  of the deductive  
closure under RDF entailment of an RDF Graph" and be unambiguous.  
Mutually entailed graphs should return the same graphs...maybe period.  
Have to think about that.

We can also probably say, "subgraph of the RDF abstract syntax of the  
transformation to triples of the deductive closure under OWL Lite  
enatilment of an RDF Graph" without ambiguity (pace some details). We  
might die of humiliation or oxygen deprivation, but that's a diffeernt  
story :)

Some of this is thinking aloud, in case this isn't obvious :)

One thing is clear, we must make clear that subgraph is subgraph of the  
*abstract syntax* of an RDF Graph. Or rather, RDF Graph shorn of its  
semantics. Actually, as I understand it, the whole trick *depends* on  
this.

Cheers,
Bijan.
Received on Wednesday, 7 September 2005 18:37:37 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 16:15:24 GMT