- From: Peter F. Patel-Schneider <pfpschneider@gmail.com>
- Date: Mon, 7 Nov 2022 09:59:13 -0500
- To: public-rdf-star-wg@w3.org
I think the working group should consider basing the definition of RDF-star on RDF reification. Although the semantics of RDF reification are under-constrained they can be used to provide a meaning for embedded triples. This has several beneficial effects. First, RDF reification becomes more useful. Second, RDF systems that do not support RDF-star directly can act as if they do by creating RDF graphs that are the mapping of RDF-star graphs. Third, RDF-star becomes a simple syntactical extension to RDF. Fourth, only a little machinery is needed to define RDF-star. Fifth, variations of embedded triples can be created and made to fit correctly with both RDF-star embedded triples and RDF reification even without any extension to RDF. The basis of this definition of RDF-star is that embedded triples are a shorthand for RDF reification, which some added triples to account for their desired meaning. These additions can be modified if a different desired meaning of embedded triples is used in RDF-star. Some of this definition is shared with various existing proposals for defining RDF-star. Start with the abstract syntax of embedded triples and RDF-star graphs as defined in RDF-star documents. Define a mapping L on RDF literals and IRIs as follows: For an RDF literal t with lexical form l, optional language tag t, and datatype d, L(l) is the RDF literal with datatype xsd:string and lexical form "l"^^<d> or "l"@t^^<d>, as appropriate. For an IRI i, L(i) is the RDF literal with datatype xsd:string and lexical form i. This mapping only works correctly if RDF IRIs cannot be confused with the mappings of RDF literals. If this is not correct then use instead the lexical form enclosed in angle brackets. Given a set of recognized datatypes, the mapping * from RDF-star graphs to RDF graphs is defined as follows: Pick some embedded triple ( s, p, o ) such that none of s, p, and o are triples, replace all occurrences of the triple by a fresh blank node b, and add the triples ( b, rdf:type, rdf:Statement ) ( b, rdf:subject, s ) ( b, rdf:stated-subject, L(s) ) if s is not a blank node ( b, rdf:predicate, p ) ( b, rdf:stated-predicate, L(p) ) ( b, rdf:object, o ) if o is not a malformed literal ( b, rdf:stated-object, L(o) ) if o is not a blank node Finish when there are no embedded triples left. An RDF-star graph G1 entails an RDF-star graph G2 in RDF-star iff G1* entails G2* in RDF. Yours sincerely, Peter F. Patel-Schneider
Received on Monday, 7 November 2022 14:59:26 UTC