如何为推理器添加个人,六种数据类型属性和规则?

时间:2014-02-20 15:28:00

标签: java jena owl protege

我有一个使用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);
        }


    }

1 个答案:

答案 0 :(得分:0)

我建议首先阅读Jena推断中的this resource。 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

如果您需要参与基于非owl规则的推理,并且需要构建自己的规则,那么上面的Jena推理链接将是最佳起点。