pub struct QuotedTriplesSignal {
pub present: bool,
pub export_surfaces: Vec<String>,
pub export_default: Option<String>,
}Expand description
Whether the file contains quoted triples — statements standing inside other statements — and, if it does, what a consumer gets when they export it.
This is the question “will I meet triple terms in this dataset, and in which
spelling?”, which a consumer needs answered before they download a 50 GB
file and run rete export on it. The two surfaces are not interchangeable
downstream: an RDF 1.2 parser rejects <<s p o>> in N-Quads and silently
reads it as a reifier in Turtle/TriG, and an RDF-star parser rejects
<<( s p o )>> everywhere. Which one a dump carries decides whether it loads
at all, so it belongs in the card rather than in the reader’s memory of a CLI
flag.
Measured at read time from the header, never stored, exactly like
TextIndexSignal and PermutationsSignal, and for the sharpest version
of the same reason: header flag bit 2 (FLAG_HAS_QUOTED_TRIPLES) has been
written by every build since quoted triples were supported, so this is an
honest answer for every file that already exists — the 44 published
datasets included — with no re-card and no rebuild. A stored copy would be
null on all of them, which is worse than nothing: it would assert
“unknown” about files whose own header knows.
None therefore means unknown — a card read out of a saved JSON
document, with no file to measure — and never “no quoted triples”.
There is deliberately no count. The header carries presence, not cardinality, and counting would mean decoding the dictionary — outside the CARD tier’s budget (header + metadata, never the dictionary), and available only to files built after this existed, which is the failure mode above.
Fields§
§present: boolDoes the file hold at least one quoted triple as a dictionary term?
export_surfaces: Vec<String>The surfaces rete export can write them in, most interoperable first.
Empty when present is false: the question does not arise.
export_default: Option<String>Which of export_surfaces rete export writes with no flag. None
when present is false.
Implementations§
Trait Implementations§
Source§impl Clone for QuotedTriplesSignal
impl Clone for QuotedTriplesSignal
Source§impl Debug for QuotedTriplesSignal
impl Debug for QuotedTriplesSignal
Source§impl<'de> Deserialize<'de> for QuotedTriplesSignal
impl<'de> Deserialize<'de> for QuotedTriplesSignal
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for QuotedTriplesSignal
Source§impl PartialEq for QuotedTriplesSignal
impl PartialEq for QuotedTriplesSignal
Source§impl Serialize for QuotedTriplesSignal
impl Serialize for QuotedTriplesSignal
impl StructuralPartialEq for QuotedTriplesSignal
Auto Trait Implementations§
impl Freeze for QuotedTriplesSignal
impl RefUnwindSafe for QuotedTriplesSignal
impl Send for QuotedTriplesSignal
impl Sync for QuotedTriplesSignal
impl Unpin for QuotedTriplesSignal
impl UnsafeUnpin for QuotedTriplesSignal
impl UnwindSafe for QuotedTriplesSignal
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more