-
Notifications
You must be signed in to change notification settings - Fork 8
Versions of The Abstract Syntax
In a pseudo-BNF where:
- Terminals begin with an upper-case character.
- Exclusions are allowed (using
≠
or∉
).
Regular:
graph ::= triple*
triple ::= namedNode IRI object
object ::= namedNode | Literal
namedNode ::= IRI | BlankNode
Generalized (non-normative; may be used to represent results of entailment):
graph ::= triple*
triple ::= node node node
node ::= IRI | BlankNode | Literal
Basis (allows ill-formed; normative but incomplete?):
graph ::= triple*
triple ::= namedNode IRI object
object ::= namedNode | Literal | triple
namedNode ::= IRI | BlankNode
Allows triples as objects (called triple terms).
Note
Rationale: This adds complexity, due to the now recursive definition of a triple. Triples as objects are deemed necessary to have a fixed point reference to the relationship it denotes. Only add as little as is necessary, since taking away what is added is a breaking change.
Well-formed (normative):
graph ::= triple*
triple ::= ( namedNode regularPredicate object ) |
( namedNode rdf:reifies triple )
regularPredicate ::= IRI ≠ rdf:reifies
object ::= namedNode | Literal
namedNode ::= IRI | BlankNode
Only allows triples as objects of rdf:reifies
.
Generalized (non-normative; may be used to represent results of entailment):
graph ::= triple*
triple ::= node node node
node ::= IRI | BlankNode | Literal | triple
Warning
These may conflict with irregular uses in the wild.
Well-formed including type-well-formed (non-normative):
graph ::= triple*
triple ::= ( namedNode regularPredicate object ) |
( namedNode rdf:reifies triple ) |
( namedNode rdf:type namedNode )
regularPredicate ::= IRI ∉ {rdf:reifies, rdf:type}
object ::= namedNode | Literal
namedNode ::= IRI | BlankNode
Prohibits literals as types.
Well-formed including type-well-formed (non-normative) and list-well-formed (non-normative):
graph ::= triple*
triple ::= ( namedNode regularPredicate object ) |
( namedNode rdf:reifies triple ) |
( namedNode rdf:type namedNode ) |
( BlankNode rdf:first object ) |
( BlankNode rdf:rest object )
regularPredicate ::= IRI ∉ {rdf:reifies, rdf:type, rdf:first, rdf:rest}
object ::= namedNode | Literal
namedNode ::= IRI | BlankNode
Also prohibits RDF collections with named cons-pairs. Does not cover all rules for list-well-formed (that would require an additional functional restriction on those predicates).
Summary of the RDF-star WG wiki.
- Editor's guide
- Meeting minutes
- RDF terminology
- Scribes
- Use Cases collection
- RDF-star syntax and semantics:
- RDF-star "alternative baseline" (VOTED 2024.11.14 - frozen)
- RDF-star "liberal baseline" (current working version)
- RDF-star "minimal baseline" (VOTED 2024.07.18 - frozen - superseded by vote 2024.11.14 - deprecated)
- RDF-star "working baseline" (working version - deprecated)
- RDF‐star baseline examples
- RDF-star and LPGs
- Extending the baseline with "asserted" stuff
- systems and acronyms
- Task forces
- Text Direction considerations
- Text Direction Proposal
- Triple‐Edge-subgroup-proposals