Datalog 规则永远计算
Datalog Rule taking forever to compute
我正在使用 RDFox v3,当我导入以下规则时需要很长时间才能 运行。我的数据存储有 CRM 信息,我正在尝试使用规则对它们的来源进行分类。
[ ?customer, :referral, "true"] :- [ ?customer, :has, ?referralLink] .
我不明白我做错了什么。
谢谢!
这表明您的数据中有很多 :has
关系。如果是这种情况,您列为 ?customer
和 ?referralLink
的变量将匹配与 :has
相关的所有内容。无论他们是否是客户,这都会发生,这就是我建议可能花时间的。
如果 ?customer
和 ?referralLink
有类型,您可能希望在规则中指定。例如,假设它们是 :CustomerType
和 :ReferralLinkType
类型,那么您的规则将变为:
[ ?customer, :referral, "true"] :-
[ ?customer, :has, ?referralLink] ,
[ ?customer, a, :CustomerType] ,
[ ?referralLink, a, :ReferralLinkType] .
希望对您有所帮助。
我正在使用 RDFox v3,当我导入以下规则时需要很长时间才能 运行。我的数据存储有 CRM 信息,我正在尝试使用规则对它们的来源进行分类。
[ ?customer, :referral, "true"] :- [ ?customer, :has, ?referralLink] .
我不明白我做错了什么。
谢谢!
这表明您的数据中有很多 :has
关系。如果是这种情况,您列为 ?customer
和 ?referralLink
的变量将匹配与 :has
相关的所有内容。无论他们是否是客户,这都会发生,这就是我建议可能花时间的。
如果 ?customer
和 ?referralLink
有类型,您可能希望在规则中指定。例如,假设它们是 :CustomerType
和 :ReferralLinkType
类型,那么您的规则将变为:
[ ?customer, :referral, "true"] :-
[ ?customer, :has, ?referralLink] ,
[ ?customer, a, :CustomerType] ,
[ ?referralLink, a, :ReferralLinkType] .
希望对您有所帮助。