diff --git a/builder/core/src/main/java/com/antgroup/openspg/builder/core/physical/BasePhysicalNode.java b/builder/core/src/main/java/com/antgroup/openspg/builder/core/physical/BasePhysicalNode.java index 05830c70..7a9c63d5 100644 --- a/builder/core/src/main/java/com/antgroup/openspg/builder/core/physical/BasePhysicalNode.java +++ b/builder/core/src/main/java/com/antgroup/openspg/builder/core/physical/BasePhysicalNode.java @@ -16,7 +16,6 @@ package com.antgroup.openspg.builder.core.physical; import com.antgroup.openspg.builder.core.runtime.BuilderContext; import com.antgroup.openspg.builder.model.exception.BuilderException; import java.util.Objects; -import lombok.AllArgsConstructor; import lombok.Getter; /** diff --git a/builder/core/src/main/java/com/antgroup/openspg/builder/core/runtime/BuilderExecutor.java b/builder/core/src/main/java/com/antgroup/openspg/builder/core/runtime/BuilderExecutor.java index 51a825c9..38dba2a3 100644 --- a/builder/core/src/main/java/com/antgroup/openspg/builder/core/runtime/BuilderExecutor.java +++ b/builder/core/src/main/java/com/antgroup/openspg/builder/core/runtime/BuilderExecutor.java @@ -8,10 +8,16 @@ import java.util.List; /** 知识构建executor接口,提供一个默认实现,主要负责初始化物理计划并按批执行 */ public interface BuilderExecutor { - - /** 初始化物理执行计划,如果报错则不再进行构建流程 */ + /** + * Initialize the executor and initialize the physical execution plan. If an exception is thrown, + * the builder process will not proceed further. + */ void init(PhysicalPlan plan, BuilderContext context) throws BuilderException; - /** 输入一批record,执行物理计划并返回计算的结果,如果抛出异常则表示这一批数据构建失败,由runner处理 */ + /** + * Input a batch of records, execute the physical plan, and return the computational results. If + * an exception is thrown, it signifies a processing failure of this batch of data, and the + * exception will be handled by the runner. + */ List eval(List inputRecords) throws BuilderRecordException; } diff --git a/builder/model/src/main/java/com/antgroup/openspg/builder/model/pipeline/config/RelationMappingNodeConfig.java b/builder/model/src/main/java/com/antgroup/openspg/builder/model/pipeline/config/RelationMappingNodeConfig.java index ccba3e55..c9f00953 100644 --- a/builder/model/src/main/java/com/antgroup/openspg/builder/model/pipeline/config/RelationMappingNodeConfig.java +++ b/builder/model/src/main/java/com/antgroup/openspg/builder/model/pipeline/config/RelationMappingNodeConfig.java @@ -1,11 +1,10 @@ package com.antgroup.openspg.builder.model.pipeline.config; import com.antgroup.openspg.builder.model.pipeline.enums.NodeTypeEnum; -import java.util.List; - import com.antgroup.openspg.core.schema.model.identifier.BaseSPGIdentifier; import com.antgroup.openspg.core.schema.model.identifier.RelationIdentifier; import com.google.common.collect.Lists; +import java.util.List; import lombok.Getter; @Getter diff --git a/builder/runner/local/pom.xml b/builder/runner/local/pom.xml index 7ab1e9bd..4e0a09bc 100644 --- a/builder/runner/local/pom.xml +++ b/builder/runner/local/pom.xml @@ -1,6 +1,6 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 com.antgroup.openspg.builder diff --git a/python/knext/__init__.py b/python/knext/__init__.py index 60c19536..797b6791 100644 --- a/python/knext/__init__.py +++ b/python/knext/__init__.py @@ -12,7 +12,3 @@ __package_name__ = "openspg-knext" __version__ = "0.0.1-beta2" - -from knext.common.env import init_env - -init_env() diff --git a/python/knext/client/builder.py b/python/knext/client/builder.py index 5515de27..f3c02f18 100644 --- a/python/knext/client/builder.py +++ b/python/knext/client/builder.py @@ -97,6 +97,7 @@ class BuilderClient(Client): "--alterOperation", kwargs.get("alter_operation", AlterOperationEnum.Upsert), "--logFile", log_file_name ] + print(' '.join(java_cmd)) subprocess.call(java_cmd) def query(self, job_inst_id: int): diff --git a/python/knext/examples/riskmining1/.knext.cfg b/python/knext/examples/riskmining1/.knext.cfg new file mode 100644 index 00000000..23bb3535 --- /dev/null +++ b/python/knext/examples/riskmining1/.knext.cfg @@ -0,0 +1,16 @@ +[local] +project_name = RiskMining +description = RiskMining +project_id = 2 +namespace = RiskMining +project_dir = riskmining +schema_dir = schema +schema_file = riskmining.schema +builder_dir = builder +builder_operator_dir = builder/operator +builder_record_dir = builder/error_record +builder_job_dir = builder/job +builder_model_dir = builder/model +reasoner_dir = reasoner +reasoner_result_dir = reasoner/result + diff --git a/python/knext/examples/riskmining1/README.md b/python/knext/examples/riskmining1/README.md new file mode 100644 index 00000000..8e0d0aac --- /dev/null +++ b/python/knext/examples/riskmining1/README.md @@ -0,0 +1,59 @@ +To create a knowledge graph based on OpenSPG, +we usually follow the steps below. + +- Create a new knowledge graph project named "RiskMining". + +```bash +knext project create --prj_path . +``` + +- First, create the schema of the project, which defines the ontology + of the business domain of the knowledge graph. For example, in our RiskMining project, + its ontology includes App, Cert, Person, Company, and their relations, etc. + +```bash +knext schema commit +``` + +- Then, we will build the knowledge graph based on the schema. + The data source of the knowledge graph is a local CSV file located in the ./builder/job/data directory. + During the process of the knowledge graph construction, it may be necessary to preprocess the raw data. + In such cases, we need to invoke construction operators. + Therefore, before constructing the knowledge graph, we need to publish the construction operators. + +```bash +knext operator publish CertLinkerOperator +``` + +- Next, we can start building the knowledge graph based on the created schema and published operators. + We can import entities such as App, Cert, Person, Company, along with their attributes and relations. + After completing these operations, we will obtain a RiskMining knowledge graph. + +```bash +knext builder submit TaxOfRiskUser,TaxOfRiskApp,Cert,Company,CompanyHasCert +knext builder submit App,Device,Person,PersonFundTrans,PersonHasDevice,PersonHoldShare +``` + +- Next, we can also explore some more exciting possibilities. We define some logical rules, + which define what kind of App is a gambling App and what kind of users are + developers of gambling Apps". These logic rules are calculated dynamically when necessary. + +```bash +knext schema reg_concept_rule --file ./schema/concept.rule +``` + +- Finally, we execute GQL/KGDSL to perform queries and reasoning, inferring hidden knowledge + based on existing factual data and logical rules within the knowledge graph. + In the following example, we can output the phone number of each person, generate risk applications + based on previously defined rules, and also output the developers and owners of these risk applications. + It can be observed that this knowledge does not exist in the original factual data; + rather, it is derived through inference based on the original factual data and the defined expert rules. + Now, Let's run it! + +```bash +knext reasoner query --file ./reasoner/gambling_app.dsl +knext reasoner query --dsl "MATCH (phone:STD.ChinaMobile)<-[:hasPhone]-(u:RiskMining.Person) RETURN u.name,phone.id" +knext reasoner query --dsl "MATCH (s:\`RiskMining.TaxOfRiskApp\`/\`赌博应用\`) RETURN s.id" +knext reasoner query --dsl "MATCH (s:\`RiskMining.TaxOfRiskUser\`/\`赌博App开发者\`) RETURN s.id,s.name" +``` + diff --git a/python/knext/examples/riskmining1/builder/job/app.py b/python/knext/examples/riskmining1/builder/job/app.py new file mode 100644 index 00000000..0e465480 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/app.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 Ant Group CO., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except +# in compliance with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License +# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. +from knext.client.model.builder_job import BuilderJob +from knext.component.builder import CsvSourceReader, SPGTypeMapping, KGSinkWriter +from knext.examples.riskmining.schema.riskmining_schema_helper import RiskMining + + +class App(BuilderJob): + def build(self): + source = CsvSourceReader( + local_path="./builder/job/data/App.csv", + columns=["id", "riskMark", "useCert"], + start_row=2, + ) + + mapping = ( + SPGTypeMapping(spg_type_name=RiskMining.App.__typename__) + .add_field("id", RiskMining.App.id) + .add_field("id", RiskMining.App.name) + .add_field("riskMark", RiskMining.App.riskMark) + .add_field("useCert", RiskMining.App.useCert) + ) + + sink = KGSinkWriter() + + return source >> mapping >> sink diff --git a/python/knext/examples/riskmining1/builder/job/cert.py b/python/knext/examples/riskmining1/builder/job/cert.py new file mode 100644 index 00000000..6c073632 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/cert.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 Ant Group CO., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except +# in compliance with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License +# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. + +from knext.client.model.builder_job import BuilderJob +from knext.component.builder import CsvSourceReader, SPGTypeMapping, KGSinkWriter +from knext.examples.riskmining.schema.riskmining_schema_helper import RiskMining + + +class Cert(BuilderJob): + def build(self): + source = CsvSourceReader( + local_path="./builder/job/data/Cert.csv", + columns=["id", "certNum"], + start_row=2, + ) + + mapping = ( + SPGTypeMapping(spg_type_name=RiskMining.Cert.__typename__) + .add_field("certNum", RiskMining.Cert.id) + .add_field("certNum", RiskMining.Cert.certNum) + .add_field("certNum", RiskMining.Cert.name) + ) + + sink = KGSinkWriter() + + return source >> mapping >> sink diff --git a/python/knext/examples/riskmining1/builder/job/data/App.csv b/python/knext/examples/riskmining1/builder/job/data/App.csv new file mode 100644 index 00000000..26ca5d77 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/App.csv @@ -0,0 +1,201 @@ +id,riskMark,useCert +com.ucyDA.gNLGD.oQsbzPe.nQd,UNKNOWN,68802adde35845d76eeb172ff8ea6825 +com.Beze.rCOE.ugTRJN,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.xQFQAAw.DEZb.hfJ,UNKNOWN,1ef0e106653b871d429cfab0cd5ea70a +com.eEP.RFpik.KeIpzN,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.uLeo.roWR,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.zqF.cdLYgOF.MtLDghd,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.SWpIf.JHaV,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.DDKcBu.QjY.qHAbzi,UNKNOWN,6429c394f8a48816d33a603c241a649b +com.SOa.dVM,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.VQITh.WgPxBrF,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.fxUOGvZ.PCaQ.TXrj.PdT,UNKNOWN,5c19603e3f367a447d0cb4390a523f28 +com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,赌博,33fdf452aa9cd145ba096c364a250ee8 +com.PqVRLi.DoyW.eJdi.kbCiQAa,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.jCccw.GXsB.oexWvz,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.DVoO.qGtaIxt.QxTBjkf.DqXIG,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.EifHnhL.sBPZQKJ,UNKNOWN,39962316d77bde821809135990093b43 +com.wfZt.mvVN.xVleF,UNKNOWN,bbeb59fa2d6812ec1ed4719f34add059 +com.munvAn.snWdtpN,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.MOZCFW.IUaibb.KzZSnY.amFFfV,UNKNOWN,2d037e49d84c54d9a49f931d2ab9aeb4 +com.gZi.UeQMoE,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 +com.CDWOPw.ilZeWYm,UNKNOWN,5e042ebff7524bf7e8113e18a52a0c7f +com.nSc.QuQlxi.CpmDkko,UNKNOWN,5353b254cf59a3c68852b23cb99044b4 +com.uiXJ.lBdg.MDQP.XSNIfa,UNKNOWN,232a3bfd30ea9903b4e337304781a110 +com.SeIT.Xdg.kZGt,UNKNOWN,a545349cbcfc5db326e3805323563f5b +com.UlRgM.qRjN,UNKNOWN,f47d826a7d0bf564d545aabbdc59b100 +com.iySo.rDQ,UNKNOWN,61da57b4bfdd0c37669933563942b54b +com.FtseGg.URbin.mdWFR.IuecfgL,诈骗,d43fa10d0fba10e4269965ed3f918f03 +com.OcjhcuV.WZW.BJjqc,UNKNOWN,d1481df7a36986973817ab3437e5dccf +com.wmILvI.bmSMQwN.IFTjoO.SzxV,UNKNOWN,c35569e87960cc0ecc2d1c8360839b77 +com.ODxX.sMuQ.zHFsmh,UNKNOWN,e559e014a77010cc7b46d8d5cc75ee58 +com.fnLk.wLR,UNKNOWN,68802adde35845d76eeb172ff8ea6825 +com.LjWx.fird,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.oStEmG.may,诈骗,1ef0e106653b871d429cfab0cd5ea70a +com.ulSQ.TpT.AVWN.wFx,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.ozV.BLidWEz.mljCOjX,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.oxT.ssqc.SEtMBHk.xKfAaX,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.LRtfLw.YvXfs.HvAXx.rOGcKoS,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.aCl.toMv,诈骗,6429c394f8a48816d33a603c241a649b +com.ALc.fbFw.gFpDFS.mGILge,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.GBrVXU.OuPq.uLIsMOl,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.UwA.qzbTFnD.hgpEVa,诈骗,5c19603e3f367a447d0cb4390a523f28 +com.tPgB.tvX.IdExzR,UNKNOWN,33fdf452aa9cd145ba096c364a250ee8 +com.hzqe.ICVhK.xMo.XBh,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.jSLN.HqtQjM.qVg,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.tcwXsGA.VEnrcro.qdwlr.xghg,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.PzDwi.MmfEGNw.AKh,UNKNOWN,39962316d77bde821809135990093b43 +com.lUnba.Ndf.VNcE.REHzRS,UNKNOWN,bbeb59fa2d6812ec1ed4719f34add059 +com.Ftz.noWA.huas.VSJx,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.cxl.OldGm.mZUbXH.BBeXRY,UNKNOWN,2d037e49d84c54d9a49f931d2ab9aeb4 +com.uXRvst.CCNPm.EPS.gvunChq,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 +com.SMJUd.bXqg,UNKNOWN,5e042ebff7524bf7e8113e18a52a0c7f +com.ESzMNuY.SYo.oBmam.OsGXGIq,UNKNOWN,5353b254cf59a3c68852b23cb99044b4 +com.CfZnrE.ZmivpvA.gvSKVd.RWYz,UNKNOWN,232a3bfd30ea9903b4e337304781a110 +com.YXE.ktP.rfyNDc,UNKNOWN,a545349cbcfc5db326e3805323563f5b +com.rfewZSw.lJiraID.dNQgDK.DomA,UNKNOWN,f47d826a7d0bf564d545aabbdc59b100 +com.HzmlfS.bDKVZn.UWL,UNKNOWN,61da57b4bfdd0c37669933563942b54b +com.jCaW.WAW,UNKNOWN,d43fa10d0fba10e4269965ed3f918f03 +com.TVsB.QyuNDnw,UNKNOWN,d1481df7a36986973817ab3437e5dccf +com.mvusN.AWI,UNKNOWN,c35569e87960cc0ecc2d1c8360839b77 +com.QEXHw.hTHYrk.bHlelkF,UNKNOWN,e559e014a77010cc7b46d8d5cc75ee58 +com.WMxwmNh.Tsoy.jYYaDS,UNKNOWN,68802adde35845d76eeb172ff8ea6825 +com.NvJIp.BfQ.WBZrN.ZAuCq,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.vjQce.fgIRvO.drQ,UNKNOWN,1ef0e106653b871d429cfab0cd5ea70a +com.QHfxGH.PZrfRUm.fPkBnI,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.MRDPVP.GkGi.YsGr.KjS,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.eUnClaZ.qKnTZo.odtzxn.ugflGzh,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.xDlJdj.xLrqn.nLXEd.BKTjK,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.ejbB.XiXG.YpwDqvR,UNKNOWN,6429c394f8a48816d33a603c241a649b +com.gVX.IOnVfwW.wDJ.WjAumX,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.rMrjL.WBNgY,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.iPRSuY.TxKh.fbJKge.LocNYA,UNKNOWN,5c19603e3f367a447d0cb4390a523f28 +com.cuFnZ.qzU.RukHVw,UNKNOWN,33fdf452aa9cd145ba096c364a250ee8 +com.BnhyDS.kmia,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.ajdr.YYHWu.SLk.nVcikT,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.HszKCQS.asaxIEi.qKF,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.KbNHHR.WCxw.vheP.ATl,UNKNOWN,39962316d77bde821809135990093b43 +com.qzIepN.PaAx.AXUg,UNKNOWN,bbeb59fa2d6812ec1ed4719f34add059 +com.CKvgkvi.Zmsh.yYgQUrE.PJfTHy,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.fMv.yCK.uqyxf,UNKNOWN,2d037e49d84c54d9a49f931d2ab9aeb4 +com.rQlBib.mgHXZSM.kOI.mRPaxx,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 +com.GlRuL.lZX.SkwaNw,UNKNOWN,5e042ebff7524bf7e8113e18a52a0c7f +com.QIh.UEa,UNKNOWN,5353b254cf59a3c68852b23cb99044b4 +com.cdJ.sOfBFeP,UNKNOWN,232a3bfd30ea9903b4e337304781a110 +com.eCdvTn.glI,UNKNOWN,a545349cbcfc5db326e3805323563f5b +com.SmV.BjTKn,UNKNOWN,f47d826a7d0bf564d545aabbdc59b100 +com.NaDdlkQ.tFe.kqod.VXKF,UNKNOWN,61da57b4bfdd0c37669933563942b54b +com.ETJbez.ptc.IzIyj.KsPJ,UNKNOWN,d43fa10d0fba10e4269965ed3f918f03 +com.PFfm.dVCYO,UNKNOWN,d1481df7a36986973817ab3437e5dccf +com.iHZQbY.ljM.pFerT,UNKNOWN,c35569e87960cc0ecc2d1c8360839b77 +com.QmrTh.stsUb.SgajGt,UNKNOWN,e559e014a77010cc7b46d8d5cc75ee58 +com.ZxVl.Sgu,UNKNOWN,68802adde35845d76eeb172ff8ea6825 +com.Wvb.lTe.EMKeOX.VvaQje,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.qelI.mjf.LGyhA,UNKNOWN,1ef0e106653b871d429cfab0cd5ea70a +com.LXra.PrgEnR.zxhB.fdiYv,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.vDz.QHdfao.DQQ.Wvmu,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.scgFbUX.iGBsVA,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.DRjvlr.RPTUvGU,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.gIb.WJntyj,UNKNOWN,6429c394f8a48816d33a603c241a649b +com.lArfEuw.iwK.sKCode,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.Zbxgl.zhKoRUm.iTxi.wqEc,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.YkwJ.rtP.yAegheA,UNKNOWN,5c19603e3f367a447d0cb4390a523f28 +com.BQaCXdx.gvd.LpRq,UNKNOWN,33fdf452aa9cd145ba096c364a250ee8 +com.nQPs.pQOIT,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.XSGnGo.JVhhH.vES,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.HAhw.yAy.LQBtmN,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.YTNhE.YrWkVeq.OEgAtZ.VvCem,UNKNOWN,39962316d77bde821809135990093b43 +com.dwS.xvakWzU,UNKNOWN,bbeb59fa2d6812ec1ed4719f34add059 +com.BIJkQdV.xYUmhtk.SrNF,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.guj.FlcApk,UNKNOWN,2d037e49d84c54d9a49f931d2ab9aeb4 +com.KuNCLw.fwXLHQW,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 +com.eaw.PVw.bXJ.hDYDAi,UNKNOWN,5e042ebff7524bf7e8113e18a52a0c7f +com.kYU.WSGAKM.pIxsfOW,UNKNOWN,5353b254cf59a3c68852b23cb99044b4 +com.JhS.axJPg,UNKNOWN,232a3bfd30ea9903b4e337304781a110 +com.VdG.fUEsuJ.pVl,UNKNOWN,a545349cbcfc5db326e3805323563f5b +com.JHBW.wcnGVPN.KKvsk,UNKNOWN,f47d826a7d0bf564d545aabbdc59b100 +com.aAqyadi.Xax.lGq,UNKNOWN,61da57b4bfdd0c37669933563942b54b +com.zmh.PVwb.mwFwN.TKoDTB,UNKNOWN,d43fa10d0fba10e4269965ed3f918f03 +com.tCVZqs.jYpArFR,UNKNOWN,d1481df7a36986973817ab3437e5dccf +com.BOWN.LPy,UNKNOWN,c35569e87960cc0ecc2d1c8360839b77 +com.EYTGIxg.tlUdQ,UNKNOWN,e559e014a77010cc7b46d8d5cc75ee58 +com.gRvOsM.gPQ.BExKTwJ.vAZ,UNKNOWN,68802adde35845d76eeb172ff8ea6825 +com.AyjAfXd.IeWMYnJ,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.kahwNaO.txanm,UNKNOWN,1ef0e106653b871d429cfab0cd5ea70a +com.iohMc.TTOTeG.qGUW,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.ZmMRtj.OMrxV,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.gCazlI.KtAZHqQ,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.durIh.TXeyAPi,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.VUqhNMH.qWYYs.aZV.wgTs,UNKNOWN,6429c394f8a48816d33a603c241a649b +com.RmyO.qmymKP,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.HFG.UFD,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.LxwArYe.Rwb.YCqRqYN.JPYh,UNKNOWN,5c19603e3f367a447d0cb4390a523f28 +com.PptLPkx.PcZlo,UNKNOWN,33fdf452aa9cd145ba096c364a250ee8 +com.ojsIE.iXtM.PadfxZb.zyhMkr,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.QOwRJb.lypOh.UyYhvpt.DvLMJQj,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.ngMIdl.gsEiTdg.gmL,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.dBKd.ogigSET,UNKNOWN,39962316d77bde821809135990093b43 +com.TlyOa.pmX.xeYYIY.eRUxHk,UNKNOWN,bbeb59fa2d6812ec1ed4719f34add059 +com.mFMkFST.PhTI.hfki,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.NxMZaGA.meO,UNKNOWN,2d037e49d84c54d9a49f931d2ab9aeb4 +com.FVzSmz.cDdP.Cpq,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 +com.UvAtHQ.RuOpQR.XKUeg.dmRe,UNKNOWN,5e042ebff7524bf7e8113e18a52a0c7f +com.QNRht.OsYjYO.hqdPSyn.BqwoeLP,UNKNOWN,5353b254cf59a3c68852b23cb99044b4 +com.MCpqFJ.yKSLAv.LFqbc.TOk,UNKNOWN,232a3bfd30ea9903b4e337304781a110 +com.WINT.zcLyOqr,UNKNOWN,a545349cbcfc5db326e3805323563f5b +com.NWebK.gWWl.vWe,UNKNOWN,f47d826a7d0bf564d545aabbdc59b100 +com.cavnpG.OlgiQvo.RyFTFZ,UNKNOWN,61da57b4bfdd0c37669933563942b54b +com.NxU.VlZFCbG,UNKNOWN,d43fa10d0fba10e4269965ed3f918f03 +com.crESbe.MjtSUmw,UNKNOWN,d1481df7a36986973817ab3437e5dccf +com.udMv.yOuz.ENda,UNKNOWN,c35569e87960cc0ecc2d1c8360839b77 +com.kXotA.mYqoYM,UNKNOWN,e559e014a77010cc7b46d8d5cc75ee58 +com.Yirmf.MZx.NKC.Xqp,赌博,68802adde35845d76eeb172ff8ea6825 +com.Qui.xVqHHg.rOEq,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.bbwX.RQKiEDm.kLra.erWENrB,UNKNOWN,1ef0e106653b871d429cfab0cd5ea70a +com.GXTH.EBc.QzzGFy,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.GdFvJkr.aaRL.OpKN.HcX,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.GCShCn.jhW.mcq.wsw,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.vMjcFig.LdkyF.SexObk,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.CvB.caokCRk.JKuGrs.jGGd,UNKNOWN,6429c394f8a48816d33a603c241a649b +com.VIovdB.UdzB.ZPCx.HBbN,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.ljxEjyx.ocPw.IyRjB,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.ziNtg.tSIuhlG,赌博,5c19603e3f367a447d0cb4390a523f28 +com.gXfPLQ.MnIQp,UNKNOWN,33fdf452aa9cd145ba096c364a250ee8 +com.HrTmWIY.uLI.gipKmbi,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.oma.oNNcRa.SfQcf.uQB,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.mssawU.bgsSkf.WoKqOP,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.ILBMAV.jWnst.zgL.GzmA,UNKNOWN,39962316d77bde821809135990093b43 +com.pWJU.qiqMJ,诈骗,bbeb59fa2d6812ec1ed4719f34add059 +com.kMfQFs.upatZ.mYwiOO,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.WMybu.gFrNmc.ooU,UNKNOWN,2d037e49d84c54d9a49f931d2ab9aeb4 +com.cBL.Gwh,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 +com.qbteqrJ.mivZ.kpRqNG,UNKNOWN,5e042ebff7524bf7e8113e18a52a0c7f +com.FMfTYR.cuEcPs,UNKNOWN,5353b254cf59a3c68852b23cb99044b4 +com.COccyS.EAh.qTBdS.nnqaFdw,UNKNOWN,232a3bfd30ea9903b4e337304781a110 +com.OAaBh.pRtk.HdLSX,UNKNOWN,a545349cbcfc5db326e3805323563f5b +com.HOfs.aOnwJ.fFHM.QoXx,赌博,f47d826a7d0bf564d545aabbdc59b100 +com.WQGce.HvYc,UNKNOWN,61da57b4bfdd0c37669933563942b54b +com.LmQg.LWHcc.FOcAB.ons,UNKNOWN,d43fa10d0fba10e4269965ed3f918f03 +com.jMexx.FRicP.wKYe.wDHARn,UNKNOWN,d1481df7a36986973817ab3437e5dccf +com.lBbJt.eiQaiwa.TxU.ZQZrzl,UNKNOWN,c35569e87960cc0ecc2d1c8360839b77 +com.frjJg.GUwFwiz.XpINHTV,UNKNOWN,e559e014a77010cc7b46d8d5cc75ee58 +com.lfA.RFgv.qOrJG,UNKNOWN,68802adde35845d76eeb172ff8ea6825 +com.Subfe.ZEq,UNKNOWN,d8e654984321f6aac312a897071191f0 +com.xLmr.YFNLYZ.oHLMGp,UNKNOWN,1ef0e106653b871d429cfab0cd5ea70a +com.vjDhLC.jGFxUaH,UNKNOWN,e6261711da404b34bf64a51322b948a8 +com.Mrrxw.vWuT,UNKNOWN,bd8cc63024c7a1d4adb3d08f0f4d4827 +com.xHvW.LlqTGL.Beeqwuq.XlLw,UNKNOWN,0aa4e4d45dda77ac95312330194288ab +com.fhunx.mNXU.FGcZ.xRMO,UNKNOWN,496651284d41f79f438c1bdb2455e396 +com.MdUhUX.TDvHepO,UNKNOWN,6429c394f8a48816d33a603c241a649b +com.iNLG.Fuq,UNKNOWN,a780d3304e9194cd75bbefbc14f7448a +com.fIpIpIE.dxvgTao.QLiBZFU,UNKNOWN,48b04141a59af51ac85eff121170dbc3 +com.BCy.EEsNi.rOGR.FtPLY,UNKNOWN,5c19603e3f367a447d0cb4390a523f28 +com.iJKsjJ.nDJQcZF.NTA.MFHsZ,UNKNOWN,33fdf452aa9cd145ba096c364a250ee8 +com.hIlDn.QHDGjoP.OzO.VKYZw,UNKNOWN,319cca4fbb083c8edad5b4ba79a35f44 +com.sPgAv.FOI.CDz,UNKNOWN,f4bf7aba69bdf4416b72e26b07b4f433 +com.pDzTy.ZFf.zkPmm.bhxy,UNKNOWN,09123f2ed94dfd9b864721b648fb1126 +com.GJQ.hSjXj.rFXrQv,UNKNOWN,39962316d77bde821809135990093b43 +com.Qhi.IbPtqAm,UNKNOWN,bbeb59fa2d6812ec1ed4719f34add059 +com.nhK.pWlo,UNKNOWN,caf61b631cbc475cac8a52f599a2bb8e +com.qIu.VJbJ,赌博,2d037e49d84c54d9a49f931d2ab9aeb4 +com.dsrC.vfA.ERYiW,UNKNOWN,d6c1be17a64ed67455d1ae32585fd319 diff --git a/python/knext/examples/riskmining1/builder/job/data/Cert.csv b/python/knext/examples/riskmining1/builder/job/data/Cert.csv new file mode 100644 index 00000000..cf98a632 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Cert.csv @@ -0,0 +1,31 @@ +id,certNum +0,68802adde35845d76eeb172ff8ea6825 +1,d8e654984321f6aac312a897071191f0 +2,1ef0e106653b871d429cfab0cd5ea70a +3,e6261711da404b34bf64a51322b948a8 +4,bd8cc63024c7a1d4adb3d08f0f4d4827 +5,0aa4e4d45dda77ac95312330194288ab +6,496651284d41f79f438c1bdb2455e396 +7,6429c394f8a48816d33a603c241a649b +8,a780d3304e9194cd75bbefbc14f7448a +9,48b04141a59af51ac85eff121170dbc3 +10,5c19603e3f367a447d0cb4390a523f28 +11,33fdf452aa9cd145ba096c364a250ee8 +12,319cca4fbb083c8edad5b4ba79a35f44 +13,f4bf7aba69bdf4416b72e26b07b4f433 +14,09123f2ed94dfd9b864721b648fb1126 +15,39962316d77bde821809135990093b43 +16,bbeb59fa2d6812ec1ed4719f34add059 +17,caf61b631cbc475cac8a52f599a2bb8e +18,2d037e49d84c54d9a49f931d2ab9aeb4 +19,d6c1be17a64ed67455d1ae32585fd319 +20,5e042ebff7524bf7e8113e18a52a0c7f +21,5353b254cf59a3c68852b23cb99044b4 +22,232a3bfd30ea9903b4e337304781a110 +23,a545349cbcfc5db326e3805323563f5b +24,f47d826a7d0bf564d545aabbdc59b100 +25,61da57b4bfdd0c37669933563942b54b +26,d43fa10d0fba10e4269965ed3f918f03 +27,d1481df7a36986973817ab3437e5dccf +28,c35569e87960cc0ecc2d1c8360839b77 +29,e559e014a77010cc7b46d8d5cc75ee58 diff --git a/python/knext/examples/riskmining1/builder/job/data/Company.csv b/python/knext/examples/riskmining1/builder/job/data/Company.csv new file mode 100644 index 00000000..3c2ddd89 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Company.csv @@ -0,0 +1,11 @@ +id,name,phone +0,**娱乐****公司,150****3237 +1,**娱乐**公司,133****4755 +2,**娱乐***公司,152****7817 +3,哈尔*工***技术产**发**限公司,196****5023 +4,中国**业建*股*限公司,137****3517 +5,莲花*康**集**份限公司,190****4555 +6,深圳***智能*气**限公司,132****0163 +7,中信*投证***限公司,133****1366 +8,航天彩**人*股*限公司,156****6507 +9,供销*集*团**限公司,156****3837 diff --git a/python/knext/examples/riskmining1/builder/job/data/Company_hasCert_Cert.csv b/python/knext/examples/riskmining1/builder/job/data/Company_hasCert_Cert.csv new file mode 100644 index 00000000..180aa317 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Company_hasCert_Cert.csv @@ -0,0 +1,193 @@ +src,dst +0,68802adde35845d76eeb172ff8ea6825 +1,5c19603e3f367a447d0cb4390a523f28 +2,f47d826a7d0bf564d545aabbdc59b100 +3,68802adde35845d76eeb172ff8ea6825 +3,d8e654984321f6aac312a897071191f0 +3,1ef0e106653b871d429cfab0cd5ea70a +3,e6261711da404b34bf64a51322b948a8 +3,bd8cc63024c7a1d4adb3d08f0f4d4827 +3,0aa4e4d45dda77ac95312330194288ab +3,496651284d41f79f438c1bdb2455e396 +3,6429c394f8a48816d33a603c241a649b +3,a780d3304e9194cd75bbefbc14f7448a +3,48b04141a59af51ac85eff121170dbc3 +3,5c19603e3f367a447d0cb4390a523f28 +3,319cca4fbb083c8edad5b4ba79a35f44 +3,f4bf7aba69bdf4416b72e26b07b4f433 +3,09123f2ed94dfd9b864721b648fb1126 +3,39962316d77bde821809135990093b43 +3,bbeb59fa2d6812ec1ed4719f34add059 +3,caf61b631cbc475cac8a52f599a2bb8e +3,2d037e49d84c54d9a49f931d2ab9aeb4 +3,d6c1be17a64ed67455d1ae32585fd319 +3,5e042ebff7524bf7e8113e18a52a0c7f +3,5353b254cf59a3c68852b23cb99044b4 +3,232a3bfd30ea9903b4e337304781a110 +3,a545349cbcfc5db326e3805323563f5b +3,f47d826a7d0bf564d545aabbdc59b100 +3,61da57b4bfdd0c37669933563942b54b +3,d1481df7a36986973817ab3437e5dccf +3,c35569e87960cc0ecc2d1c8360839b77 +4,e559e014a77010cc7b46d8d5cc75ee58 +4,68802adde35845d76eeb172ff8ea6825 +4,d8e654984321f6aac312a897071191f0 +4,e6261711da404b34bf64a51322b948a8 +4,bd8cc63024c7a1d4adb3d08f0f4d4827 +4,0aa4e4d45dda77ac95312330194288ab +4,496651284d41f79f438c1bdb2455e396 +4,a780d3304e9194cd75bbefbc14f7448a +4,48b04141a59af51ac85eff121170dbc3 +4,33fdf452aa9cd145ba096c364a250ee8 +4,319cca4fbb083c8edad5b4ba79a35f44 +4,f4bf7aba69bdf4416b72e26b07b4f433 +4,09123f2ed94dfd9b864721b648fb1126 +4,39962316d77bde821809135990093b43 +4,bbeb59fa2d6812ec1ed4719f34add059 +4,caf61b631cbc475cac8a52f599a2bb8e +4,2d037e49d84c54d9a49f931d2ab9aeb4 +4,d6c1be17a64ed67455d1ae32585fd319 +4,5e042ebff7524bf7e8113e18a52a0c7f +4,5353b254cf59a3c68852b23cb99044b4 +4,232a3bfd30ea9903b4e337304781a110 +4,a545349cbcfc5db326e3805323563f5b +4,f47d826a7d0bf564d545aabbdc59b100 +4,61da57b4bfdd0c37669933563942b54b +4,d43fa10d0fba10e4269965ed3f918f03 +4,d1481df7a36986973817ab3437e5dccf +4,c35569e87960cc0ecc2d1c8360839b77 +5,e559e014a77010cc7b46d8d5cc75ee58 +5,68802adde35845d76eeb172ff8ea6825 +5,d8e654984321f6aac312a897071191f0 +5,1ef0e106653b871d429cfab0cd5ea70a +5,e6261711da404b34bf64a51322b948a8 +5,bd8cc63024c7a1d4adb3d08f0f4d4827 +5,0aa4e4d45dda77ac95312330194288ab +5,496651284d41f79f438c1bdb2455e396 +5,6429c394f8a48816d33a603c241a649b +5,a780d3304e9194cd75bbefbc14f7448a +5,48b04141a59af51ac85eff121170dbc3 +5,5c19603e3f367a447d0cb4390a523f28 +5,33fdf452aa9cd145ba096c364a250ee8 +5,319cca4fbb083c8edad5b4ba79a35f44 +5,f4bf7aba69bdf4416b72e26b07b4f433 +5,09123f2ed94dfd9b864721b648fb1126 +5,39962316d77bde821809135990093b43 +5,bbeb59fa2d6812ec1ed4719f34add059 +5,caf61b631cbc475cac8a52f599a2bb8e +5,2d037e49d84c54d9a49f931d2ab9aeb4 +5,d6c1be17a64ed67455d1ae32585fd319 +5,5e042ebff7524bf7e8113e18a52a0c7f +5,5353b254cf59a3c68852b23cb99044b4 +5,232a3bfd30ea9903b4e337304781a110 +5,a545349cbcfc5db326e3805323563f5b +5,f47d826a7d0bf564d545aabbdc59b100 +5,61da57b4bfdd0c37669933563942b54b +6,d43fa10d0fba10e4269965ed3f918f03 +6,d1481df7a36986973817ab3437e5dccf +6,c35569e87960cc0ecc2d1c8360839b77 +6,e559e014a77010cc7b46d8d5cc75ee58 +6,68802adde35845d76eeb172ff8ea6825 +6,d8e654984321f6aac312a897071191f0 +6,1ef0e106653b871d429cfab0cd5ea70a +6,e6261711da404b34bf64a51322b948a8 +6,bd8cc63024c7a1d4adb3d08f0f4d4827 +6,0aa4e4d45dda77ac95312330194288ab +6,496651284d41f79f438c1bdb2455e396 +6,6429c394f8a48816d33a603c241a649b +6,a780d3304e9194cd75bbefbc14f7448a +6,48b04141a59af51ac85eff121170dbc3 +6,5c19603e3f367a447d0cb4390a523f28 +6,33fdf452aa9cd145ba096c364a250ee8 +6,319cca4fbb083c8edad5b4ba79a35f44 +6,f4bf7aba69bdf4416b72e26b07b4f433 +6,09123f2ed94dfd9b864721b648fb1126 +6,39962316d77bde821809135990093b43 +6,bbeb59fa2d6812ec1ed4719f34add059 +6,caf61b631cbc475cac8a52f599a2bb8e +6,2d037e49d84c54d9a49f931d2ab9aeb4 +6,d6c1be17a64ed67455d1ae32585fd319 +6,5e042ebff7524bf7e8113e18a52a0c7f +6,5353b254cf59a3c68852b23cb99044b4 +6,232a3bfd30ea9903b4e337304781a110 +7,a545349cbcfc5db326e3805323563f5b +7,f47d826a7d0bf564d545aabbdc59b100 +7,61da57b4bfdd0c37669933563942b54b +7,d43fa10d0fba10e4269965ed3f918f03 +7,d1481df7a36986973817ab3437e5dccf +7,c35569e87960cc0ecc2d1c8360839b77 +7,e559e014a77010cc7b46d8d5cc75ee58 +7,68802adde35845d76eeb172ff8ea6825 +7,d8e654984321f6aac312a897071191f0 +7,1ef0e106653b871d429cfab0cd5ea70a +7,e6261711da404b34bf64a51322b948a8 +7,bd8cc63024c7a1d4adb3d08f0f4d4827 +7,0aa4e4d45dda77ac95312330194288ab +7,496651284d41f79f438c1bdb2455e396 +7,6429c394f8a48816d33a603c241a649b +7,a780d3304e9194cd75bbefbc14f7448a +7,48b04141a59af51ac85eff121170dbc3 +7,5c19603e3f367a447d0cb4390a523f28 +7,33fdf452aa9cd145ba096c364a250ee8 +7,319cca4fbb083c8edad5b4ba79a35f44 +7,f4bf7aba69bdf4416b72e26b07b4f433 +7,09123f2ed94dfd9b864721b648fb1126 +7,39962316d77bde821809135990093b43 +7,bbeb59fa2d6812ec1ed4719f34add059 +7,caf61b631cbc475cac8a52f599a2bb8e +7,2d037e49d84c54d9a49f931d2ab9aeb4 +7,d6c1be17a64ed67455d1ae32585fd319 +8,5e042ebff7524bf7e8113e18a52a0c7f +8,5353b254cf59a3c68852b23cb99044b4 +8,232a3bfd30ea9903b4e337304781a110 +8,a545349cbcfc5db326e3805323563f5b +8,f47d826a7d0bf564d545aabbdc59b100 +8,61da57b4bfdd0c37669933563942b54b +8,d43fa10d0fba10e4269965ed3f918f03 +8,d1481df7a36986973817ab3437e5dccf +8,c35569e87960cc0ecc2d1c8360839b77 +8,e559e014a77010cc7b46d8d5cc75ee58 +8,d8e654984321f6aac312a897071191f0 +8,1ef0e106653b871d429cfab0cd5ea70a +8,e6261711da404b34bf64a51322b948a8 +8,bd8cc63024c7a1d4adb3d08f0f4d4827 +8,0aa4e4d45dda77ac95312330194288ab +8,496651284d41f79f438c1bdb2455e396 +8,6429c394f8a48816d33a603c241a649b +8,a780d3304e9194cd75bbefbc14f7448a +8,48b04141a59af51ac85eff121170dbc3 +8,33fdf452aa9cd145ba096c364a250ee8 +8,319cca4fbb083c8edad5b4ba79a35f44 +8,f4bf7aba69bdf4416b72e26b07b4f433 +8,09123f2ed94dfd9b864721b648fb1126 +8,39962316d77bde821809135990093b43 +8,caf61b631cbc475cac8a52f599a2bb8e +8,2d037e49d84c54d9a49f931d2ab9aeb4 +8,d6c1be17a64ed67455d1ae32585fd319 +9,5e042ebff7524bf7e8113e18a52a0c7f +9,5353b254cf59a3c68852b23cb99044b4 +9,232a3bfd30ea9903b4e337304781a110 +9,a545349cbcfc5db326e3805323563f5b +9,61da57b4bfdd0c37669933563942b54b +9,d43fa10d0fba10e4269965ed3f918f03 +9,d1481df7a36986973817ab3437e5dccf +9,c35569e87960cc0ecc2d1c8360839b77 +9,e559e014a77010cc7b46d8d5cc75ee58 +9,68802adde35845d76eeb172ff8ea6825 +9,d8e654984321f6aac312a897071191f0 +9,1ef0e106653b871d429cfab0cd5ea70a +9,e6261711da404b34bf64a51322b948a8 +9,bd8cc63024c7a1d4adb3d08f0f4d4827 +9,0aa4e4d45dda77ac95312330194288ab +9,496651284d41f79f438c1bdb2455e396 +9,6429c394f8a48816d33a603c241a649b +9,a780d3304e9194cd75bbefbc14f7448a +9,48b04141a59af51ac85eff121170dbc3 +9,5c19603e3f367a447d0cb4390a523f28 +9,33fdf452aa9cd145ba096c364a250ee8 +9,319cca4fbb083c8edad5b4ba79a35f44 +9,f4bf7aba69bdf4416b72e26b07b4f433 +9,09123f2ed94dfd9b864721b648fb1126 +9,39962316d77bde821809135990093b43 +9,bbeb59fa2d6812ec1ed4719f34add059 +9,caf61b631cbc475cac8a52f599a2bb8e diff --git a/python/knext/examples/riskmining1/builder/job/data/Device.csv b/python/knext/examples/riskmining1/builder/job/data/Device.csv new file mode 100644 index 00000000..a65785c6 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Device.csv @@ -0,0 +1,101 @@ +id,umid,install +0,73:e8:91:b5:46:0a,"com.KuNCLw.fwXLHQW,com.JHBW.wcnGVPN.KKvsk,com.GXTH.EBc.QzzGFy,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +1,58:a7:3f:e8:1b:1f,"com.cavnpG.OlgiQvo.RyFTFZ,com.kYU.WSGAKM.pIxsfOW,com.OcjhcuV.WZW.BJjqc,com.bbwX.RQKiEDm.kLra.erWENrB,com.iohMc.TTOTeG.qGUW,com.LmQg.LWHcc.FOcAB.ons,com.RmyO.qmymKP,com.NvJIp.BfQ.WBZrN.ZAuCq,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +2,12:44:02:28:44:02,"com.HAhw.yAy.LQBtmN,com.kYU.WSGAKM.pIxsfOW,com.oxT.ssqc.SEtMBHk.xKfAaX,com.ESzMNuY.SYo.oBmam.OsGXGIq,com.kXotA.mYqoYM,com.WINT.zcLyOqr,com.TVsB.QyuNDnw,com.lBbJt.eiQaiwa.TxU.ZQZrzl,com.Subfe.ZEq,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +3,19:85:70:ea:bd:dc,"com.xQFQAAw.DEZb.hfJ,com.nhK.pWlo,com.hzqe.ICVhK.xMo.XBh,com.nSc.QuQlxi.CpmDkko,com.FMfTYR.cuEcPs,com.Yirmf.MZx.NKC.Xqp,com.vjQce.fgIRvO.drQ,com.QNRht.OsYjYO.hqdPSyn.BqwoeLP,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +4,31:1d:97:4a:d8:fd,"com.ulSQ.TpT.AVWN.wFx,com.YXE.ktP.rfyNDc,com.HFG.UFD,com.vjQce.fgIRvO.drQ,com.cuFnZ.qzU.RukHVw,com.WMxwmNh.Tsoy.jYYaDS,com.COccyS.EAh.qTBdS.nnqaFdw,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +5,fa:83:aa:6d:ea:0f,"com.gCazlI.KtAZHqQ,com.SeIT.Xdg.kZGt,com.ozV.BLidWEz.mljCOjX,com.LXra.PrgEnR.zxhB.fdiYv,com.lfA.RFgv.qOrJG,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +6,dc:b2:d9:09:25:9b,"com.iySo.rDQ,com.Ftz.noWA.huas.VSJx,com.HszKCQS.asaxIEi.qKF,com.EifHnhL.sBPZQKJ,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +7,34:45:d0:2a:8c:05,"com.pDzTy.ZFf.zkPmm.bhxy,com.DVoO.qGtaIxt.QxTBjkf.DqXIG,com.KbNHHR.WCxw.vheP.ATl,com.Beze.rCOE.ugTRJN,com.UvAtHQ.RuOpQR.XKUeg.dmRe,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +8,69:14:28:97:c8:50,"com.uXRvst.CCNPm.EPS.gvunChq,com.hzqe.ICVhK.xMo.XBh,com.LjWx.fird,com.qelI.mjf.LGyhA,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +9,c0:cd:89:19:76:32,"com.qzIepN.PaAx.AXUg,com.VdG.fUEsuJ.pVl,com.XSGnGo.JVhhH.vES,com.PzDwi.MmfEGNw.AKh,com.ILBMAV.jWnst.zgL.GzmA,com.tPgB.tvX.IdExzR,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +10,b0:d7:d6:88:4e:88,"com.NWebK.gWWl.vWe,com.Wvb.lTe.EMKeOX.VvaQje,com.aAqyadi.Xax.lGq,com.wfZt.mvVN.xVleF,com.tCVZqs.jYpArFR,com.TVsB.QyuNDnw,com.lfA.RFgv.qOrJG,com.jSLN.HqtQjM.qVg,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +11,ff:3a:2d:61:19:1f,"com.jSLN.HqtQjM.qVg,com.gRvOsM.gPQ.BExKTwJ.vAZ,com.CvB.caokCRk.JKuGrs.jGGd,com.GJQ.hSjXj.rFXrQv,com.gZi.UeQMoE,com.ZxVl.Sgu,com.NWebK.gWWl.vWe,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +12,4d:e0:49:48:af:11,"com.ETJbez.ptc.IzIyj.KsPJ,com.QOwRJb.lypOh.UyYhvpt.DvLMJQj,com.HrTmWIY.uLI.gipKmbi,com.vMjcFig.LdkyF.SexObk,com.PzDwi.MmfEGNw.AKh,com.jCaW.WAW,com.iySo.rDQ,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +13,12:a9:31:e0:c0:85,"com.Mrrxw.vWuT,com.VIovdB.UdzB.ZPCx.HBbN,com.CfZnrE.ZmivpvA.gvSKVd.RWYz,com.ALc.fbFw.gFpDFS.mGILge,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +14,81:aa:a2:e9:f6:b9,"com.nhK.pWlo,com.DRjvlr.RPTUvGU,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +15,fa:c1:3b:43:62:2b,"com.dsrC.vfA.ERYiW,com.dBKd.ogigSET,com.iJKsjJ.nDJQcZF.NTA.MFHsZ,com.SMJUd.bXqg,com.JhS.axJPg,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +16,d2:6f:f5:ad:a2:b7,"com.NaDdlkQ.tFe.kqod.VXKF,com.ESzMNuY.SYo.oBmam.OsGXGIq,com.mssawU.bgsSkf.WoKqOP,com.QmrTh.stsUb.SgajGt,com.fnLk.wLR,com.FMfTYR.cuEcPs,com.Yirmf.MZx.NKC.Xqp,com.crESbe.MjtSUmw,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +17,ac:1f:77:2c:ae:15,"com.NxMZaGA.meO,com.aCl.toMv,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +18,3f:19:2c:3f:02:a6,"com.GdFvJkr.aaRL.OpKN.HcX,com.xQFQAAw.DEZb.hfJ,com.fhunx.mNXU.FGcZ.xRMO,com.uiXJ.lBdg.MDQP.XSNIfa,com.dwS.xvakWzU,com.ESzMNuY.SYo.oBmam.OsGXGIq,com.zqF.cdLYgOF.MtLDghd,com.iNLG.Fuq,com.RmyO.qmymKP,com.tcwXsGA.VEnrcro.qdwlr.xghg,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +19,79:8e:ce:f0:df:e8,"com.eUnClaZ.qKnTZo.odtzxn.ugflGzh,com.PqVRLi.DoyW.eJdi.kbCiQAa,com.kMfQFs.upatZ.mYwiOO,com.ejbB.XiXG.YpwDqvR,com.xLmr.YFNLYZ.oHLMGp,com.EifHnhL.sBPZQKJ,com.Wvb.lTe.EMKeOX.VvaQje,com.crESbe.MjtSUmw,com.ucyDA.gNLGD.oQsbzPe.nQd,com.cuFnZ.qzU.RukHVw,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +20,da:fb:67:4e:c6:1c,"com.jCccw.GXsB.oexWvz,com.LxwArYe.Rwb.YCqRqYN.JPYh,com.PFfm.dVCYO,com.gXfPLQ.MnIQp,com.qIu.VJbJ,com.hzqe.ICVhK.xMo.XBh,com.fnLk.wLR,com.CfZnrE.ZmivpvA.gvSKVd.RWYz,com.cxl.OldGm.mZUbXH.BBeXRY,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +21,b5:73:c2:a4:46:a0,"com.ZxVl.Sgu,com.TlyOa.pmX.xeYYIY.eRUxHk,com.LxwArYe.Rwb.YCqRqYN.JPYh,com.GJQ.hSjXj.rFXrQv,com.wmILvI.bmSMQwN.IFTjoO.SzxV,com.eaw.PVw.bXJ.hDYDAi,com.Mrrxw.vWuT,com.COccyS.EAh.qTBdS.nnqaFdw,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +22,f6:28:a1:74:4e:b2,"com.bbwX.RQKiEDm.kLra.erWENrB,com.ljxEjyx.ocPw.IyRjB,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +23,c4:fa:65:8f:82:fc,"com.BQaCXdx.gvd.LpRq,com.QHfxGH.PZrfRUm.fPkBnI,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +24,74:e3:70:9a:5f:7d,"com.VIovdB.UdzB.ZPCx.HBbN,com.hIlDn.QHDGjoP.OzO.VKYZw,com.jSLN.HqtQjM.qVg,com.LXra.PrgEnR.zxhB.fdiYv,com.MdUhUX.TDvHepO,com.JHBW.wcnGVPN.KKvsk,com.gRvOsM.gPQ.BExKTwJ.vAZ,com.uLeo.roWR,com.TVsB.QyuNDnw,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +25,ff:92:d5:e1:48:aa,"com.Mrrxw.vWuT,com.sPgAv.FOI.CDz,com.munvAn.snWdtpN,com.UwA.qzbTFnD.hgpEVa,com.lArfEuw.iwK.sKCode,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +26,eb:9d:b8:d4:ed:5b,"com.SMJUd.bXqg,com.vjQce.fgIRvO.drQ,com.wmILvI.bmSMQwN.IFTjoO.SzxV,com.NWebK.gWWl.vWe,com.lArfEuw.iwK.sKCode,com.frjJg.GUwFwiz.XpINHTV,com.scgFbUX.iGBsVA,com.pDzTy.ZFf.zkPmm.bhxy,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +27,97:dc:9e:fd:0f:27,"com.iySo.rDQ,com.HzmlfS.bDKVZn.UWL,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +28,48:ae:84:5c:96:aa,"com.kahwNaO.txanm,com.pDzTy.ZFf.zkPmm.bhxy,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +29,0b:49:7c:1c:be:fb,"com.ngMIdl.gsEiTdg.gmL,com.jMexx.FRicP.wKYe.wDHARn,com.GCShCn.jhW.mcq.wsw,com.GlRuL.lZX.SkwaNw,com.zqF.cdLYgOF.MtLDghd,com.eCdvTn.glI,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.Yirmf.MZx.NKC.Xqp,com.ziNtg.tSIuhlG,com.HOfs.aOnwJ.fFHM.QoXx,com.qIu.VJbJ" +30,54:61:d7:0d:08:f2,"com.wmILvI.bmSMQwN.IFTjoO.SzxV,com.qbteqrJ.mivZ.kpRqNG,com.CDWOPw.ilZeWYm,com.QOwRJb.lypOh.UyYhvpt.DvLMJQj,com.cuFnZ.qzU.RukHVw,com.GlRuL.lZX.SkwaNw" +31,87:a5:c1:2b:e1:e8,"com.ALc.fbFw.gFpDFS.mGILge,com.LjWx.fird,com.Wvb.lTe.EMKeOX.VvaQje,com.PptLPkx.PcZlo,com.YXE.ktP.rfyNDc,com.GdFvJkr.aaRL.OpKN.HcX,com.mssawU.bgsSkf.WoKqOP,com.gXfPLQ.MnIQp,com.kahwNaO.txanm" +32,9f:fb:e8:8f:fb:c5,"com.COccyS.EAh.qTBdS.nnqaFdw,com.uXRvst.CCNPm.EPS.gvunChq,com.QEXHw.hTHYrk.bHlelkF,com.xQFQAAw.DEZb.hfJ,com.zqF.cdLYgOF.MtLDghd,com.NWebK.gWWl.vWe" +33,1c:98:72:79:47:c6,"com.iPRSuY.TxKh.fbJKge.LocNYA,com.HszKCQS.asaxIEi.qKF,com.FtseGg.URbin.mdWFR.IuecfgL,com.uLeo.roWR,com.GlRuL.lZX.SkwaNw,com.nSc.QuQlxi.CpmDkko" +34,69:3e:c1:83:d7:75,"com.eaw.PVw.bXJ.hDYDAi,com.ETJbez.ptc.IzIyj.KsPJ,com.uiXJ.lBdg.MDQP.XSNIfa,com.cuFnZ.qzU.RukHVw,com.GlRuL.lZX.SkwaNw" +35,d7:30:d6:89:01:2c,"com.uXRvst.CCNPm.EPS.gvunChq,com.iNLG.Fuq" +36,bf:e3:65:80:fa:b6,"com.cuFnZ.qzU.RukHVw,com.WMxwmNh.Tsoy.jYYaDS,com.DDKcBu.QjY.qHAbzi,com.fIpIpIE.dxvgTao.QLiBZFU,com.vjDhLC.jGFxUaH,com.VQITh.WgPxBrF,com.LXra.PrgEnR.zxhB.fdiYv,com.QHfxGH.PZrfRUm.fPkBnI,com.UvAtHQ.RuOpQR.XKUeg.dmRe" +37,51:0b:ca:0f:6f:d8,"com.PqVRLi.DoyW.eJdi.kbCiQAa,com.mvusN.AWI" +38,c3:84:9a:6f:4d:65,"com.pDzTy.ZFf.zkPmm.bhxy,com.GXTH.EBc.QzzGFy,com.durIh.TXeyAPi,com.iohMc.TTOTeG.qGUW,com.Beze.rCOE.ugTRJN,com.cxl.OldGm.mZUbXH.BBeXRY,com.SOa.dVM" +39,3d:f4:f9:f8:80:bf,"com.iHZQbY.ljM.pFerT,com.frjJg.GUwFwiz.XpINHTV,com.VIovdB.UdzB.ZPCx.HBbN,com.fnLk.wLR,com.fMv.yCK.uqyxf,com.gVX.IOnVfwW.wDJ.WjAumX,com.nSc.QuQlxi.CpmDkko" +40,5b:a3:03:b2:9a:68,"com.uiXJ.lBdg.MDQP.XSNIfa,com.cdJ.sOfBFeP,com.qelI.mjf.LGyhA,com.Qhi.IbPtqAm,com.NWebK.gWWl.vWe,com.EifHnhL.sBPZQKJ" +41,4e:90:ed:2d:49:6e,"com.ZxVl.Sgu,com.iJKsjJ.nDJQcZF.NTA.MFHsZ" +42,82:53:e6:a6:3e:b1,"com.Qhi.IbPtqAm,com.SWpIf.JHaV,com.fMv.yCK.uqyxf,com.rMrjL.WBNgY,com.HAhw.yAy.LQBtmN,com.nQPs.pQOIT,com.PFfm.dVCYO,com.tcwXsGA.VEnrcro.qdwlr.xghg,com.eEP.RFpik.KeIpzN,com.fhunx.mNXU.FGcZ.xRMO" +43,04:79:e6:11:3e:d5,"com.SMJUd.bXqg,com.GBrVXU.OuPq.uLIsMOl,com.fMv.yCK.uqyxf,com.OcjhcuV.WZW.BJjqc,com.ngMIdl.gsEiTdg.gmL,com.CKvgkvi.Zmsh.yYgQUrE.PJfTHy,com.WINT.zcLyOqr,com.nSc.QuQlxi.CpmDkko" +44,88:ce:40:39:a6:8d,"com.Mrrxw.vWuT,com.VIovdB.UdzB.ZPCx.HBbN,com.uXRvst.CCNPm.EPS.gvunChq,com.YXE.ktP.rfyNDc" +45,7f:12:05:c4:2c:38,"com.oma.oNNcRa.SfQcf.uQB,com.kMfQFs.upatZ.mYwiOO,com.AyjAfXd.IeWMYnJ,com.cBL.Gwh,com.zmh.PVwb.mwFwN.TKoDTB,com.RmyO.qmymKP,com.SWpIf.JHaV" +46,10:da:2d:88:e5:c3,"com.PqVRLi.DoyW.eJdi.kbCiQAa,com.MdUhUX.TDvHepO,com.gXfPLQ.MnIQp,com.UlRgM.qRjN" +47,ab:90:e6:8a:bd:38,"com.bbwX.RQKiEDm.kLra.erWENrB,com.ngMIdl.gsEiTdg.gmL,com.lArfEuw.iwK.sKCode" +48,b2:0a:b2:89:b6:e0,"com.MOZCFW.IUaibb.KzZSnY.amFFfV,com.ILBMAV.jWnst.zgL.GzmA,com.RmyO.qmymKP,com.EYTGIxg.tlUdQ,com.qzIepN.PaAx.AXUg,com.wfZt.mvVN.xVleF,com.DRjvlr.RPTUvGU,com.uXRvst.CCNPm.EPS.gvunChq,com.Mrrxw.vWuT,com.ljxEjyx.ocPw.IyRjB" +49,0e:23:7e:51:62:1c,"com.qIu.VJbJ,com.mssawU.bgsSkf.WoKqOP,com.PFfm.dVCYO" +50,98:c0:3b:a7:fd:65,"com.DVoO.qGtaIxt.QxTBjkf.DqXIG,com.QOwRJb.lypOh.UyYhvpt.DvLMJQj" +51,29:2e:d1:34:b0:97,"com.Yirmf.MZx.NKC.Xqp,com.nSc.QuQlxi.CpmDkko,com.HzmlfS.bDKVZn.UWL,com.qelI.mjf.LGyhA,com.mvusN.AWI,com.nhK.pWlo,com.ozV.BLidWEz.mljCOjX,com.jSLN.HqtQjM.qVg,com.CfZnrE.ZmivpvA.gvSKVd.RWYz" +52,75:f8:ce:bb:d6:e1,"com.CvB.caokCRk.JKuGrs.jGGd,com.MRDPVP.GkGi.YsGr.KjS,com.BnhyDS.kmia,com.ESzMNuY.SYo.oBmam.OsGXGIq,com.ojsIE.iXtM.PadfxZb.zyhMkr,com.HszKCQS.asaxIEi.qKF" +53,f7:55:de:18:5f:af,"com.PptLPkx.PcZlo,com.GlRuL.lZX.SkwaNw,com.DDKcBu.QjY.qHAbzi,com.qbteqrJ.mivZ.kpRqNG,com.SmV.BjTKn" +54,3b:3c:26:4a:49:63,"com.GdFvJkr.aaRL.OpKN.HcX,com.munvAn.snWdtpN,com.gVX.IOnVfwW.wDJ.WjAumX,com.MCpqFJ.yKSLAv.LFqbc.TOk,com.dwS.xvakWzU,com.gCazlI.KtAZHqQ,com.OAaBh.pRtk.HdLSX,com.TVsB.QyuNDnw" +55,e1:2c:63:d2:1b:e1,"com.HAhw.yAy.LQBtmN,com.cxl.OldGm.mZUbXH.BBeXRY,com.PFfm.dVCYO,com.xHvW.LlqTGL.Beeqwuq.XlLw,com.rQlBib.mgHXZSM.kOI.mRPaxx,com.JhS.axJPg,com.WQGce.HvYc,com.jCccw.GXsB.oexWvz,com.tcwXsGA.VEnrcro.qdwlr.xghg" +56,9f:9d:9d:34:4b:d2,"com.HFG.UFD,com.tCVZqs.jYpArFR,com.QmrTh.stsUb.SgajGt,com.PzDwi.MmfEGNw.AKh,com.fMv.yCK.uqyxf,com.WMxwmNh.Tsoy.jYYaDS" +57,e3:47:9d:65:32:c8,"com.jCaW.WAW,com.VUqhNMH.qWYYs.aZV.wgTs" +58,96:ef:39:27:55:cd,"com.GBrVXU.OuPq.uLIsMOl,com.DRjvlr.RPTUvGU,com.qelI.mjf.LGyhA,com.OAaBh.pRtk.HdLSX,com.pWJU.qiqMJ,com.ajdr.YYHWu.SLk.nVcikT,com.MCpqFJ.yKSLAv.LFqbc.TOk,com.rMrjL.WBNgY,com.BQaCXdx.gvd.LpRq,com.iySo.rDQ" +59,83:63:df:97:0d:c7,"com.lArfEuw.iwK.sKCode,com.tCVZqs.jYpArFR,com.tcwXsGA.VEnrcro.qdwlr.xghg,com.pDzTy.ZFf.zkPmm.bhxy,com.ALc.fbFw.gFpDFS.mGILge,com.HrTmWIY.uLI.gipKmbi,com.SmV.BjTKn,com.uiXJ.lBdg.MDQP.XSNIfa,com.nQPs.pQOIT" +60,4b:f6:fe:2e:1a:d0,"com.fnLk.wLR,com.rfewZSw.lJiraID.dNQgDK.DomA,com.XSGnGo.JVhhH.vES,com.Yirmf.MZx.NKC.Xqp,com.PFfm.dVCYO" +61,7f:23:aa:68:10:d1,"com.cavnpG.OlgiQvo.RyFTFZ,com.gZi.UeQMoE" +62,4a:5b:b4:63:54:22,"com.LxwArYe.Rwb.YCqRqYN.JPYh,com.iySo.rDQ,com.mFMkFST.PhTI.hfki,com.hzqe.ICVhK.xMo.XBh,com.nQPs.pQOIT,com.vDz.QHdfao.DQQ.Wvmu,com.cBL.Gwh,com.oma.oNNcRa.SfQcf.uQB" +63,14:6a:62:65:8f:ba,"com.HrTmWIY.uLI.gipKmbi,com.kMfQFs.upatZ.mYwiOO,com.tcwXsGA.VEnrcro.qdwlr.xghg" +64,92:6d:9b:7b:9d:51,"com.DDKcBu.QjY.qHAbzi,com.iPRSuY.TxKh.fbJKge.LocNYA" +65,01:57:14:4a:e3:f5,"com.crESbe.MjtSUmw,com.LXra.PrgEnR.zxhB.fdiYv,com.zqF.cdLYgOF.MtLDghd" +66,1c:59:57:bd:2a:44,"com.ojsIE.iXtM.PadfxZb.zyhMkr,com.Ftz.noWA.huas.VSJx,com.dsrC.vfA.ERYiW,com.uLeo.roWR,com.frjJg.GUwFwiz.XpINHTV,com.fnLk.wLR,com.VdG.fUEsuJ.pVl" +67,dd:77:15:c3:f4:f3,"com.nQPs.pQOIT,com.SeIT.Xdg.kZGt,com.cxl.OldGm.mZUbXH.BBeXRY,com.oxT.ssqc.SEtMBHk.xKfAaX,com.lUnba.Ndf.VNcE.REHzRS,com.QIh.UEa,com.UlRgM.qRjN,com.gVX.IOnVfwW.wDJ.WjAumX" +68,85:d2:63:c6:9a:c0,"com.SeIT.Xdg.kZGt,com.NxMZaGA.meO,com.ulSQ.TpT.AVWN.wFx" +69,50:ba:e8:d7:07:17,"com.ulSQ.TpT.AVWN.wFx,com.EYTGIxg.tlUdQ,com.rfewZSw.lJiraID.dNQgDK.DomA,com.NxMZaGA.meO,com.ZmMRtj.OMrxV,com.dsrC.vfA.ERYiW,com.qIu.VJbJ" +70,07:7c:27:b9:28:98,"com.NxMZaGA.meO,com.ulSQ.TpT.AVWN.wFx,com.nSc.QuQlxi.CpmDkko,com.KbNHHR.WCxw.vheP.ATl,com.gRvOsM.gPQ.BExKTwJ.vAZ,com.WINT.zcLyOqr,com.HFG.UFD,com.OAaBh.pRtk.HdLSX" +71,a1:95:68:66:fe:5e,"com.ljxEjyx.ocPw.IyRjB,com.iNLG.Fuq,com.vDz.QHdfao.DQQ.Wvmu,com.HAhw.yAy.LQBtmN,com.rfewZSw.lJiraID.dNQgDK.DomA,com.PqVRLi.DoyW.eJdi.kbCiQAa" +72,86:84:06:c2:d2:25,"com.ETJbez.ptc.IzIyj.KsPJ,com.gXfPLQ.MnIQp,com.CYUwwpj.ceCCEm.LCtzt.NCrUKX,com.YTNhE.YrWkVeq.OEgAtZ.VvCem,com.dsrC.vfA.ERYiW,com.WINT.zcLyOqr,com.FMfTYR.cuEcPs,com.QNRht.OsYjYO.hqdPSyn.BqwoeLP" +73,d1:a6:dc:dc:38:4e,"com.SWpIf.JHaV,com.OAaBh.pRtk.HdLSX,com.GCShCn.jhW.mcq.wsw,com.fMv.yCK.uqyxf,com.zmh.PVwb.mwFwN.TKoDTB,com.qbteqrJ.mivZ.kpRqNG,com.QNRht.OsYjYO.hqdPSyn.BqwoeLP,com.tPgB.tvX.IdExzR,com.NxU.VlZFCbG" +74,01:88:ba:23:dd:1e,"com.EYTGIxg.tlUdQ,com.RmyO.qmymKP,com.GXTH.EBc.QzzGFy,com.ESzMNuY.SYo.oBmam.OsGXGIq,com.VUqhNMH.qWYYs.aZV.wgTs,com.Zbxgl.zhKoRUm.iTxi.wqEc" +75,05:a9:c7:7e:8c:25,"com.EifHnhL.sBPZQKJ,com.PzDwi.MmfEGNw.AKh,com.DRjvlr.RPTUvGU,com.LxwArYe.Rwb.YCqRqYN.JPYh,com.VIovdB.UdzB.ZPCx.HBbN,com.SWpIf.JHaV" +76,66:af:7f:32:31:e6,"com.nQPs.pQOIT,com.HrTmWIY.uLI.gipKmbi,com.vMjcFig.LdkyF.SexObk,com.DRjvlr.RPTUvGU,com.dwS.xvakWzU,com.QOwRJb.lypOh.UyYhvpt.DvLMJQj" +77,a1:17:e6:fe:2a:d8,"com.CvB.caokCRk.JKuGrs.jGGd,com.ZmMRtj.OMrxV,com.Zbxgl.zhKoRUm.iTxi.wqEc,com.COccyS.EAh.qTBdS.nnqaFdw,com.HFG.UFD,com.DVoO.qGtaIxt.QxTBjkf.DqXIG,com.Yirmf.MZx.NKC.Xqp" +78,f0:75:3c:0e:78:8b,"com.GdFvJkr.aaRL.OpKN.HcX,com.KuNCLw.fwXLHQW,com.FVzSmz.cDdP.Cpq,com.VdG.fUEsuJ.pVl" +79,0b:34:dc:13:e5:9c,"com.YTNhE.YrWkVeq.OEgAtZ.VvCem,com.lUnba.Ndf.VNcE.REHzRS,com.ZmMRtj.OMrxV,com.RmyO.qmymKP,com.BIJkQdV.xYUmhtk.SrNF" +80,47:28:9e:9e:c8:b9,"com.zmh.PVwb.mwFwN.TKoDTB,com.kMfQFs.upatZ.mYwiOO" +81,1b:71:15:31:bc:b8,"com.qelI.mjf.LGyhA,com.Zbxgl.zhKoRUm.iTxi.wqEc,com.eEP.RFpik.KeIpzN,com.tCVZqs.jYpArFR,com.UlRgM.qRjN" +82,79:e2:68:3c:34:c5,"com.eaw.PVw.bXJ.hDYDAi,com.SmV.BjTKn" +83,a2:f9:5d:64:3b:28,"com.DVoO.qGtaIxt.QxTBjkf.DqXIG,com.BnhyDS.kmia,com.PzDwi.MmfEGNw.AKh,com.GBrVXU.OuPq.uLIsMOl,com.oma.oNNcRa.SfQcf.uQB,com.iNLG.Fuq,com.uLeo.roWR,com.dBKd.ogigSET" +84,97:7d:78:d4:35:54,"com.cBL.Gwh,com.TVsB.QyuNDnw" +85,d0:72:f8:a9:6b:65,"com.UwA.qzbTFnD.hgpEVa,com.NvJIp.BfQ.WBZrN.ZAuCq,com.hzqe.ICVhK.xMo.XBh,com.CvB.caokCRk.JKuGrs.jGGd,com.ETJbez.ptc.IzIyj.KsPJ,com.bbwX.RQKiEDm.kLra.erWENrB" +86,6a:cc:9a:6c:d9:36,"com.gZi.UeQMoE,com.GdFvJkr.aaRL.OpKN.HcX" +87,23:6f:60:59:26:d0,"com.Wvb.lTe.EMKeOX.VvaQje,com.frjJg.GUwFwiz.XpINHTV" +88,3b:a4:fa:01:b1:74,"com.gRvOsM.gPQ.BExKTwJ.vAZ,com.uiXJ.lBdg.MDQP.XSNIfa,com.iySo.rDQ,com.QOwRJb.lypOh.UyYhvpt.DvLMJQj,com.XSGnGo.JVhhH.vES,com.iHZQbY.ljM.pFerT,com.pWJU.qiqMJ,com.GBrVXU.OuPq.uLIsMOl,com.MRDPVP.GkGi.YsGr.KjS" +89,1c:d4:25:ec:2e:b5,"com.QOwRJb.lypOh.UyYhvpt.DvLMJQj,com.DDKcBu.QjY.qHAbzi,com.iPRSuY.TxKh.fbJKge.LocNYA,com.MCpqFJ.yKSLAv.LFqbc.TOk,com.NvJIp.BfQ.WBZrN.ZAuCq,com.VUqhNMH.qWYYs.aZV.wgTs,com.eaw.PVw.bXJ.hDYDAi,com.Qui.xVqHHg.rOEq,com.ajdr.YYHWu.SLk.nVcikT" +90,31:7b:a3:98:e6:ec,"com.crESbe.MjtSUmw,com.fIpIpIE.dxvgTao.QLiBZFU,com.Wvb.lTe.EMKeOX.VvaQje,com.cxl.OldGm.mZUbXH.BBeXRY,com.gRvOsM.gPQ.BExKTwJ.vAZ,com.DVoO.qGtaIxt.QxTBjkf.DqXIG,com.QNRht.OsYjYO.hqdPSyn.BqwoeLP,com.ILBMAV.jWnst.zgL.GzmA,com.eUnClaZ.qKnTZo.odtzxn.ugflGzh,com.xDlJdj.xLrqn.nLXEd.BKTjK" +91,5b:6a:d3:ef:b3:5c,"com.qIu.VJbJ,com.Beze.rCOE.ugTRJN,com.guj.FlcApk,com.LxwArYe.Rwb.YCqRqYN.JPYh,com.Wvb.lTe.EMKeOX.VvaQje,com.wfZt.mvVN.xVleF,com.hzqe.ICVhK.xMo.XBh,com.HrTmWIY.uLI.gipKmbi" +92,f0:7a:e7:a5:e8:19,"com.gVX.IOnVfwW.wDJ.WjAumX,com.qelI.mjf.LGyhA,com.DRjvlr.RPTUvGU,com.QNRht.OsYjYO.hqdPSyn.BqwoeLP,com.QHfxGH.PZrfRUm.fPkBnI,com.ljxEjyx.ocPw.IyRjB,com.vjDhLC.jGFxUaH,com.CKvgkvi.Zmsh.yYgQUrE.PJfTHy" +93,48:12:f1:3f:dd:a3,"com.HszKCQS.asaxIEi.qKF,com.WQGce.HvYc,com.MCpqFJ.yKSLAv.LFqbc.TOk" +94,83:34:b6:42:5e:8a,"com.uXRvst.CCNPm.EPS.gvunChq,com.BIJkQdV.xYUmhtk.SrNF,com.Zbxgl.zhKoRUm.iTxi.wqEc" +95,1e:b3:3e:5a:08:c3,"com.CDWOPw.ilZeWYm,com.VUqhNMH.qWYYs.aZV.wgTs,com.lUnba.Ndf.VNcE.REHzRS,com.eEP.RFpik.KeIpzN,com.jMexx.FRicP.wKYe.wDHARn,com.iySo.rDQ" +96,5e:1d:44:cb:2c:db,"com.mFMkFST.PhTI.hfki,com.tCVZqs.jYpArFR,com.ETJbez.ptc.IzIyj.KsPJ,com.vMjcFig.LdkyF.SexObk,com.DRjvlr.RPTUvGU,com.xLmr.YFNLYZ.oHLMGp,com.Ftz.noWA.huas.VSJx" +97,ec:08:a0:8c:5c:69,"com.fnLk.wLR,com.Subfe.ZEq,com.qbteqrJ.mivZ.kpRqNG,com.AyjAfXd.IeWMYnJ,com.ajdr.YYHWu.SLk.nVcikT,com.DRjvlr.RPTUvGU,com.eCdvTn.glI,com.durIh.TXeyAPi" +98,d1:d7:0e:3e:54:20,"com.mFMkFST.PhTI.hfki,com.ziNtg.tSIuhlG,com.jMexx.FRicP.wKYe.wDHARn,com.tcwXsGA.VEnrcro.qdwlr.xghg" +99,9c:f7:fc:28:d1:61,"com.HAhw.yAy.LQBtmN,com.GBrVXU.OuPq.uLIsMOl,com.ljxEjyx.ocPw.IyRjB,com.LRtfLw.YvXfs.HvAXx.rOGcKoS,com.NxMZaGA.meO,com.ODxX.sMuQ.zHFsmh,com.PzDwi.MmfEGNw.AKh,com.pDzTy.ZFf.zkPmm.bhxy,com.eaw.PVw.bXJ.hDYDAi,com.OAaBh.pRtk.HdLSX" diff --git a/python/knext/examples/riskmining1/builder/job/data/Person.csv b/python/knext/examples/riskmining1/builder/job/data/Person.csv new file mode 100644 index 00000000..cf93ff0e --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Person.csv @@ -0,0 +1,21 @@ +id,name,age,hasPhone +0,裘**,58,154****7458 +1,杜*,57,158****1130 +2,邬**,53,196****5422 +3,左**,23,194****7053 +4,席*,25,154****6612 +5,穆**,59,158****4646 +6,郝*,43,158****7726 +7,葛**,43,192****7047 +8,蓝*,45,151****6861 +9,祁**,61,133****3213 +10,柏*,22,132****0000 +11,方*,45,130****4558 +12,袁*,58,155****3610 +13,彭*,31,197****5336 +14,明**,31,198****3183 +15,夏*,51,158****7352 +16,齐**,47,131****5142 +17,萧*,53,157****6173 +18,郎**,29,194****2088 +19,雷**,46,193****8747 diff --git a/python/knext/examples/riskmining1/builder/job/data/Person_fundTrans_Person.csv b/python/knext/examples/riskmining1/builder/job/data/Person_fundTrans_Person.csv new file mode 100644 index 00000000..2dffcd18 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Person_fundTrans_Person.csv @@ -0,0 +1,27 @@ +src,dst,transDate,transAmt +10,0,20230906,6282 +10,0,20230918,33643 +10,0,20230826,3078 +10,0,20230827,2763 +10,0,20230905,13180 +10,1,20230912,1653 +10,1,20230828,32 +10,1,20230916,252 +10,1,20230919,6051 +10,1,20230826,241 +10,1,20230910,2932 +10,1,20230914,2623 +10,1,20230921,1525 +10,1,20230825,3226 +10,2,20230901,3783 +10,2,20230913,11341 +10,2,20230902,12103 +10,2,20230908,29720 +10,2,20230901,15501 +10,2,20230827,18600 +10,2,20230830,19320 +10,2,20230912,43646 +10,2,20230829,5839 +10,2,20230828,39289 +10,2,20230906,20991 +10,2,20230923,2386 diff --git a/python/knext/examples/riskmining1/builder/job/data/Person_hasCert_Cert.csv b/python/knext/examples/riskmining1/builder/job/data/Person_hasCert_Cert.csv new file mode 100644 index 00000000..d7da82a3 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Person_hasCert_Cert.csv @@ -0,0 +1,2 @@ +src,dst +0,33fdf452aa9cd145ba096c364a250ee8 diff --git a/python/knext/examples/riskmining1/builder/job/data/Person_hasDevice_Device.csv b/python/knext/examples/riskmining1/builder/job/data/Person_hasDevice_Device.csv new file mode 100644 index 00000000..bd277a08 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Person_hasDevice_Device.csv @@ -0,0 +1,59 @@ +src,dst +0,3 +0,26 +0,21 +0,29 +0,25 +0,5 +0,9 +0,27 +0,4 +0,11 +0,13 +0,6 +1,18 +1,24 +1,29 +1,6 +1,20 +1,19 +1,0 +1,17 +1,16 +1,4 +1,25 +1,3 +1,15 +2,26 +2,28 +2,3 +2,21 +2,2 +2,9 +2,25 +2,10 +2,24 +2,1 +2,13 +2,7 +2,20 +2,11 +2,16 +2,22 +3,88 +4,69 +5,87 +6,73 +7,76 +8,75 +9,98 +10,94 +11,45 +12,59 +13,38 +14,93 +15,49 +16,86 +17,52 +18,31 +19,45 diff --git a/python/knext/examples/riskmining1/builder/job/data/Person_holdShare_Company.csv b/python/knext/examples/riskmining1/builder/job/data/Person_holdShare_Company.csv new file mode 100644 index 00000000..56cdfaf3 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/Person_holdShare_Company.csv @@ -0,0 +1,4 @@ +src,dst +10,0 +10,1 +10,2 diff --git a/python/knext/examples/riskmining1/builder/job/data/TaxOfRiskApp.csv b/python/knext/examples/riskmining1/builder/job/data/TaxOfRiskApp.csv new file mode 100644 index 00000000..b9bcd829 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/TaxOfRiskApp.csv @@ -0,0 +1,2 @@ +id +赌博应用 diff --git a/python/knext/examples/riskmining1/builder/job/data/TaxOfRiskUser.csv b/python/knext/examples/riskmining1/builder/job/data/TaxOfRiskUser.csv new file mode 100644 index 00000000..7c5bd40d --- /dev/null +++ b/python/knext/examples/riskmining1/builder/job/data/TaxOfRiskUser.csv @@ -0,0 +1,3 @@ +id +赌博App开发者 +赌博App老板 diff --git a/python/knext/examples/riskmining1/builder/operator/cert_link_operator.py b/python/knext/examples/riskmining1/builder/operator/cert_link_operator.py new file mode 100644 index 00000000..fadd8da4 --- /dev/null +++ b/python/knext/examples/riskmining1/builder/operator/cert_link_operator.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +# Copyright 2023 Ant Group CO., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except +# in compliance with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software distributed under the License +# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express +# or implied. + +from typing import List + +from knext.operator.op import LinkOp +from knext.client.search import SearchClient +from knext.operator.spg_record import SPGRecord + + +class CertLinkerOperator(LinkOp): + bind_to = "RiskMining.Cert" + + def __init__(self): + super().__init__() + self.search_client = SearchClient("RiskMining.Cert") + + def eval(self, property: str, record: SPGRecord) -> List[SPGRecord]: + has_cert = property + query = {"match": {"certNum": has_cert}} + recall_certs = self.search_client.search(query, start=0, size=10) + if recall_certs is not None and len(recall_certs) > 0: + return [SPGRecord("RiskMining.Cert", {"id": recall_certs[0].doc_id})] + return [SPGRecord("RiskMining.Cert", {"id": property})] diff --git a/python/knext/examples/riskmining1/reasoner/gambling_app.dsl b/python/knext/examples/riskmining1/reasoner/gambling_app.dsl new file mode 100644 index 00000000..75a24e72 --- /dev/null +++ b/python/knext/examples/riskmining1/reasoner/gambling_app.dsl @@ -0,0 +1,4 @@ +MATCH + (u:`RiskMining.TaxOfRiskUser`/`赌博App开发者`)-[:developed]->(app:`RiskMining.TaxOfRiskApp`/`赌博应用`), + (b:`RiskMining.TaxOfRiskUser`/`赌博App老板`)-[:release]->(app) +RETURN u.name, b.name ,app.id diff --git a/python/knext/examples/riskmining1/schema/concept.rule b/python/knext/examples/riskmining1/schema/concept.rule new file mode 100644 index 00000000..3d2bc919 --- /dev/null +++ b/python/knext/examples/riskmining1/schema/concept.rule @@ -0,0 +1,37 @@ +namespace RiskMining + +`TaxOfRiskApp`/`赌博应用`: + rule: [[ + Define (s:App)-[p:belongTo]->(o:`TaxOfRiskApp`/`赌博应用`) { + Structure { + (s) + } + Constraint { + R1("风险标记为赌博"): s.riskMark like "%赌博%" + } + } + ]] + +`TaxOfRiskUser`/`赌博App开发者`: + rule: [[ + Define (s:Person)-[p:belongTo]->(o:`TaxOfRiskUser`/`赌博App开发者`) { + Structure { + (s)-[:developed]->(app:`TaxOfRiskApp`/`赌博应用`) + } + Constraint { + } + } + ]] + +`TaxOfRiskUser`/`赌博App老板`: + rule: [[ + Define (s:Person)-[p:belongTo]->(o:`TaxOfRiskUser`/`赌博App老板`) { + Structure { + (s)-[:release]->(a:`TaxOfRiskApp`/`赌博应用`), + (u:Person)-[:developed]->(a), + (s)-[:fundTrans]->(u) + } + Constraint { + } + } + ]] diff --git a/python/knext/examples/riskmining1/schema/riskmining.schema b/python/knext/examples/riskmining1/schema/riskmining.schema new file mode 100644 index 00000000..084376bc --- /dev/null +++ b/python/knext/examples/riskmining1/schema/riskmining.schema @@ -0,0 +1,67 @@ +namespace RiskMining + +TaxOfRiskUser(风险用户): ConceptType + hypernymPredicate: isA + +TaxOfRiskApp(风险应用): ConceptType + hypernymPredicate: isA + +Cert(证书): EntityType + properties: + certNum(证书编号): Text + +App(应用): EntityType + properties: + riskMark(风险标记): Text + useCert(使用证书): Cert + IND#belongTo(属于): TaxOfRiskApp + +Company(企业): EntityType + properties: + hasPhone(电话号码): STD.ChinaMobile + relations: + hasCert(拥有证书): Cert + holdShare(持股): Company + +Device(设备): EntityType + properties: + umid(设备umid): Text + install(安装): App + constraint: MultiValue + +Person(自然人): EntityType + properties: + age(年龄): Integer + hasPhone(电话号码): STD.ChinaMobile + IND#belongTo(属于): TaxOfRiskUser + relations: + hasDevice(拥有设备): Device + hasCert(拥有证书): Cert + holdShare(持股): Company + fundTrans(转账关系): Person + properties: + transDate(交易日期): Text + transAmt(交易金额): Integer + developed(开发): App + rule: [[ + Define (s:Person)-[p:developed]->(o:App) { + STRUCTURE { + (s)-[:hasDevice]->(d:Device)-[:install]->(o) + } + CONSTRAINT { + deviceNum = group(s,o).count(d) + R1("设备超过5"): deviceNum > 5 + } + } + ]] + release(发布): App + rule: [[ + Define (s:Person)-[p:release]->(o:App) { + STRUCTURE { + (s)-[:holdShare]->(c:Company), + (c)-[:hasCert]->(cert:Cert)<-[useCert]-(o) + } + CONSTRAINT { + } + } + ]] diff --git a/python/knext/examples/riskmining1/schema/riskmining_schema_helper.py b/python/knext/examples/riskmining1/schema/riskmining_schema_helper.py new file mode 100644 index 00000000..08726c57 --- /dev/null +++ b/python/knext/examples/riskmining1/schema/riskmining_schema_helper.py @@ -0,0 +1,92 @@ +# ATTENTION! +# This file is generated by Schema automatically, it will be refreshed after schema has been committed +# PLEASE DO NOT MODIFY THIS FILE!!! +# + +class RiskMining: + def __init__(self): + self.App = self.App() + self.Cert = self.Cert() + self.Company = self.Company() + self.Device = self.Device() + self.Person = self.Person() + self.TaxOfRiskApp = self.TaxOfRiskApp() + self.TaxOfRiskUser = self.TaxOfRiskUser() + + class App: + __typename__ = "RiskMining.App" + description = "description" + id = "id" + name = "name" + riskMark = "riskMark" + belongTo = "belongTo" + useCert = "useCert" + + def __init__(self): + pass + + class Cert: + __typename__ = "RiskMining.Cert" + description = "description" + id = "id" + name = "name" + certNum = "certNum" + + def __init__(self): + pass + + class Company: + __typename__ = "RiskMining.Company" + description = "description" + id = "id" + name = "name" + hasPhone = "hasPhone" + + def __init__(self): + pass + + class Device: + __typename__ = "RiskMining.Device" + description = "description" + id = "id" + name = "name" + umid = "umid" + install = "install" + + def __init__(self): + pass + + class Person: + __typename__ = "RiskMining.Person" + description = "description" + id = "id" + name = "name" + hasPhone = "hasPhone" + age = "age" + belongTo = "belongTo" + + def __init__(self): + pass + + class TaxOfRiskApp: + __typename__ = "RiskMining.TaxOfRiskApp" + description = "description" + id = "id" + name = "name" + stdId = "stdId" + alias = "alias" + + def __init__(self): + pass + + class TaxOfRiskUser: + __typename__ = "RiskMining.TaxOfRiskUser" + description = "description" + id = "id" + name = "name" + alias = "alias" + stdId = "stdId" + + def __init__(self): + pass +