243 lines
5.5 KiB
Java
243 lines
5.5 KiB
Java
|
|
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<HashMap<String, Object>> getPageDomain(GraphQuery queryItem);
|
|||
|
|
/**
|
|||
|
|
* 删除Neo4j 标签
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
*/
|
|||
|
|
void deleteKGDomain(String domain);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 查询图谱节点和关系
|
|||
|
|
*
|
|||
|
|
* @param query
|
|||
|
|
* @return node relationship
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> queryGraphResult(GraphQuery query);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 获取节点列表
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* @param pageIndex
|
|||
|
|
* @param pageSize
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> 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<String, Object> getMoreRelationNode(String domain, String nodeId);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 更新节点名称
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* @param nodeId
|
|||
|
|
* @param nodeName
|
|||
|
|
* @return 修改后的节点
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> updateNodeName(String domain, String nodeId, String nodeName);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 创建单个节点
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* @param entity
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> createNode(String domain, NodeItem entity);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 批量创建节点和关系
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* 领域
|
|||
|
|
* @param sourceName
|
|||
|
|
* 源节点
|
|||
|
|
* @param relation
|
|||
|
|
* 关系
|
|||
|
|
* @param targetNames
|
|||
|
|
* 目标节点数组
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> batchCreateNode(String domain, String sourceName, String relation, String[] targetNames);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 批量创建下级节点
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* 领域
|
|||
|
|
* @param sourceId
|
|||
|
|
* 源节点id
|
|||
|
|
* @param entityType
|
|||
|
|
* 节点类型
|
|||
|
|
* @param targetNames
|
|||
|
|
* 目标节点名称数组
|
|||
|
|
* @param relation
|
|||
|
|
* 关系
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> batchCreateChildNode(String domain, String sourceId, Integer entityType,
|
|||
|
|
String[] targetNames, String relation);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 批量创建同级节点
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* 领域
|
|||
|
|
* @param entityType
|
|||
|
|
* 节点类型
|
|||
|
|
* @param sourceNames
|
|||
|
|
* 节点名称
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
List<HashMap<String, Object>> batchCreateSameNode(String domain, Integer entityType, String[] sourceNames);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 添加关系
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* 领域
|
|||
|
|
* @param sourceId
|
|||
|
|
* 源节点id
|
|||
|
|
* @param targetId
|
|||
|
|
* 目标节点id
|
|||
|
|
* @param ship
|
|||
|
|
* 关系
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> createLink(String domain, long sourceId, long targetId, String ship);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 更新关系
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* 领域
|
|||
|
|
* @param shipId
|
|||
|
|
* 关系id
|
|||
|
|
* @param shipName
|
|||
|
|
* 关系名称
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
HashMap<String, Object> updateLink(String domain, long shipId, String shipName);
|
|||
|
|
|
|||
|
|
/**
|
|||
|
|
* 删除节点(先删除关系再删除节点)
|
|||
|
|
*
|
|||
|
|
* @param domain
|
|||
|
|
* @param nodeId
|
|||
|
|
* @return
|
|||
|
|
*/
|
|||
|
|
List<HashMap<String, Object>> 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<String, Object> createGraphByText(String domain, Integer entityType, Integer operateType, Integer sourceId,
|
|||
|
|
String[] rss);
|
|||
|
|
/**
|
|||
|
|
* 批量创建节点,关系
|
|||
|
|
* @param domain
|
|||
|
|
* @param params 三元组 sourceNode,relationship,targetNode
|
|||
|
|
*/
|
|||
|
|
void batchCreateGraph(String domain, List<Map<String,Object>> 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<NodeCoordinateItem> nodes);
|
|||
|
|
|
|||
|
|
void importBySyz(MultipartFile file, HttpServletRequest request,String label,Integer isCreateIndex)throws Exception ;
|
|||
|
|
void importByCategory(MultipartFile file, HttpServletRequest request,String label)throws Exception ;
|
|||
|
|
}
|