问题标签 [knowledge-graph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
graph-databases - 何时使用图数据库、本体和知识图
从实际的角度来看,我一直在努力理解这些技术何时有用,以及它们之间有何不同。专家可以检查我的理解吗?
图数据库:当关系复杂、继承、以不同程度的置信度推断并且可能发生变化时,这些数据库比关系数据库更容易理解和管理。一些例子:用户不知道他们在层次结构中需要多少深度;从社交媒体推断关系,对 ID 解析、主题解析和关系强度有不同程度的信心;或者不知道他们想要存储什么样的呼叫中心数据;所有这些都可以存储在关系数据库中,但它们需要不断更新。对于某些任务,它们也更具表现力。
本体:这些正式和标准化的知识表示用于打破数据孤岛。例如,假设一家 B2B 销售公司从多个不同的业务线获得收入,这些业务包括一次性付款、订阅、IP 销售和咨询服务。收入数据存储在许多具有许多特性的不同数据库中。本体允许用户将“客户付款”定义为“创造或返还收入”的任何事物,以便主题专家可以在他们的数据库中适当地标记付款。本体可以与图数据库或关系数据库一起使用,但是对类继承的强调使得它们更容易在图数据库中实现,其中类的分类可以很容易地建模。
知识图:知识图是一个图数据库,其中语言(含义、实体和节点分类)由本体管理。因此,在我们的 B2B 示例中,“客户支付”边缘具有一次性支付、订阅等子类型,并将“客户”类连接到“业务线”类。
这基本正确吗?
neo4j - py2neo (Neo4j) 批量操作
我使用我添加到项目中的本地 CSV 文件,使用 Neo4j Desktop 创建了一个漂亮的图表。现在我正在尝试使用 python 自动执行此操作,因为我正在尝试使用此处https://py2neo.org/2021.1/bulk/index.html中的方法,例如创建/合并节点/关系。我有2个问题,
- 我是否需要使用创建方法(例如创建节点),然后使用合并方法(本示例中的合并节点)或者可以从一开始就使用合并节点?我尝试只使用合并,当我使用大样本量时,我得到了一些奇怪的东西。
2)创建节点和关系后,如何更改节点的可视化(在节点中放置一些值)?
*如果有其他方法可以使用 python 从一个大的 CSV 文件创建图表,我想听听,谢谢!
python - 生成以经济术语为语义的知识图谱
我有以下文本,我想提取三元组,以便生成知识图 (KG)。
我的目的是自动检测影响“通货膨胀”的因素之间的关系
预期的输出应该是捕捉这种关系的三元组:
然后我想指定类似的术语push up
是 的同义词,increase
而通货膨胀是 的同义词consumer price index
。
基于上面的示例,然后我想删除“重复项”——上面的最后两个要点本质上是相同的,所以不需要两者。
有人可以在python中进行计算吗?
sparql - 访问 .trig 文件空白节点中的多个值
我有一个 .trig 文件上传到 Apache Jena Fuseki 本地服务器。.trig 文件中的 3 个命名图表以不同的航班为中心 - 每个图表都有交通状况的快照和时间戳的航班数据。
数据
数据格式如下(我复制了相关部分):
s1:ID_002
平原:飞行;
平原:flightIdent s1:ID_004 。
s1:ID_004
一个普通的:FlightIdent ;
plain:aircraftIdent [ rdf:value "EXAMPLE" ] ;
平原:轨迹 s1:ID_008 。
s1:ID_008
一个普通的:EfplTrajectoryRoutePair ;
平原:轨迹 s1:ID_021 。
s1:ID_021
平原:轨迹;
平原:轨迹点 s1:P1、s1:P2、s1:P3、s1:P4、s1:P5、s1:P6、s1:P7、s1:P8、s1:P9、s1:P10。
s1:P1
平原:EfplTrajectoryPoint ;
普通:trajectoryPointType [ rdf:value 0 ] ;
平原:点 s1:P11 。
s1:P11
平原:EfplPoint4D ;
普通:pos [ rdf:value 46.123456789, 7.123456789] ;
平原:时间 [rdf:value "2021-01-01T00:00:01.000Z"^^xsd:dateTime] 。
问题
我正在尝试查询图表以获取飞机位置。由于我需要的信息在一个空白节点中,我一直使用“rdf:value”作为谓词
这将返回此格式的数据 |aircraft |position1 | |---------|------------| |s1:P11 |46.123456789| |s1:P11 |7.123456789 | |s1:P21 |46.123456789| |s1:P21 |7.123456789 | |s1:P31 |46.123456789| |s1:P31 |7.123456789 |
所以每架飞机都有它的纬度,经度值在一个单独的行中。我尝试为纬度和经度创建一个单独的变量,但是我每架飞机有 4 个条目,并带有排列
纬度, 纬度
纬度, 经度
经度, 纬度
经度, 经度
我想要(纬度,经度)组合,因为这是正确的顺序,但我无法隔离那个特定的输出行。
部分工作的查询:
给我变量不同的行:
纬度,经度
,经度,纬度
我不能在 FILTER 部分使用“>”,因为这可能并非在所有用例中都是正确的。我可以做些什么来隔离(经度,纬度)行或在单个变量中获取数据(最好用逗号分隔)?这些值稍后将在 Java 代码中使用,因此我需要将它们分成 2 个变量或将它们连接到单个变量(用于字符串解析)。
sparql - 使用 Jena 列出 N-triple 文件中的所有类和实例
我是一个初学者,想通过 Jena 列出 N-triple 文件中的所有实体/类和实例,但我不知道该怎么做。或者可以使用 Sparql 来做到这一点。
我已经将 N-triple 文件加载为 JENA 模型。
这是N-triple文件的链接:https ://drive.google.com/file/d/143PJ8_fgJdyNbB8sjvErpdP371uO6glv/view
stanford-nlp - OPENIE 6 中的连词问题
我正在使用带有以下输入的OPENIE6 ( https://github.com/dair-iitd/openie6 ):-
特朗普总统会见了印度和中国的领导人。
但我只得到一个三胞胎:-
相反,如文档和演示中所述,应该有两个三元组:-
任何人都可以帮忙,确切的问题是什么?