以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML 与 数据库 』  (http://bbs.xml.org.cn/list.asp?boardid=17)
----  OWL API 数据库存储本体的问题!!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=17&rootid=&id=60345)


--  作者:micropuss
--  发布时间:3/24/2008 10:34:00 AM

--  OWL API 数据库存储本体的问题!!
目前从wiki的protege网站上看到OWL API存本体到数据库的两种方法:  

Method 1   
The simplest way to load an OWL Database project is to load programmatically the project (pprj file), which already contains all database connection information:

Project prj = Project.loadProjectFromFile("/home/pizza_db.pprj",errors);
OWLModel owlModel = (OWLModel) prj.getKnowledgeBase();
...

Method 2
The second method should be used if there is no project file (.pprj) associated with the OWL Database ontology.  

OWLDatabaseKnowledgeBaseFactory factory = new OWLDatabaseKnowledgeBaseFactory();         
Project prj = Project.createNewProject(factory, errors);
OWLDatabaseKnowledgeBaseFactory.setSources(prj.getSources(), "com.mysql.jdbc.Driver", "jdbc:mysql://localhost:3306/protege", "pizza", "user", "password");
prj.createDomainKnowledgeBase(factory, errors, true);

OWLModel owlModel = (OWLModel) prj.getKnowledgeBase();

上面两种方法都需要一个project,难道是protege owl api必须的吗?欢迎讨论。


--  作者:micropuss
--  发布时间:3/24/2008 10:40:00 AM

--  
Jena API 连接数据库:

public class OntoDBUtil {
private OntoDBUtil(){
}
public static OntModelSpec getModelSpec( ModelMaker maker ) {
/*create a spec for the new ont model that will use no inference over models
made by the given maker (which is where we get the persistent models from)*/
OntModelSpec spec = new OntModelSpec( OntModelSpec.OWL_MEM );
spec.setImportModelMaker( maker );
return spec;
}
/* 连接数据库*/
static IDBConnection connectDB(String DB_URL,String DB_USER,String DB_PASSWD,String DB_NAME){
                      return new DBConnection ( DB_URL, DB_USER, DB_PASSWD, DB_NAME);
} /*从文件读取本体并将其存入数据库*/
static OntModel createDBModelFromFile(IDBConnection con,String name,String filePath){
         ModelMaker maker = ModelFactory.createModelRDBMaker(con);
         Model base=maker.createModel(name);
         OntModel newmodel=ModelFactory.createOntologyModel(getModelSpec(maker),base);
         newmodel.read(filePath);
         return newmodel;
}  

/*从数据库中得到已存入本体*/
static OntModel getModelFromDB(IDBConnection con,String name){
         ModelMaker maker = ModelFactory.createModelRDBMaker(con);
         Model base=maker.getModel(name);
         OntModel newmodel=ModelFactory.createOntologyModel(getModelSpec(maker),base);
         return newmodel;
}

}


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms