我有一个用Protégé4.3创建的RDF本体文件,并且我正在尝试创建一个Java应用程序(使用Netbeans和Jena)来添加具有六个数据类型属性的新个人。如何添加此人,并向推理机添加规则并进行推理?我的初始代码是:
package transportevaluation;
import java.io.InputStream;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.util.FileManager;
/**
*
* @author sara
*/
public class TransportEvaluation {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// create an empty model
Model model = ModelFactory.createDefaultModel();
String inputFileName = "C:\\Program Files\\Protege_4.3\\Evaluation\\Evaluation.owl";
// use the FileManager to find the input file
InputStream in = FileManager.get().open(inputFileName );
if (in == null) {
throw new IllegalArgumentException("File: " + inputFileName
+ " not found");
}
model.read(in, "", "RDF/XML");
// write it to standard out
model.write(System.out);
}
}
最佳答案
我建议从阅读this resource的Jena推理开始。 Jena文档中的其他资源将非常有用,例如Ontology API或
以下代码段将为您提供一个基于规则的推理程序,并填充您的本体,并提供一个您可以用来测试推理的人员。如果不确定如何在Jena中设置/获取属性,则不妨从Introduction to the Jena API开始
final OntModel model = ModelFactory.createOntologyModel(OntModelSpec.OWL_DL_MEM_RULE_INF);
model.read( yourInputSource );
model.createIndividual("x-test://someTestIRI");
// TODO add whatever properties are necessary to trigger inference
// TODO test whatever properties are necessary to verify inference occured
如果您需要进行基于非猫头鹰规则的推理,并且需要构建自己的规则,那么上面的Jena Inference链接将是最佳起点。