我正在使用 dotnetrdf 根据从 Windows 应用程序表单中的文本框中获取的数据属性来删除个人。我在此表单中阅读了有关删除查询的先前问题,并对我的代码进行了这些更改,但它既没有给出错误也没有改变本体。
这是我使用的代码
public void deleteActuator(int actuatorCode)
{
TripleStore store = new TripleStore();
Graph mygraph = new Graph();
FileLoader.Load(mygraph, "D:/Masters
Studies/Ontology/Providers/Actuator/ActuatorProvider.owl", new RdfXmlParser());
mygraph.BaseUri = null;
store.Add(mygraph);
SparqlUpdateParser myparser = new SparqlUpdateParser();
SparqlParameterizedString querystring = new SparqlParameterizedString();
querystring.CommandText = "PREFIX AP0:
<http://www.semanticweb.org/faiza/ontologies/2014/10/ActuatorProvider#> " +
"PREFIX rdf: <>" +
"PREFIX owl: <>" +
"PREFIX xsd: <>" +
"PREFIX rdfs: <>" +
"DELETE " +
"WHERE { ?code AP0:ActuatorCode " + actuatorCode + "}";
SparqlUpdateCommandSet cmds = myparser.ParseFromString(querystring);
LeviathanUpdateProcessor processor = new LeviathanUpdateProcessor(store);
processor.ProcessCommandSet(cmds);
mygraph.SaveToFile("D:/Masters
Studies/Ontology/Providers/Actuator/ActuatorProvider.owl");
}
谁能指出我的错误。这是我的猫头鹰文件
<owl:NamedIndividual rdf:about="&ActuatorProvider;ActuatingDevice1">
<ace_lexicon:PN_sg>ActuatingDevice1</ace_lexicon:PN_sg>
<ActuatorProvider:ActuatorExplain rdf:datatype="&xsd;string">"TemperatureControl"</ActuatorProvider:ActuatorExplain>
<ActuatorProvider:ActuatorID rdf:datatype="&xsd;string">"SD01"</ActuatorProvider:ActuatorID>
<ActuatorProvider:ActuatorName rdf:datatype="&xsd;string">"Fan"</ActuatorProvider:ActuatorName>
<ActuatorProvider:ConnectsTo rdf:resource="&ActuatorProvider;ActuatorMiddleware1" />
<ActuatorProvider:PowerConsumption rdf:datatype="&xsd;integer">400</ActuatorProvider:PowerConsumption>
<ActuatorProvider:hasState rdf:resource="&ActuatorProvider;Offline" />
<rdf:type rdf:resource="&ActuatorProvider;Actuating_Device" /> </owl:NamedIndividual>