Skip to content

knowledge/fact_validation.hpp

Post-generation fact checking against Grokipedia (PTDS §8.3) More...

Namespaces

Name
sgns
sgns::neoswarm
sgns::neoswarm::knowledge

Classes

Name
class sgns::neoswarm::knowledge::FactValidation
Checks factual claims in generated output against Grokipedia.
struct sgns::neoswarm::knowledge::FactValidation::ValidationResult

Detailed Description

Post-generation fact checking against Grokipedia (PTDS §8.3)

Date: 2026-05-06

Source code

#ifndef NEOSWARM_KNOWLEDGE_FACTVALIDATION_HPP
#define NEOSWARM_KNOWLEDGE_FACTVALIDATION_HPP

#include "knowledge_retrieval.hpp"
#include "common/types.hpp"
#include <memory>
#include <string>
#include <vector>

namespace sgns::neoswarm::knowledge
{
    class FactValidation
    {
        public:
        struct ValidationResult
        {
            bool passed_ = true;
            float m_contradictionScore = 0.0f;
            std::vector<std::string> m_contradictions;
            std::string suggestion_;
        };

        explicit FactValidation( std::shared_ptr<KnowledgeRetrieval> retrieval );

        ValidationResult Validate( const std::string& output, const std::vector<KnowledgeFact>& grounding_facts ) const;

        bool IsAvailable() const;

        private:
        std::shared_ptr<KnowledgeRetrieval> retrieval_;

        std::vector<std::pair<std::string, double>> ExtractNumericClaims( const std::string& text ) const;

        bool Contradicts( double claim, const std::string& fact_content ) const;
    };

} // namespace sgns::neoswarm::knowledge

#endif // NEOSWARM_KNOWLEDGE_FACTVALIDATION_HPP

Updated on 2026-07-25 at 22:56:57 +0000