mirror of
https://github.com/OpenSPG/openspg.git
synced 2025-07-28 03:22:34 +00:00
support add multi edge instance
This commit is contained in:
parent
e80ebf08f7
commit
a6e9198bb5
@ -206,7 +206,7 @@ class OpenSPGDslParser extends ParserInterface {
|
||||
predicate.source,
|
||||
predicate.target,
|
||||
attrFields.toMap,
|
||||
predicate.direction))) ++ ddlInfo._2,
|
||||
predicate.direction), isDefine = true)) ++ ddlInfo._2,
|
||||
List.apply(depBlk))
|
||||
case _ => DDLBlock(Set.apply(ddlBlockOp) ++ ddlInfo._2, List.apply(ruleBlock))
|
||||
}
|
||||
|
@ -1016,7 +1016,7 @@ class OpenSPGDslParserTest extends AnyFunSpec {
|
||||
.predicate
|
||||
.label equals ("belongTo")
|
||||
val text =
|
||||
"""└─DDLBlock(ddlOp=Set(AddPredicate(PredicateElement(belongTo,p,(s:User,BinaryOpExpr(name=BEqual)),EntityElement(cardUser,accountQueryCrowd,o),Map(__to_id_type__->VString(value=accountQueryCrowd/cardUser),__to_id__->VString(value=cardUser),__from_id__->UnaryOpExpr(name=GetField(id)),__from_id_type__->VString(value=User)),OUT))))
|
||||
"""└─DDLBlock(ddlOp=Set(AddPredicate(PredicateElement(belongTo,p,(s:User,BinaryOpExpr(name=BEqual)),EntityElement(cardUser,accountQueryCrowd,o),Map(__to_id_type__->VString(value=accountQueryCrowd/cardUser),__to_id__->VString(value=cardUser),__from_id__->UnaryOpExpr(name=GetField(id)),__from_id_type__->VString(value=User)),OUT),true)))
|
||||
* └─FilterBlock(rules=LogicRule(R5,智信确权,BinaryOpExpr(name=BEqual)))
|
||||
* └─FilterBlock(rules=LogicRule(R4,绑定数目,BinaryOpExpr(name=BGreaterThan)))
|
||||
* └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(BindNum) -> AggOpExpr(name=Sum))), group=List(IRNode(s,Set(zhixin))))
|
||||
@ -1048,7 +1048,7 @@ class OpenSPGDslParserTest extends AnyFunSpec {
|
||||
|
||||
val block = parser.parse(dsl)
|
||||
print(block.pretty)
|
||||
val text = """└─DDLBlock(ddlOp=Set(AddProperty((s:CustFundKG.Account),aggTransAmountNumByDay,KTBoolean)))
|
||||
val text = """└─DDLBlock(ddlOp=Set(AddProperty((s:CustFundKG.Account),aggTransAmountNumByDay,KTBoolean,true)))
|
||||
| └─ProjectBlock(projects=ProjectFields(Map(IRProperty(s,aggTransAmountNumByDay) -> ProjectRule(IRProperty(s,aggTransAmountNumByDay),Ref(refName=o)))))
|
||||
| └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(o) -> AggOpExpr(name=AggUdf(groupByAttrDoCount,List(VString(value=tranDate), VLong(value=50)))))), group=List(IRNode(s,Set())))
|
||||
| └─FilterBlock(rules=LogicRule(R1,当月交易,BinaryOpExpr(name=BNotSmallerThan)))
|
||||
|
@ -1038,10 +1038,8 @@ public class LocalRDG extends RDG<LocalRDG> {
|
||||
shuffleAndGroup(alias, isLast);
|
||||
|
||||
} else {
|
||||
if (isLast) {
|
||||
this.kgGraphList = doMerge(this.kgGraphList, this.kgGraphSchema);
|
||||
}
|
||||
}
|
||||
|
||||
for (KgGraph<IVertexId> kgGraph : this.kgGraphList) {
|
||||
IVertex<IVertexId, IProperty> vertex = kgGraph.getVertex(alias).get(0);
|
||||
|
@ -1515,6 +1515,8 @@ public class TransitiveOptionalTest {
|
||||
LocalReasonerRunner runner = new LocalReasonerRunner();
|
||||
LocalReasonerResult result = runner.run(task);
|
||||
Assert.assertEquals(2, result.getRows().size());
|
||||
Assert.assertEquals("6", result.getRows().get(0)[3]);
|
||||
Assert.assertEquals("100", result.getRows().get(0)[4]);
|
||||
}
|
||||
|
||||
public static class GangGraphLoader extends AbstractLocalGraphLoader {
|
||||
|
Loading…
x
Reference in New Issue
Block a user