W3C home > Mailing lists > Public > semantic-web@w3.org > January 2013

Re: Reification, Named Graphs, Embedded RDF XML, Mathematical Semantics and RDFa

From: Gregg Kellogg <gregg@greggkellogg.net>
Date: Tue, 8 Jan 2013 03:00:48 -0500
To: Paul Tyson <phtyson@sbcglobal.net>
CC: Adam Sobieski <adamsobieski@hotmail.com>, "semantic-web@w3.org" <semantic-web@w3.org>
Message-ID: <7F74F560-047B-45F0-95D3-8893130B6B29@greggkellogg.net>
On Jan 7, 2013, at 6:46 PM, Paul Tyson <phtyson@sbcglobal.net> wrote:

> (Omitting all lists except semantic-web from reply, since my question is
> only tangentially related to original post.)
> On Mon, 2013-01-07 at 13:50 -0500, Gregg Kellogg wrote:
>> On Jan 6, 2013, at 12:46 PM, Adam Sobieski <adamsobieski@hotmail.com> wrote:
>>> Math Working Group,
>>> RDFa Working Group,
>>> Semantic Web Interest Group,
>>> Greetings. I would like to broach for discussion some topics about RDFa-enhanced hypertext documents, reification, named graphs, embedded RDF XML, and mathematical semantics.
>>> Reification and Named Graphs
>>> "In Semantic Web languages, such as Resource Description Framework (RDF) and Web Ontology Language (OWL), a statement is a binary relation. It is used to link two individuals or an individual and a value. Applications sometimes need to describe other RDF statements, for instance, to record information like when statements were made, or who made them, which is sometimes called 'provenance' information. As an example, we may want to represent properties of a relation, such as our certainty about it, severity or strength of a relation, relevance of a relation, and so on." (http://en.wikipedia.org/wiki/Reification_(computer_science)#RDF_and_OWL)
>>> Reification in RDF is illustrated in RDF Primer (http://www.w3.org/TR/rdf-primer/) in examples 19 and 20 (http://www.w3.org/TR/rdf-primer/#example19, http://www.w3.org/TR/rdf-primer/#example20) and in RDF 1.1 XML Syntax Specification in example 20 (http://dvcs.w3.org/hg/rdf/raw-file/default/rdf-xml/index.html#example20).
>>> "Named graphs are a key concept of Semantic Web architecture in which a set of Resource Description Framework statements (a graph) are identified using a URI, allowing descriptions to be made of that set of statements such as context, provenance information or other such metadata." (http://en.wikipedia.org/wiki/Named_graph)
>>> While some describe named graphs as a conceptual superset of reification functionality, both features are useful to have with regard to expressiveness in XML-based formats, such as HTML+RDFa; RDFa should include both reification and named graph functionality.
>> AFAIK, reification is being considered archaic by the RDF 1.1 working group; it's thought that named graphs support the use cases of reification without requiring a data transform. As I understand it, the use case is to reify statements, so that properties can be asserted on the statement:
>> [ a rdf:Statement; rdf:subject :s; rdf:predicate :p; rdf:object :o ] :some_interesting :fact .
>> Use a named graph also allows statements to be made against a statement, by enclosing that statement in a named graph:
>> <s> { :s :p :o . }
>> { <s> :some_intereseting :fact . }
> Is the proposed deprecation of reification in a working draft somewhere?
> Or is it just at the discussion stage, and if so can you point to the
> relevant email thread(s)?

The issue is tracked as ISSUE-25 [1] in the RDF WG Issue Tracker. I don't actually see a resolution about making it archaic, but that seems to be the consensus from what I've followed (this all happened before I joined the RDF WG). Sandro had a draft text discussing the reasons for making it archaic [2]:

        In logic languages, include RDF, "reification" is a
        sophisticated and error-prone technique where instead of
        asserting knowledge about some domain of discourse, one asserts
        knowledge about expression of the language itself.    While
        reification can be useful, is is often misunderstood and is easy
        to misuse.   With the latest RDF specifications (@@@tbd), new
        mechanisms are provided which provide similar functionality to
        reification but in a more direct and safe manner.  We recommend
        in nearly all cases these alternatives be used instead.
        Some of the problems with RDF 2004 reification include:
        * Confusion about whether two RDF statements with the same
        subject, predicate, and object are the same statement.   (In RDF
        2004, they are not.)
        * No standard way to gather RDF statements together to form RDF
        * Referential transparency (instead of opacity), which can lead
        to surprising results in the presence of inference.  For
        example, if statements are made about a particular triple
        (S,P,O) and a reasoner determines S=SS, then it is
        (counter-intuitively) licensed to infer those statements are
        also true about triple (SS,P,O). 
        * Inefficiency: using a straightforward implementation, 3-6
        times as many triples are needed to enable referring to existing
        * Potential for paradoxical or ill-defined meaning of
        oddly-formed and self-referential constructs

However, this remains one of the open issues the group will need to complete. Proponents of RDF reification should make their arguments on rdf-comments@w3.org.

> I can see how the named graph alternative would work for many use cases,
> but I have recently developed an interesting application of the first
> form of reification (in turtle) shown above. It is useful for declaring
> and querying simple forms of "semantic equality" among triples using
> only plain vanilla RDF and SPARQL.
>> Unless something changes in RDF 1.1, I don't expect that you'll see native-support for statement reification show up in any other serialization format, including RDFa.
> ´╗┐It would be unfortunate if the form were to be deprecated, since it
> could lead to diminished tool support for it.

I don't expect the vocabulary items to go away (rdf:Statement, rdf:subject, rdf:predicate and rdf:object), they're too strongly entrenched. You will continue to be able to express reified statements in any RDF syntax. RDF/XML is the only syntax I'm aware of that had support for emitting reifications of parsed statements, however.

You can also argue that direct support for reification is not as important given the ease of doing it in SPARQL, which didn't exist at the time RDF/XML came out.


[1] http://www.w3.org/2011/rdf-wg/track/issues/25

[2] http://lists.w3.org/Archives/Public/public-rdf-wg/2011Apr/0285.html

> Regards,
> --Paul
>> Named graphs, however, I think will find more and more use. It's too late for anything based on RDFa 1.1, but I expect that RDFa 1.2 (or 2.0) if/when it comes about, will include support for named graphs.
>>> In hypertext documents, graph triples can be reified syntactically in RDFa, with RDFa syntactic sugar, and <script> elements, <metadata> elements, <annotation> and <annotation-xml> elements can each contain RDF XML as well as other semantic formats.
>>> Embedded RDF XML, Mathematical Semantics and RDFa
>>> <math>
>>>  <semantics>
>>>    ...
>>>    <annotation-xml encoding="application/ssml+xml">...</annotation-xml>
>>>    ...
>>>    <annotation-xml encoding="application/openmath+xml">...</annotation-xml>
>>>    <annotation-xml encoding="application/rdf+xml">...</annotation-xml>
>>>  </semantics>
>>> </math>
>>> The indicated MathML can be enhanced with RDFa in ways including: (a) RDFa on the <math> element and on the <annotation-xml> element with the RDF XML version of the mathematical semantics, (b) RDFa on the <math> element and the utilization of a collection ontology (e.g. http://purl.org/co/), a collection with the semantics of multipart MIME, multipart/alternative, and RDFa on a number of the indicated <annotation-xml> elements.
>>> An RDFa parser (http://www.w3.org/TR/rdfa-core/#s_model, http://www.w3.org/TR/rdfa-core/#s_rdfaindetail) could process the contents of the <annotation-xml> element in a number of ways including parsing the RDF XML content into the default graph.
>> As I discussed privately, I think this is the purview of a host language, not RDFa Core. RDFa is designed to be used with host languages that define rules for using RDFa within their content-type. For example, SVG has rules for both RDF/XML and RDFa content. In this case, if <math> is defined in a namespace for which you can define a content-type, you can specify the way in which compliant processors should handle embedded elements and attributes. This can include processing of normal RDFa attributes on these tags, and defining semantics for @encoding on the <annotation-xml> element within that namespace, which can allow you to associate rules for @encoding="application/rdf+xml" or anything else.
>>> Future Directions
>>> Future directions include uses of RDFa on the scales of entire documents, chapters, sections, subsections and across multiple paragraphs. Argumentation and mathematical proofs are examples of such uses of RDFa in hypertext-based documents, digital books and digital textbooks. Mathematical proofs, including those in documents with complex document structure, can be processed into RDF graphs from hypertext-based documents, including the semantics of mathematical expressions.
>>> Existing argumentation and proof representation formats include: Argument Interchange Format (AIF), AIF-RDF, Argument Markup Language (AML), Legal Knowledge Interchange Format (LKIF), Open Mathematical Documents (OMDoc), Proof Markup Language (PML), Thousands of Problems for Theorem Provers (TPTP), and Thousands of Solutions for Theorem Provers (TSTP). Additionally, new formats and ontologies are possible for argumentation, for mathematical proofs, in RDFa-enhanced hypertext-based documents, digital books and digital textbooks.
>>> With RDFa, the thesis statements, topic sentences, and supporting sentences in documents can be indicated, as can relationships between claims, evidence, measurement and methodology, enhancing document navigation, enhancing the indexing, search, and retrieval of documents, enhancing content discovery, and enhancing document summarization.
>> This sounds like it might be a good use case for named graphs and output a dataset, rather than a single graph. One way to do this within a host language definition, would be to add an attribute to the <annotation-xml> element, such as @graphName, which would identify the name of a graph into which the enclosed documents should be parsed. You could then, in the body of the document, use RDFa to make statements relative to that graph name; this doesn't require any change to RDFa, but does require that processors support the special processing rules defined for MathML.
>> Gregg
>>> The quoting and citing of referenced materials and the cross-referencing of document elements pertain to argumentation structures in documents. Where documents quote or cite referenced materials, argumentation structures in RDFa may have typed links to referenced materials or to content in referenced materials and where documents cross-reference document elements, argumentation structures in RDFa may have typed links to document elements.
>>> Kind regards,
>>> Adam Sobieski

Received on Tuesday, 8 January 2013 08:15:43 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 1 March 2016 07:42:39 UTC