C# 基于给定id更新个人的数据属性

C# 基于给定id更新个人的数据属性,c#,sparql,ontology,dotnetrdf,C#,Sparql,Ontology,Dotnetrdf,我想根据任何个人的ID(ActuatorID)更新其数据属性(AccessState)。我过去一直在寻求帮助。我的代码没有给我任何错误,但它不会改变本体。谁能指出我的错误吗。提前谢谢 这是我的本体论 ]> APSERVICES APServices 驱动装置1 在线 的 1. “温度控制” “SD01” “风扇” 400 2015-10-02T00:00:00-05:00 驱动装置2 离线 2. “空调” “DS02” “唇膏护发素” 1300 驱动装置3 3. “打印机” “PT03” “三

我想根据任何个人的ID(ActuatorID)更新其数据属性(AccessState)。我过去一直在寻求帮助。我的代码没有给我任何错误,但它不会改变本体。谁能指出我的错误吗。提前谢谢

这是我的本体论


]>
APSERVICES
APServices
驱动装置1
在线 的
1.
“温度控制”
“SD01”
“风扇”
400
2015-10-02T00:00:00-05:00
驱动装置2
离线
2.
“空调”
“DS02”
“唇膏护发素”
1300
驱动装置3
3.
“打印机”
“PT03”
“三星打印机”
120
驱动装置
驱动装置
执行器代码
执行器代码
促动器编码
实际解释
实际解释
实际解释
促动器
促动器
促动
实际温度IDdleware1
1.
“MW101”
假的
实际中间层2
2.
“MW102”
真的
促动器名称
促动器名称
执行器命名
促动器服务提供者1
执行器支架工具箱1
执行器内容服务
执行器内容服务
执行机构控制服务
执行机构控制服务
执行机构信息管理
执行机构信息管理
执行机构/中间设备
执行器中间件
执行机构供应商服务
执行机构供应商服务
执行机构服务供应商
执行机构服务提供商
执行器状态
执行器状态
执行机构\支架\工具箱
执行机构支撑工具箱
连接到
连接口
连通的
控制服务1
装置
装置
管理层
管理层
管理1
米德尔瓦雷科德
米德尔瓦雷科兹
米德尔瓦雷科德
米德尔瓦雷德
米德尔瓦雷德
米德尔瓦雷德
中卫右翼
中间商
中卫
中间件访问管理
中间件访问管理
表演
表演
表演
耗电量
功耗
耗电
供给
提供
假如
服务信息管理
服务信息管理
使用
使用
使用
哈斯塔特
哈斯塔茨
争论
1.
1.
1.
1.
这里给出了我使用的代码

string actID=txtActuatorId.Text;
字符串actState=txtactautostate.Text;
TripleStore=新的TripleStore();
Graph mygraph=新图形();
Load(mygraph,“D:/ActuatorServiceProvider.owl”,新的RdfXmlParser());
mygraph.BaseUri=null;
store.Add(mygraph);
SparqlUpdateParser myparser=新的SparqlUpdateParser();
SparqlParameterizedString querystring=新的SparqlParameterizedString();
querystring.CommandText=“前缀ap:”+
“前缀rdf:”+
“前缀owl:”+
“前缀xsd:”+
“前缀rdfs:”+
“删除{ind ap:AccessState?t.}”+
“插入{?ind ap:AccessState\”“+actState+”\“^^xsd:string.}”+
“其中{?ind ap:ActuatorID\”“+actID+”\“^^xsd:string.}”;
SparqlUpdateCommandSet cmds=myparser.ParseFromString(querystring);
LeviathanUpdate处理器=新的LeviathanUpdate处理器(存储);
processor.ProcessCommandSet(cmds);
mygraph.SaveToFile(“D:/ActuatorServiceProvider.owl”);

您的数据看起来有点奇怪,因为您的值中似乎包含了不寻常的双引号,例如:

<ap:ActuatorExplain rdf:datatype="&xsd;string">"AirConditioner"</ap:ActuatorExplain>
<ap:ActuatorID rdf:datatype="&xsd;string">"DS02"</ap:ActuatorID>
<ap:ActuatorName rdf:datatype="&xsd;string">"LabConditioner"</ap:ActuatorName>
“空调”
“DS02”
“唇膏护发素”
这也解释了为什么您的更新没有更改,因为您正在搜索
id
,而您的数据包含
“id”


您可以通过在查询中添加引号来修复查询,但老实说,您的实际数据似乎已损坏,您应该通过删除不必要的
围绕值。一旦您的数据被修复,您的查询就会正常工作。

非常感谢您的回答!!为了指出我的错误,我做了更正并得到了答案。