从RELO看OPENRDF
http://www.openrdf.org
在RELO中,Java从项目到package到class,包含里面的细节,最终都是RDF结构存储在RDF文件或者RDF数据库中, 不但用它表述了Java的关系,还有图上的连线、用户标注,位置、都用RDF描述。
根据我的不完全理解,欢迎大家批斗,RDF里面主要是Statement这个玩意,它是什么呢?就是咱们以前最烦的:
主谓宾。这是基本的自然语言。
如果我们要画个图,可能会对图上的元素建模,包含以下属性:x/y/w/h/text/parent/children/model
这里有比较复杂的对象引用。用RDF描述则表现为几条Statement语句, 随便打开一个relo保存的文档,截取一个对象的描述:
_:node142u7s296x3531
relo-jdt:refType <http://relo.csail.mit.edu/rdf/jdt-wkspc#edu.mit.csail.relo.modelBridge$Artifact> ;
a relo-jdt:field ;
relo-core:name "dstArt" ;
relo-core:initialized "true" ;
relo-jdt:access relo-jdt:access-none ;
relo-jdt:source-resource <http://relo.csail.mit.edu/rdf/relo-eclipse#bin_sledu_slmit_slcsail_slrelo_slmodelBridge_slArtifactRel.class> .
主语是文档中的一个node,每个谓语是有schema的所以几乎可以无限扩展。宾语是各种值。在javadoc中的定义:
Statement createStatement(Resource subject, URI predicate, Value object)
Value: Resource, IdValue, Literal,NativeValue, Resource, ValueNode
Resource: BNode, IdResource, NativeResource, ResourceNode, URI
主语是一个特定结构的Resource, 谓语是URI(近似Java中的URI),宾语可以是各种值。
这种结构的最大好处就是随意查询。任何值为null则代表"*"
StatementIterator getStatements(Resource subj, URI pred, Value obj)
这样,查询某个包下面有哪些类、某个类被那些方法引用等都会很简单,因为我们可以任意组合主谓宾的某个部分区查询。这就是RDF的强项。
在sesame中还支持内存、文本、二进制、关系数据库的存储,给我们的应用带来更大的灵活性。如果你有关系复杂的数据要描述、查询,不妨试试。
一些更复杂的特性不做介绍。
注意relo只使用了1.0版本中的存储api,不包含server。
个人认为这种结构更适合将来智能语言的处理。虽然效率不见得很高。
分享到:
相关推荐
"Relo"插件是针对这些IDE的一个增强工具,特别适用于处理大规模的代码库分析和可视化。 Relo插件的主要功能在于它的代码导航和可视化能力。对于开发人员来说,理解和掌握大型项目中的代码结构是一项挑战,Relo通过...
ReLo(后端) ReLo 是一款基于 VueJS 的微博和社交网络应用重要的! 这仅包括项目使用的 REST API。 要测试整个应用程序,请克隆 ,这是该项目使用的 FrontEnd 部分设置安装依赖: npm install运行服务器: 在 ...
从提供的信息来看,这个项目与JavaScript有关,因此我们可以推测这是一个使用JavaScript编程语言构建的项目。JavaScript是Web开发中最常用的语言之一,用于构建交互式的前端应用或者在服务器端运行(如Node.js环境)...
#### Rel1-Rel4、Rel5-Rel6、Relo8-Relo9、Relo10-Relo11、Relo12-Relo13、Relo1-Relo2、Relo3-Relo4、Relo5-Relo6、Relo7-Relo8、Relo9-Relo10、Relo11-Relo12、Relo13-Relo14 这些表示继电器触点。电路板上的继电...
Relo是用于MinGW和Borland C ++编译器的Windows C / C ++ IDE。 它主要针对开发Windows(Win32)应用程序,但也可以用于开发控制台/ DOS应用程序。 它的设计易于使用和自定义。
我们创建了ReloTalent房地产Chrome附加组件,使您可以直接从正在上班的网站上轻松地在ReloTalent中创建属性! 找到所需的属性,然后按照创建它的步骤进行操作,该属性将在您的ReloTalent环境中创建,并且可以与您的...
java运行依赖jar包
Architexa插件允许开发者从源码中自动生成UML类图,这在理解和重构大型项目时非常有用。UML(统一建模语言)是一种标准的图形表示法,用于软件设计的建模和文档编制。类图是UML中的基本元素之一,它描绘了系统中类与...
它创建了一个由数据点组成的随机3臂螺旋(想象一个二维图上的一堆数据点,看起来像是3臂的螺旋,有点像银河系),所有点都属于其中一个这些武器。 神经网络的工作是对每个点属于哪个分支进行分类。 这不是我自己的...
11. **Relo**:Relo是一款代码分析工具,特别适用于大型项目。它可以帮助开发者跟踪代码包的层次结构,快速生成类似UML的类图,便于理解代码结构。 这些插件丰富了Eclipse的功能,使其成为一个高度可定制化的开发...
由1love和scpnion 1life制作的Inferno League Bot由TalkTakesTime,Quinella和Morfent从Pokemon Showdown机器人分叉 添加自定义联赛命令只是为了减少联赛房间的按键 要运行bot,请打开cmd并按如下所示键入命令- cd ...
schnatterer.info 建立 # Install ruby sudo apt-get install ruby-full build-essential zlib1g-dev # Install gems for local user ...# Start jekyll development server with client-side live-relo
俄罗斯方块轮换游戏机制不同的tetriminos,由四个正交连接的正方形块组成的几何图形,这些图形是从屏幕上方区域中占据5x5块的区域生成的。 对于游戏区域的尺寸,每个版本都不同,没有达成共识。20但是,玩家隐藏了两...
电子表达React应用程序 使用Express服务器和React的Electron应用程序的快速入门 ... Webpack建立在开发模式下(它将在您编辑app文件夹上的内容时建立时间)之后,您只需在devtools中键入location.relo
第三只眼睛 此应用使用摄像头(USB WebCam或PyCam)检测运动和对象,显示实时视频流以及基于运动和对象检测数据的一些有用的统计信息。 当前,该系统部署在Raspberry Pi 4上。...uvicorn fastapi_app:app --relo
我有以下课程 public class ModInfo : IEquatable { public int ID { get; set; } public string MD5 { get; set; } public bool Equals(ModInfo other) ... return other.MD5.Equals(MD5);...public void Relo
- **重启交换机的简写命令**:`switch#relo` - **重启交换机的完整命令**:`switch#reload` ### 19. VLAN管理 - **进入VLAN数据库的简写命令**:`switch#vlda` - **进入VLAN数据库的完整命令**:`switch#vlan ...