On 07/30/2013 02:13 PM, Gregg Kellogg wrote:
> In spec/latest/json-ld-api/index.html:
>
>> -      minting new "Skolem IRIs" as per
>> -      <cite><a href="http://www.w3.org/TR/rdf11-concepts/#section-skolemization">Replacing Blank Nodes with IRIs</a></cite>
>> -      of [[RDF11-CONCEPTS]].</p>
>> +      as a <tref>property</tref>, while JSON-LD does.  Therefore, by default
>> +      RDF triples that would have contained blank nodes as properties are
>> +      discarded when interpreting JSON-LD as RDF. For authors and developers
>> +      working with <tref title="blank node">blank nodes</tref> as
>> +      <tref title="property">properties</tref> when deserializing to RDF,
>> +      three potential approaches are suggested (in descending order of preference):</p>
>> +
>> +    <ol>
>> +      <li>If the author is not yet ready to commit to a stable IRI, the
>> +        property should be mapped to an IRI that is documented as unstable.</li>
>> +      <li>If the developer wishes to use <tref title="blank node">blank nodes</tref>
>> +        as <tref title="property">properties</tref> and also wishes to interpret
>> +        the data as a (non-standard)
>
> I don't think non-standard is accurate, as generalized
> triples/graphs/datasets are in rdf11-concepts, which is a standard. That
> spec just notes interoperability issues, rather than considering
> generalized rdf to be non-standard:
>
>     It is sometimes convenient to loosen the requirements on RDF
>     triples. For example, the completeness of the RDFS entailment rules
>     is easier to show with a generalization of RDF triples. Note that
>     any users of these generalized notions need to be aware that their
>     use may cause interoperability problems, and that there is no
>     requirement on the part of any RDF tool to accept, process, or
>     produce anything beyond regular RDF triples, graphs, and datasets.
>
>     A */generalized RDF triple/* is an RDF triple generalized so that
>     subjects, predicates, and objects are all allowed to be IRIs, blank
>     nodes, or literals. A */generalized RDF graph/* is an RDF graph of
>     generalized RDF triples, i.e., a set of generalized RDF triples. A
>     */generalized RDF dataset/* is an RDF dataset of generalized RDF
>     graphs where graph labels can be IRIs, blank nodes, or literals.

That section is explicitly marked as non-normative.  The whole purpose 
of distinguishing between normative and non-normative text is to be 
clear about what constitutes an official part of the standard and what 
doesn't.  Literals as subjects, and blank nodes as predicates very 
clearly are *not* a part of the RDF standard.  In fact, conforming 
SPARQL processors are *required* to eliminate such triples from query 
results:

http://www.w3.org/TR/sparql11-query/#construct
[[
If any such instantiation produces a triple containing an unbound 
variable or an illegal RDF construct, such as a literal in subject or 
predicate position, then that triple is not included in the output RDF 
graph.
]]

I think it is very important to avoid creating any ambiguity about what 
is a part of the standard and what is not, and avoid leading people 
toward *inadvertently* generating non-standard RDF.

David