0

カーディナリティが1:1の場合、最初のテーブル名からOWLクラスを作成し、2番目のテーブル名からOWLクラスを作成する必要があります。カーディナリティ 1:* で、いずれかのテーブルがオブジェクト プロパティを記述している場合、最初のテーブル名から OWL オブジェクト プロパティを作成し、2 番目のテーブル名から OWL クラスを作成します。列名から OWL クラスを作成し、残りを行うにはどうすればよいですか? Protege OWL API を Eclipse にインストールしました。

package snippet;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import edu.stanford.smi.protege.exception.OntologyLoadException;
import edu.stanford.smi.protegex.owl.ProtegeOWL;
import edu.stanford.smi.protegex.owl.model.OWLModel;
import edu.stanford.smi.protegex.owl.model.OWLNamedClass;

public class Snippet {

public static void main(String[] args) throws OntologyLoadException {
    //-Dprotege.dir=

    //  SQL Server DB with JDBC
     String url = "jdbc:sqlserver://xxx:1433";
     String userName = "xxx";
     String password = "xxx";

    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection con = DriverManager.getConnection (url, userName, password);
        Statement smt = con.createStatement();
        smt.executeQuery("SELECT * from table_references");
        ResultSet rs = smt.getResultSet();

        while (rs.next()) { 
            String column1 = rs.getString("referenced_object_id");
            String column2 = rs.getString("name");
            String column3 = rs.getString("parent_column_id");
            String column4 = rs.getString("referenced_column_id");

            System.out.println(column1 + " | " + column2 + " | " + column3 + " | " + column4);
        }   

    } 
    catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    //Protege API   
}

}

4

3 に答える 3

0

オントロジーの変更に OWL API ほど良くない Jena API を使用しています。元の質問では、OWL API の使用について言及しています。それを見てみることをお勧めします。もっと簡単です:OWLAPI

于 2013-05-23T20:24:37.947 に答える