- From: Perry A. Caro <caro@Adobe.COM>
- Date: Mon, 02 Aug 1999 14:13:44 -0700
- To: rdf-dev@mailbase.ac.uk
- CC: www-rdf-comments@w3.org
Can a property have no value? Based on the following production in the formal grammar BNF: [6.12] propertyElt :== // fourth alternative: '<' propName idRefAttr? bagIdAttr? propAttr* '/>' ... a completely empty XML element (no attributes, no children) looks like a valid property. But what does it mean? When I give the following to SiRPAC: 1: <?xml version="1.0"?> 2: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 3: xmlns:test="test#"> 4: <rdf:Description about="http://www.w3.org/RDF/Implementations/SiRPAC/"> 5: <test:noValue/> 6: </rdf:Description> 7: </rdf:RDF> I get a valid triple: triple('test#noValue', 'http://www.w3.org/RDF/Implementations/SiRPAC/', 'online#genid2'). But what is the value? Is it a made-up literal? A made-up resource? This gets even more confusing when I switch to the abbreviated form: 1: <?xml version="1.0"?> 2: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 3: xmlns:test="test#"> 4: <rdf:Description about="http://www.w3.org/RDF/Implementations/SiRPAC/" 5: test:noValue=""/> 6: </rdf:RDF> SiRPAC generates no triples!??! ======================== I think the second answer from SiRPAC is correct, and the first is wrong. I don't think a completely empty XML tag is a valid property. Based on my interpretation of the narrative description of the grammar in the RDFMS, I think the BNF should really be: [6.12] propertyElt :== // fourth alternative: '<' propName bagIdAttr? (idAttr | resourceAttr) propAttr* '/>' In other words: * 0 or 1 bagID attribute * AND, an ID attribute OR a resource reference * AND, 0 or more property attributes This makes it clear that the value of an empty tag is either the ID or the resource reference. The abbreviated form of ="" should be explicitly disallowed. Perry
Received on Monday, 2 August 1999 17:14:38 UTC