package com.warmer.web.service; import com.warmer.base.util.GraphPageRecord; import com.warmer.web.model.NodeItem; import com.warmer.web.request.GraphQuery; import com.warmer.web.request.NodeCoordinateItem; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.List; import java.util.Map; public interface KGGraphService { /** * 领域标签分页 * @param queryItem * @return */ GraphPageRecord> getPageDomain(GraphQuery queryItem); /** * 删除Neo4j 标签 * * @param domain */ void deleteKGDomain(String domain); /** * 查询图谱节点和关系 * * @param query * @return node relationship */ HashMap queryGraphResult(GraphQuery query); /** * 获取节点列表 * * @param domain * @param pageIndex * @param pageSize * @return */ HashMap getdomainnodes(String domain, Integer pageIndex, Integer pageSize); /** * 获取某个领域指定节点拥有的上下级的节点数 * * @param domain * @param nodeId * @return long 数值 */ long getRelationNodeCount(String domain, long nodeId); /** * 创建领域,默认创建一个新的节点,给节点附上默认属性 * * @param domain */ void createDomain(String domain); void quickCreateDomain(String domain,String nodeName); /** * 获取/展开更多节点,找到和该节点有关系的节点 * * @param domain * @param nodeId * @return */ HashMap getMoreRelationNode(String domain, String nodeId); /** * 更新节点名称 * * @param domain * @param nodeId * @param nodeName * @return 修改后的节点 */ HashMap updateNodeName(String domain, String nodeId, String nodeName); /** * 创建单个节点 * * @param domain * @param entity * @return */ HashMap createNode(String domain, NodeItem entity); /** * 批量创建节点和关系 * * @param domain * 领域 * @param sourceName * 源节点 * @param relation * 关系 * @param targetNames * 目标节点数组 * @return */ HashMap batchCreateNode(String domain, String sourceName, String relation, String[] targetNames); /** * 批量创建下级节点 * * @param domain * 领域 * @param sourceId * 源节点id * @param entityType * 节点类型 * @param targetNames * 目标节点名称数组 * @param relation * 关系 * @return */ HashMap batchCreateChildNode(String domain, String sourceId, Integer entityType, String[] targetNames, String relation); /** * 批量创建同级节点 * * @param domain * 领域 * @param entityType * 节点类型 * @param sourceNames * 节点名称 * @return */ List> batchCreateSameNode(String domain, Integer entityType, String[] sourceNames); /** * 添加关系 * * @param domain * 领域 * @param sourceId * 源节点id * @param targetId * 目标节点id * @param ship * 关系 * @return */ HashMap createLink(String domain, long sourceId, long targetId, String ship); /** * 更新关系 * * @param domain * 领域 * @param shipId * 关系id * @param shipName * 关系名称 * @return */ HashMap updateLink(String domain, long shipId, String shipName); /** * 删除节点(先删除关系再删除节点) * * @param domain * @param nodeId * @return */ List> deleteNode(String domain, long nodeId); /** * 删除关系 * * @param domain * @param shipId */ void deleteLink(String domain, long shipId); /** * 段落识别出的三元组生成图谱 * * @param domain * @param entityType * @param operateType * @param sourceId * @param rss * 关系三元组 * [[startname;ship;endname],[startname1;ship1;endname1],[startname2;ship2;endname2]] * @return node relationship */ HashMap createGraphByText(String domain, Integer entityType, Integer operateType, Integer sourceId, String[] rss); /** * 批量创建节点,关系 * @param domain * @param params 三元组 sourceNode,relationship,targetNode */ void batchCreateGraph(String domain, List> params); /** * 导入csv * @param domain * @param csvUrl * @param status */ void batchInsertByCSV(String domain, String csvUrl, int status) ; /** * 更新节点有无附件 * @param domain * @param nodeId * @param status */ void updateNodeFileStatus(String domain,long nodeId, int status); /** * 更新图谱节点的图片 * @param domain * @param nodeId * @param img */ void updateNodeImg(String domain, long nodeId, String img); /** * 移除节点图片 * @param domain * @param nodeId */ void removeNodeImg(String domain, long nodeId); void updateCoordinateOfNode(String domain, String uuid, Double fx, Double fy); /** * 批量更新节点坐标 * @param domain * @param nodes */ void batchUpdateGraphNodesCoordinate(String domain,List nodes); void importBySyz(MultipartFile file, HttpServletRequest request,String label,Integer isCreateIndex)throws Exception ; void importByCategory(MultipartFile file, HttpServletRequest request,String label)throws Exception ; }