This document is a quick writeup of the RDF Attribution object used in the RdfDB and RdfParser modules to describe trust relationships. It is my own crazy idea and is not the product of any RDF W3C Working Group activity. For more recent work on attributions, please see this RDF Attributions paper. More recent work on attributions is available at Source Attribution in RDF.
The model I'm considering involves some trusted piece of RDF starting it off and some operators telling the parser what to do with later blocks of RDF. In a practical model, this RDF block would be in an HTTP header or the HTML HEAD. It would establish a trust policy for RDF encountered later on in the body.
Each triple has an Attribution associated with it that stores whether and why it is to be trusted. Statements generated by your parser during reification should automatically be trusted (to the extent that you trust the parser). Other triples are assiociated with an Attribution reflecting the current trusting state. The trusting state starts out as trusted and in following pieces of RDF is trusted only if the default document or link policy is "trust" or the parser is processing a n RDF Bag that was explicitly trusted.
<html><head> <title>bug warnings</title> <rdf:RDF xmlns:rdf="http://w3.org/TR/1999/PR-rdf-syntax-19990105#" xmlns:t="http://www.w3.org/RDF/schema/Trust/"> <t:documentPolicy rdf:ID="idocumentPolicy" rdf:bagID="bdocumentPolicy"> <!-- Tag statements encounered in the document and links as untrusted but include their reifications. --> <!-- what was I up to here? t:lookIn>http://www.w3.org/TR/WD-rdf-syntax#RDF</t:lookIn --> <t:defaultDocTrust>quote</t:defaultDocTrust> <t:defaultLinkTrust>quote</t:defaultLinkTrust> <!-- list the statements you trust --> <t:trust>#AlphaMathStatements</t:trust> <t:disTrust>#PentiumMathStatements</t:disTrust> <!-- t:trust><rdf:Bag rdf:bagID="bagOTrusts"> <rdf:li resource="#AlphaMathStatements"/> <rdf:li resource="#PentiumMathStatements"/> </rdf:Bag></t:trust --> </t:documentPolicy> </rdf:RDF> </head><body> <h1>bug warnings</h1> The DEC Alpha says: <rdf:RDF xmlns:rdf="http://w3.org/TR/1999/PR-rdf-syntax-19990105#" xmlns:m="http://www.w3.org/RDF/schema/Math/" xmlns:t="http://www.w3.org/RDF/schema/Trust/"> <rdf:Description ID="AlphaMathStatements" bagID="bAlphaMathStatements"> <t:trust>#Intel686MathStatements</t:trust> <t:disTrust>#PentiumMathStatements</t:disTrust> <t:hereThereBeTrust><!-- This is where you'd plant trusts if you wanted them to be nested in a t:documentPolicy -> <t:documentPolicy rdf:ID="idocumentPolicy1" rdf:bagID="bdocumentPolicy1"> </t:documentPolicy> </t:hereThereBeTrust> <m:equals><rdf:Alt ID="iAlphaEquals"> <rdf:li><rdf:Description m:number="4" rdf:ID="iAlpha4" rdf:bagID="bAlpha4"/></rdf:li> <rdf:li><rdf:Description rdf:ID="iAlphaSq" rdf:bagID="bAlphaSq"><m:squareMe rdf:bagId="bAlpha2">2</m:squareMe></rdf:Description></rdf:li> </rdf:Alt></m:equals> </rdf:Description> </rdf:RDF> The Intel 686 says: <rdf:RDF xmlns:rdf="http://w3.org/TR/1999/PR-rdf-syntax-19990105#" xmlns:m="http://www.w3.org/RDF/schema/Math/"> <rdf:Description ID="Intel686MathStatements"> <m:equals><rdf:Alt> <rdf:li><rdf:Description m:number="-1"/></rdf:li> <rdf:li><rdf:Description><m:squareMe>i</m:squareMe></rdf:Description></rdf:li> </rdf:Alt></m:equals> </rdf:Description> </rdf:RDF> The hacked Pentium says: <rdf:RDF xmlns:rdf="http://w3.org/TR/1999/PR-rdf-syntax-19990105#" xmlns:m="http://www.w3.org/RDF/schema/Math/"> <rdf:Description ID="PentiumMathStatements"> <m:equals><rdf:Alt> <rdf:li><rdf:Description m:number="24.9999999997"/></rdf:li> <rdf:li><rdf:Description><m:squareMe>5</m:squareMe></rdf:Description></rdf:li> </rdf:Alt></m:equals> </rdf:Description> </rdf:RDF> </body></html>
GET /JoeUser/BugWarnings.html HTTP/1.1 Connection: Keep-Alive User-Agent: Mozilla/4.5 [en] (X11; U; Linux 2.0.36 i686) Host: out.there:8080 Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */* Accept-Encoding: gzip Accept-Language: de Accept-Charset: iso-8859-1,*,utf-8 HTTP/1.1 200 OK Date: Wed, 20 Jan 1999 10:26:57 GMT Server: Apache/1.2.6 Last-Modified: Wed, 20 Jan 1999 10:22:10 GMT ETag: "113464e-162d-36a5ae52" Content-Length: 5677 Accept-Ranges: bytes Keep-Alive: timeout=15, max=100 Connection: Keep-Alive Content-Type: text/html; charset=ISO-8859-1 RDF-Site-Policy: <rdf:RDF xmlns:rdf="http://www.w3.org/TR/WD-rdf-syntax#" xmlns:t="http://www.w3.org/RDF/schema/Trust/"> <t:documentPolicy> <!-- Tag statements encounered in the document and links as untrusted but include their reifications. --> <t:defaultDocTrust>quote</t:defaultDocTrust> <t:defaultLinkTrust>quote</t:defaultLinkTrust> <!-- Trust Bob and Joe's statements --> <t:trust>http://out.there:8080/JoeUser/BugWarnings.html</t:trust> </t:documentPolicy> </rdf:RDF> <html><head> <title>bug warnings</title>...This site seems to trust JoeUser to write trustworthy bug warnings. It is up to you to decide whether to trust their site administrator.
I have sketched examples of RDF in HTML and HTTP, but I can envision the "trust the first encountered RDF" rule applying to other document protocols, like XSL, or streaming protocols, like RTSP