TIC-MEHDS-KnowledgeGraph-java/kgBuilder-pro/src/main/java/com/warmer/web/service/KGGraphService.java
2025-10-28 15:13:57 +08:00

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 ;
}