图数据库的知识表示与推理

图形数据库及其技术生态系统可以为知识表示和推理问题提供优雅,有效的解决方案。 要了解这种说法,我们必须首先了解什么是图形。 图是一种数据结构。 图数据结构的类型很多,但出于本文的目的,我们将重点介绍一种已被称为属性图的类型 。 属性图表示顶点(节点,点)和边缘(弧,线)。 对属性图中的边进行定向和标记/键入(例如“马科知道彼得”)。 顶点和边缘(通常称为元素)都可以具有与之关联的任意数量的键/值对。 这些键/值对称为属性。 通过这种基础结构,可以回答一系列问题并解决问题。

对象建模

property-graph-1
属性图数据结构的形式几乎与面向对象编程的对象图相同。 收集对象,删除它们的方法,然后剩下一个属性图。 对象的字段是原始字段,在这种情况下用作属性,或者它们很复杂,在这种情况下用作对其他对象的引用。 例如,在Java中:

class Person {String name;Integer age;Collection<Person> knows;
}

这个名字年龄的属性是特定人实例的顶点属性和属性都知道指的知道标记的边缘给其他人。 Neo Technology的 Emil Eifrem拥护一种观点,即属性图与现代面向对象语言的语义以及开发人员使用的绘图技术保持一致,因此是“白板友好的”。 泰勒·科 万 ( Taylor Cowan )的jo4neo项目就是对这一想法的证明。 在jo4neo中,Java注释被优雅地用于允许Neo4j图形数据库支持Java对象图。 除了技术优势外,人类的思维还倾向于根据对象及其关系进行思考。 因此,图形也可以被认为是“对人脑友好的”。

给定一个对象图,可以回答有关领域的问题。 在称为Gremlin的图遍历DSL中 ,我们可以问对象图的问题:

// Who does Marko know?
marko.outE('knows').inV// What are the names of the people that Marko knows?
marko.outE('knows').inV.name// What are the names and ages of the people that Marko knows?
marko.outE('knows').inV.emit{[it.name, it.age]}// Who does Marko know that are 30+ years old?
marko.outE('knows').inV{it.age > 30}

概念建模

分类1
从组成模型的实例来看,可能存在抽象概念。 例如,尽管可能存在书籍实例,但也可能存在那些书籍所属的类别-例如科幻小说,技术小说,浪漫史等。图形是一种灵活的结构,因为它允许人们表达某种事物与某种事物相关其他的方式。 这些东西可能是真实的,也可能是空灵的。 这样,可以将本体论概念及其实例表示出来并进行适当查询以回答问题。

// What are the parent categories of history?
x = []; history.inE('subCategory').outV.aggregate(x).loop(3){!it.equals(literature)}; x// How many descendant categories does fiction have?
c = 0; fiction.outE('subCategory').inV.foreach{c++}.loop(3){true}; c// Is romance at the same depth as history?
c = 0; romance.inE('subCategory').outV.loop(2){c++; !it.equals(literature)}.outE('subCategory').inV.loop(2){c--; !it.equals(history)}; c == 0

自动推理

推理1
根据显式对象,它们之间的关系以及它们的抽象类别,可以制定推理过程。 图建模中存在的一种张力是要进行显式(结构化)和通过遍历(过程)进行推断的结果 。 就像许多计算一样,权衡是在空间和时间之间进行的。 如果某人与其共同作者之间存在优势,那么从该人与其共同作者之间只有一步之遥。 另一方面,如果必须通过共享著作推断出合著者,则需要执行多跳步骤来确定合著者。 推理是使隐含的事物显式化的过程。 下面使用Gremlin给出了几个简单的推理示例。

// Two people who wrote the same book/article/etc. are coauthors
g.V{x = it}.outE('wrote').inV.inE('wrote').outV.except([x])[0].foreach{g.addEdge(null, x, it, 'hasCoauthor')}// People who write literature are authors
author = g.addVertex(); author.type='role'; author.name='author'
g.V.foreach{it.outE('wrote').inV[0].foreach{g.addEdge(null, it, author, 'hasRole')} >> -1}

在上面的示例中,计算了完整的图表分析以确定所有共同作者和作者角色。 但是,没有什么可以阻止对本地推理算法的评估。

// Marko's coauthors are those people who wrote the same books/articles/etc. as him
marko.outE('wrote').inV.inE('wrote').outV.except([marko])[0].foreach{g.addEdge(null, x, it, 'hasCoauthor')}

结论

图形可用于建模对象,它们之间的关系以及它们所处的概念结构。 从该显式信息中,可以评估图查询和推理算法,以回答图上的问题并增加图内包含的显式知识的密度(即,增加顶点和边的数量)。 在RDF (知识表示)和RDFS / OWL (推理)的世界中,已经广泛利用了这种特定的图形使用模式。 RDF / RDFS / OWL的世界主要限于描述逻辑 (请参阅此处的相反论点)。 描述逻辑只是知识表示和推理这一更大领域的一部分。 有许多逻辑可以利用。 在图数据库的新兴空间中,存在必要的构建块来支持对其他逻辑的利用。 此外,在某些情况下,这些逻辑可以在同一图形结构内同时使用。 至此,下面的阅读清单提供了一些书籍,这些书籍阐明了有关异构推理的不同逻辑和思想。 图形数据库提供了一个实现这些想法的绿色领域。

进一步阅读

  • Brachman,R.,Levesque,H.,“ 知识表示与推理 ”,Morgan Kaufmann,2004年。
  • Wang,P.,“ 刚性灵活性:智能的逻辑 ”,Springer,2006年。
  • 美国东部时间Mueller,“ 常识推理 ”,Morgan Kaufmann,2006年。
  • Minsky,M.,“ 心灵学会” ,Simon&Schuster,1988年。

翻译自: https://www.javacodegeeks.com/2014/06/knowledge-representation-and-reasoning-with-graph-databases.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/363404.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vegas 为盖斯

vegas 为盖斯 S键 分割素材U键 分开视频和音频I键渲染开始O渲染结束 默认布局 为盖斯新建项目的参数 剪好后渲染 插入字幕 转载于:https://www.cnblogs.com/GaoNa/p/10562504.html

COMET彗星(三)构建自己的COMET核心

主题列表&#xff1a; COMET彗星&#xff08;一&#xff09;SERVER PUSH介绍 COMET彗星&#xff08;二&#xff09;基于SERVER PUSH的消息传输 引言&#xff1a; 在上一篇随笔中&#xff0c;对COMET使用的类和作用进行了简短的介绍&#xff0c;从本篇随笔开始&#xff0c;将从实…

如何在JavaServer Pages中使用Salesforce REST API

摘要&#xff1a;本教程提供了一个JSP示例以及如何将其与Salesforce REST API集成。 我们将逐步完成创建外部客户端以使用Force.com &#xff08;同时使用HTTP&#xff08;S&#xff09;和JSON&#xff09;管理您的数据的分步过程。 在此示例中&#xff0c;我将Mac OS X 10.9.…

写在08年“愚人节”

从博客园学了很多东西&#xff0c;是时候该回馈了。谢谢博客园给我们提供这么好的平台交流技术。 刚发了文章习惯性的看了下自己博客的首页代码&#xff0c;感觉日历不够精良。 我做过的一个ajax日历&#xff0c;可以参考解放日报 艺术家具版的日期直达功能的日历&#xff0c;用…

JQuery实现点击按钮切换图片(附源码)--JQuery基础

JQuery实现切换图片相对比较简单&#xff0c;直接贴代码了哈&#xff0c;有注释噢&#xff01;疑问请追加评论哈&#xff0c;不足之处还请大佬们指出&#xff01; 1、案例代码&#xff1a; demo.html&#xff1a; <!DOCTYPE html><html><head>   <me…

CSS3盒子模型

web前端必须了解的CSS3盒子模型 1、需要了解的属性以及属性值 display:box或者display:inline-box box-orient:horizontal | vertical (水平 垂直) 定义盒模型的布局方向 box-direction:normal reverse(正序 反序) 元素排列顺序 box-ordinal-group:number(数值) 设置元素…

与JBoss Fuse,Jenkins和Nexus的持续集成

最近&#xff0c;我正在整理一个快速启动的Maven项目&#xff0c;以展示一种组织JBoss Fuse项目的可行方法。 该项目可在Github上找到&#xff1a; https &#xff1a; //github.com/paoloantinori/fuse_ci 这是我与朋友詹姆斯罗林斯 &#xff08; James Rawlings&#xff09…

html5表单与PHP交互

1、示例代码 前端&#xff1a; <!DOCTYPE html><html><head><meta charset"utf-8"> <title>html5表单与PHP交互</title></head><body><form action"http://localhost/jh.php" method"post"…

【DP】【期望】$P1850$换教室

【DP】【期望】\(P1850\)换教室 链接 题目描述 有 \(2n\) 节课程安排在$ n$ 个时间段上。在第 \(i\)&#xff08;\(1 \leq i \leq n\)&#xff09;个时间段上&#xff0c;两节内容相同的课程同时在不同的地点进行&#xff0c;其中&#xff0c;牛牛预先被安排在教室 \(c_i\)上课…

高并发服务器逻辑处理瓶颈,如何解决?

https://mp.weixin.qq.com/s/GHHHvgURdZpNJ1Ec6RHgPg 高并发衡量指标 响应时间&#xff1a;系统对请求做出响应的时间&#xff0c;即一个http请求返回所用的时间&#xff1b;吞吐量&#xff1a;单位时间内处理的请求数量&#xff1b;QPS&#xff08;TPS&#xff09;&#xff1a…

Java 8 StampedLocks与ReadWriteLocks和同步

同步部分就像访问您的岳父母。 您希望尽可能少出现。 关于锁定&#xff0c;规则是相同的–您想花费最短的时间在关键区域内获取锁定&#xff0c;以防止形成瓶颈。 锁定的核心语言惯用法一直是用于方法和离散块的synced关键字。 这个关键字实际上已硬连接到HotSpot JVM中。 我们…

MSN on 2/16/2009

转载于:https://www.cnblogs.com/zxlin25/archive/2009/02/16/1391207.html

开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

在上篇随笔《基于微信小程序的系统开发准备工作》介绍了开发微信小程序的一些前期的架构设计、技术路线 、工具准备等方面内容&#xff0c;本篇随笔继续这个步骤&#xff0c;逐步介绍我们实际开发过程中对SSL协议的申请及后期处理过程&#xff0c;包括证书的IIS端口绑定&#x…

【面向对象】对比JavaScript、Go、Ada、Python、C++、Java、PHP的访问限制。

在不同编程语言中&#xff0c;控制成员&#xff08;变量、方法、类等&#xff09;可见性的机制不尽相同。以下是对比JavaScript、Go、Ada、Python、C、Java、PHP所使用的访问限制关键字和约定&#xff1a; 一、JavaScript ### JavaScript访问限制 早期的JavaScript并没有类似…

Web API应用架构设计分析(1)

Web API 是一种应用接口框架&#xff0c;它能够构建HTTP服务以支撑更广泛的客户端&#xff08;包括浏览器&#xff0c;手机和平板电脑等移动设备&#xff09;的框架&#xff0c; ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台。本文主要以AS…

MapXtreme2008中操作矢量符号和定制符号

本文部分说明内容摘自网络文章&#xff0c;经过本人在MapXtreme2008中编写相关的演示例子&#xff0c;详细说明如何操作MapXtreme2008提供的矢量符号和定制符号。 MapXtreme 在其安装过程中自动安装 10 种 MapInfo 特定的 TrueType 字体。这些字体为用户提供了字形符号选择&am…

转载:97特瑞心得

单位里无聊打着玩的心得&#xff0c;写了段时间了&#xff0c;基本是哪天想到什么就打上去&#xff0c;狗屁不通的地方请大家包涵。97特瑞玩了有10年多了吧,97刚出来的时候就玩的特瑞&#xff0c;别人都八神&#xff0c;萝卜特&#xff0c;克拉克的时代我就坚持用特瑞&#xff…

吸气剂/设定者。 邪恶。 期。

从2003年开始&#xff0c;艾伦霍鲁布&#xff08;Allen Holub&#xff09;讨论了为什么吸气剂和塞特方法是邪恶的著名文章&#xff0c;关于吸气剂/塞特方法是否是反模式&#xff0c;应该避免使用&#xff0c;还是我们在面向对象中不可避免地需要它&#xff0c;这是一个古老的争…

【原】.Net创建Excel文件(插入数据、修改格式、生成图表)的方法

1.添加Excel引用 可以在.Net选项卡下添加Microsoft.Office.Interop.Excel引用&#xff0c;或在COM下添加Microsoft Excel 12.0 Object Library。它们都会生成Microsoft.Office.Interop.Excel.dll。 2.创建Excel。 有两种方法创建一个Excel Workbook实例。 1.需要一个模板文件&…

求助:安装程序无法创建一个DCOM用户帐号来注册.....\valec.exe

http://support.microsoft.com/kb/257413/ 这是Visual Studio的一个BUG&#xff0c;只出现在Windows 2000/XP下。如果你不使用Visual Studio Analyzer&#xff0c;可以在安装时选择Custom&#xff0c;然后在Enterprise Tools中清除掉Visual Studio Analyzer。再安…