mirror of
https://github.com/OpenSPG/openspg.git
synced 2025-07-28 19:36:49 +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.source,
|
||||||
predicate.target,
|
predicate.target,
|
||||||
attrFields.toMap,
|
attrFields.toMap,
|
||||||
predicate.direction))) ++ ddlInfo._2,
|
predicate.direction), isDefine = true)) ++ ddlInfo._2,
|
||||||
List.apply(depBlk))
|
List.apply(depBlk))
|
||||||
case _ => DDLBlock(Set.apply(ddlBlockOp) ++ ddlInfo._2, List.apply(ruleBlock))
|
case _ => DDLBlock(Set.apply(ddlBlockOp) ++ ddlInfo._2, List.apply(ruleBlock))
|
||||||
}
|
}
|
||||||
|
@ -1016,7 +1016,7 @@ class OpenSPGDslParserTest extends AnyFunSpec {
|
|||||||
.predicate
|
.predicate
|
||||||
.label equals ("belongTo")
|
.label equals ("belongTo")
|
||||||
val text =
|
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(R5,智信确权,BinaryOpExpr(name=BEqual)))
|
||||||
* └─FilterBlock(rules=LogicRule(R4,绑定数目,BinaryOpExpr(name=BGreaterThan)))
|
* └─FilterBlock(rules=LogicRule(R4,绑定数目,BinaryOpExpr(name=BGreaterThan)))
|
||||||
* └─AggregationBlock(aggregations=Aggregations(Map(IRVariable(BindNum) -> AggOpExpr(name=Sum))), group=List(IRNode(s,Set(zhixin))))
|
* └─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)
|
val block = parser.parse(dsl)
|
||||||
print(block.pretty)
|
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)))))
|
| └─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())))
|
| └─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)))
|
| └─FilterBlock(rules=LogicRule(R1,当月交易,BinaryOpExpr(name=BNotSmallerThan)))
|
||||||
|
@ -1038,10 +1038,8 @@ public class LocalRDG extends RDG<LocalRDG> {
|
|||||||
shuffleAndGroup(alias, isLast);
|
shuffleAndGroup(alias, isLast);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
if (isLast) {
|
|
||||||
this.kgGraphList = doMerge(this.kgGraphList, this.kgGraphSchema);
|
this.kgGraphList = doMerge(this.kgGraphList, this.kgGraphSchema);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
for (KgGraph<IVertexId> kgGraph : this.kgGraphList) {
|
for (KgGraph<IVertexId> kgGraph : this.kgGraphList) {
|
||||||
IVertex<IVertexId, IProperty> vertex = kgGraph.getVertex(alias).get(0);
|
IVertex<IVertexId, IProperty> vertex = kgGraph.getVertex(alias).get(0);
|
||||||
|
@ -1515,6 +1515,8 @@ public class TransitiveOptionalTest {
|
|||||||
LocalReasonerRunner runner = new LocalReasonerRunner();
|
LocalReasonerRunner runner = new LocalReasonerRunner();
|
||||||
LocalReasonerResult result = runner.run(task);
|
LocalReasonerResult result = runner.run(task);
|
||||||
Assert.assertEquals(2, result.getRows().size());
|
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 {
|
public static class GangGraphLoader extends AbstractLocalGraphLoader {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user