Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除个人及;来自RDF的属性_Rdf_Semantic Web_Owl_Rowlex - Fatal编程技术网

删除个人及;来自RDF的属性

删除个人及;来自RDF的属性,rdf,semantic-web,owl,rowlex,Rdf,Semantic Web,Owl,Rowlex,我的语义web项目中有一个RDF文件,我使用Rowlex来处理它。 我需要从RDF中删除一个人,所以我使用 <RDFDoc instance>.RemoveIndividual(new OwlThing(<individual URI>, <RDFDoc instance>)); 我找到了我的RDF文件: <Ontologyowl:Student rdf:about="ehsanm"> //other properties <Ont

我的语义web项目中有一个RDF文件,我使用Rowlex来处理它。 我需要从RDF中删除一个人,所以我使用

<RDFDoc instance>.RemoveIndividual(new OwlThing(<individual URI>, <RDFDoc instance>));
我找到了我的RDF文件:

<Ontologyowl:Student rdf:about="ehsanm">
//other properties
    <Ontologyowl:useStudyList>
        <Ontologyowl:StudyList rdf:about="stdl184516"/>
    </Ontologyowl:useStudyList>
</Ontologyowl:Student>

//其他属性
。。。变成这样:

<Ontologyowl:Student rdf:about="ehsanm">
    //other properties  

</Ontologyowl:Student>
<Ontologyowl:StudyList rdf:about="stdl184516"/>

//其他属性
因此,财产被扔掉了。我没有文字属性的问题问题2:有什么问题


提前感谢您的关注和帮助。

您确实删除了该属性,但是与
相关的其他语句没有删除

以下是您的实际陈述(海龟格式):

本体论:学生。 ##其他声明 本体论:使用研究列表。 本体论者:研究者。 因此,删除
主语(以及包含它的语句)的
Ontologyowl:useStudyList
谓词将保留关于
类型的剩余断言是有意义的

没有文字问题的原因是,没有文字作为语句的主题(它们只是语句的对象)。因此,删除该语句将删除文本(以及对它的所有引用)。使用resources作为语句的对象,可能会有关于该资源的其他语句(在您的示例中就是这样)

RDF认为文字是不相交的,这意味着它们都是不同的(即使它们具有相同的值)。这就是为什么删除一个谓词到一个文本(如果你想这样想的话,它的“链接”)也会删除这个文本

更新(补充Lame先生的回答):从概念上讲,RDF是关于节点(资源)图中的边(关系/谓词)。删除节点的概念与RDF相反;这意味着节点(资源)本身就有意义。即使通过断言资源的
rdf:type
来键入资源,也是一个node/edge/node语句。节点URI本身被认为是不透明的,除了作为唯一标识符之外,没有任何语义。这就是为什么RDF不允许“裸”节点(语句外的节点)——它们没有固有的含义


为了扩展Ehsan提出的问题,删除节点实际上会删除其所有传入/传出谓词。这并不是真正的“删除”节点,它实际上删除了引用它的所有语句/断言(当没有语句引用它时,将其视为“隐藏”)

您确实删除了该属性,但是与
相关的其他语句没有删除

以下是您的实际陈述(海龟格式):

本体论:学生。 ##其他声明 本体论:使用研究列表。 本体论者:研究者。 因此,删除
主语(以及包含它的语句)的
Ontologyowl:useStudyList
谓词将保留关于
类型的剩余断言是有意义的

没有文字问题的原因是,没有文字作为语句的主题(它们只是语句的对象)。因此,删除该语句将删除文本(以及对它的所有引用)。使用resources作为语句的对象,可能会有关于该资源的其他语句(在您的示例中就是这样)

RDF认为文字是不相交的,这意味着它们都是不同的(即使它们具有相同的值)。这就是为什么删除一个谓词到一个文本(如果你想这样想的话,它的“链接”)也会删除这个文本

更新(补充Lame先生的回答):从概念上讲,RDF是关于节点(资源)图中的边(关系/谓词)。删除节点的概念与RDF相反;这意味着节点(资源)本身就有意义。即使通过断言资源的
rdf:type
来键入资源,也是一个node/edge/node语句。节点URI本身被认为是不透明的,除了作为唯一标识符之外,没有任何语义。这就是为什么RDF不允许“裸”节点(语句外的节点)——它们没有固有的含义


为了扩展Ehsan提出的问题,删除节点实际上会删除其所有传入/传出谓词。这并不是真正的“删除”节点,它实际上删除了引用它的所有语句/断言(当没有语句引用它时,将其视为“隐藏”)

您的问题与ROWLEX无关,但这是一个典型的图形问题:如果删除一个节点,您将删除到多大程度?当您删除带有文字的属性时,情况很简单,因为没有图形的延续。删除指向另一个节点的属性时,是否应删除该节点?示例中的删除看起来很明显,因为图形既不包含循环引用,也不包含共享关系

想象下图:你有3个人:A(亚当)、B(比尔)和他们的父亲F(弗雷德)。你在A-F和B-F之间有父权关系。 你删除了亚当和他父亲之间的关系。您是否应该删除父节点并使Bill处于不一致(孤立:)状态?这里的答案是“不”。您仅删除关系


在UML图中,您可以选择聚合关系来区分“拥有”和“共享”。它以线条末端钻石的颜色(黑色或白色)表示。在关系数据库中,可以定义或忽略外键上的“级联删除”。它们代表相同的概念。不幸的是,RDF没有在属性上提供这种额外的元数据。如果RDF有这些信息可用,我们就可以确定何时以及在多大程度上对图进行级联删除。但我们没有。这就为坏消息打下了基础:您可以自己执行删除操作。

您的问题与ROWLEX无关,但这是一个典型的图形问题:如果您
<Ontologyowl:Student rdf:about="ehsanm">
    //other properties  

</Ontologyowl:Student>
<Ontologyowl:StudyList rdf:about="stdl184516"/>
<ehsanm> a Ontologyowl:Student .
## Other statements
<ehsanm> Ontologyowl:useStudyList <stdl184516> .
<stdl184516> a Ontologyowl:StudyList .