Knowledge Graph知识图谱—7. Labeled Property Graphs带标签的属性图

7. Labeled Property Graphs (LPG)

Labeled Property graphs: A combination of property/value stores(NoSQL) and graphs
Definition

7.1 Verbosity of RDF Graphs


7.1.1 RDF Reification

将关系本身作为资源进行建模

7.1.2 RDF Named Graphs


Named Graphs(命名图)是一种在图数据模型中用于组织和标识图数据的方法。它允许在一个大的图中将数据分为不同的图形组件,每个组件都有一个唯一的标识符,通常称为图名或图标签。Named Graphs 主要用于在图数据库和语义网中进行数据建模和查询。

RDF seems particularly bad at representing non-triple information

Choice:

(1) Blow up RDF graph (like DBpedia)

(2) Use non-straightforward representation: Reification or Named Graphs

(3) Other approaches in academia (singleton property, NDFluents, ...): Not very handy either and Little adoption

In any case: Querying gets harder

Motivation for labeled property graphs

Modeling would be much easier if we could simply attach information to edges

Attempt in the Semantic Web Technologies Toolstack: RDF* / SPARQL*

7.2 RDF*

RDF RDF*
Subject URIs or blank nodes URIs, blank nodes, or quoted statements
Predicate URIs URIs
Object URIs, blank nodes, literals URIs, blank nodes, literals, or quoted statements

Quoting triples Example

复制代码
<<dbr:Dirk_Nowitzki dbo:team dbr:DJK_Wuerzburg>>
dbo:activeYearsStartYear 1994 ;
dbo:activeYearsEndYear 1998 .

The subject of the statement is a triple.

7.2.1 Nesting in RDF*

RDF* statements can be subjects and objects themselves

复制代码
<<
<<dbr:Dirk_Nowitzki dbo:team dbr:DJK_Wuerzburg>> 
dbo:activeYearsStartYear 1994 ; 
dbo:activeYearsEndYear 1998 .
>>
rdfs:definedBy
<http://dbpedia.org/>

7.2.2 Interpretation of RDF* vs. RDF

In RDF, we cannot make statements about two contradictory statements A and B without the entire graph being contradictory.

In RDF, when we make a statement about a statement S, S is automatically assumed to be true.

7.2.3 RDF*: Quoted vs. Asserted Triples

Quoted triples are not automatically true

If we want to make them true (asserted), we have to do so explicitly.

复制代码
dbr:Dirk_Nowitzki dbo:team dbr:DJK_Wuerzburg .
<<dbr:Dirk_Nowitzki dbo:team dbr:DJK_Wuerzburg>> 
dbo:activeYearsStartYear 1994 ; 
dbo:activeYearsEndYear 1998 .

# For this, there is a syntactic shortcut:
dbr:Dirk_Nowitzki dbo:team dbr:DJK_Wuerzburg 
{| dbo:activeYearsStartYear 1994 ; 
dbo:activeYearsEndYear 1998 |} .

7.3 SPARQL*: Querying RDF* Graphs

SPARQL*: Just like ordinary SPARQL

Triple patterns can

contain Quoted triples and Triple annotations + a few more builtin functions

7.3.1 SPARQL* Return Types

SPARQL return types: Resource with URI, Blank node, Literal, Number

SPARQL* adds a fifth return type: Triple

7.3.2 Other Query Types with SPARQL*

ASK and DESCRIBE : work as in SPARQL
CONSTRUCT : can also construct RDF*

Not all quoted triples are asserted.

The default graph of SPARQL results is only

asserted triples

SPARQL 查询结果的默认图只包含那些已经被断言的三元组(只有那些在查询中找到匹配并已被显式断言的三元组会出现在默认图中),而引用的三元组可能只是查询中的临时结构或条件,并不一定成为最终结果中的事实。

从第一句:Julia :loves :Peter .是asserted triples,因此返回结果是:Julia

RDF*/SPARQL*: Not (yet) a standard, but lots of tools support RDF* and/or SPARQL*

7.4 RDF* and Inference

7.5 Cypher

Started as a proprietary query language for the graph database system neo4j in 2011

Like SPARQL, Cypher is based on pattern matching.

复制代码
() denotes a node
[] denotes a relation
()-[]->() denotes a directed path
()-[]-() denotes an undirected path

7.5.1 Simple Query

复制代码
# Simple query: matching any node
MATCH (n) return n
# Would return all nodes

# Simple query: matching nodes with labels
MATCH (n:Movie) return n
# Would return only movie nodes

7.5.2 Restrictions on Keys

复制代码
# Simple query: matching any node
MATCH (n:Movie {title: "The Matrix"}) return n
# Would return only the specific movie
# Also possible:
MATCH (n {title: "The Matrix") return n
#Would return any node with a title "The Matrix"

7.5.3 Querying for Node Types

复制代码
# What kind of node is "The Matrix"?
match(m {title:"The Matrix"}) return labels(m)

7.5.4 Path Expressions



注意,应该是return n, r, e

7.5.5 Querying for Relation Types

复制代码
# What kind of relation does Hugo Weaving have to the Matrix?
Match
(Movie {title:"The Matrix"})<-[r]-(Person {name:"Hugo Weaving"}) 
return type(r)

7.5.6 Return Types in Cypher

复制代码
#So far, our return types were nodes or relations. We can also query for specific properties.

match(m:Movie {title: "The Matrix"}) 
return m.released

# return value can also be a property of a relation
# Which role(s) did Hugo Weaving play in The Matrix?
match(Movie {title: "The Matrix"}) <-[r:ACTED_IN]-(Person {name:"Hugo Weaving"}) 
return r.roles

7.5.7 Complex Paths & Combining Match Clauses


7.5.8 Variable Binding


7.5.9 WHERE Clauses

7.5.10 Path Quantifiers

7.5.11 Graph Updates

Cypher also allows for adding and deleting information

复制代码
# This requires a set instead of a return statement, e.g.,
match (p:Person)-[ACTED_IN]->(m:Movie) 
set p:Actor

Cypher also allows for adding and deleting properties

复制代码
# This requires a set instead of a return statement, e.g.,
match(p:Person)-[ACTED_IN]->(m:Movie) 
with p,count(m) as moviecount 
where (moviecount>10) 
set p.famous="true"

Notes on this query:

Cipher allows counting (closed world semantics)

The with construct is used for variable scoping

  • Compute with first
  • Compute where second
    • cf.(confer=compare with) having in SQL

Cypher also allows for adding and deleting nodes and edges

复制代码
#This requires a create instead of a return statement, e.g.,
match (p1:Person)-[r1:ACTED_IN]->(m:Movie) 
match (p2:Person)-[r2:ACTED_IN]->(m:Movie) 
create (p1)-[:KNOWS]->(p2)

Graph Updates vs. Reasoning
Inference in Cipher

We can infer additional edges using SET/CREATE commands. Those only apply for the current state of the graph, i.e., later changes are not respected

如果在之后对图数据库进行了更改,新增了新的边缘关系,这些更改不会受到之前推断的影响。换句话说,推理操作只适用于执行推理时图数据库的当前状态。

复制代码
match (p:Person)-[ACTED_IN]->(m:Movie) 
set p:Actor
# Here, a later addition of a person acting in a movie would not get the Actor label!

Inference in RDF/S

Can be updated and/or evaluated at query time

RDF/S 允许推理操作的动态更新,这意味着当数据图发生更改时,可以根据推理规则对新数据进行重新评估,并进行相应的推理。

7.6 Comparison LPG+Cypher vs. RDF*/SPARQL*

相关推荐
金智维科技官方9 分钟前
制造业如何用Ki-AgentS智能体平台实现设备巡检自动化?
大数据·运维·人工智能
stereohomology10 分钟前
大模型看大模型:推理Token的能耗用电量比对
人工智能
Hello world.Joey11 分钟前
Transformer解读
人工智能·深度学习·神经网络·自然语言处理·nlp·aigc·transformer
机器之心16 分钟前
Sand.ai开源发布MagiCompiler:突破局部编译界限,定义训推性能上限
人工智能·openai
KieranYin29 分钟前
AI编程 | 概念
人工智能
飞Link39 分钟前
LangChain Core 架构深度剖析与 LCEL 高阶实战
人工智能·架构·langchain
liangdabiao42 分钟前
Seedance 2.0 Skill 一键写好剧本上线了coze的技能商店了,免费
人工智能
喵飞云智AI研发社1 小时前
本土AI企业发力 喵飞科技AIGC开年分享会助力天津数字化转型
人工智能·科技·aigc
于过1 小时前
AgentMiddleware is All You Need
人工智能·langchain·llm
LLM精进之路1 小时前
频域+特征融合:深度学习的黄金组合,顶会顶刊的快速通道
人工智能·计算机视觉·目标跟踪