我是本体领域的初学者。我有一个简单的问题,我在任何地方都找不到!我已经在 Protege 中制作了我的本体,我已经概念化了我感兴趣的领域(生产线中的能源消耗),现在我需要通过这个本体访问存储在我的数据库中的数据。我不想存储任何我的本体中的数据,但需要通过我的本体访问数据库中的数据。我完全不知道它的可能性,如果可能的话,我必须使用哪些工具来达到这个目的?例如,我应该用 Java 编写代码还是......提前非常感谢
user2849814
问问题
694 次
1 回答
1
如果您有一个包含数据的数据库和一个表示这些数据概念化的本体,您可以通过为 D2RQ 编写映射来建立一个映射并公开这些数据,就好像它们是根据您的概念化表示的一样。
取自文档的示例:
# D2RQ Namespace
@prefix d2rq: <http://www.wiwiss.fu-berlin.de/suhl/bizer/D2RQ/0.1#> .
# Namespace of the ontology
@prefix : <http://annotation.semanticweb.org/iswc/iswc.daml#> .
# Namespace of the mapping file; does not appear in mapped data
@prefix map: <file:///Users/d2r/example.ttl#> .
# Other namespaces
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
map:Database1 a d2rq:Database;
d2rq:jdbcDSN "jdbc:mysql://localhost/iswc";
d2rq:jdbcDriver "com.mysql.jdbc.Driver";
d2rq:username "user";
d2rq:password "password";
.
# -----------------------------------------------
# CREATE TABLE Conferences (ConfID int, Name text, Location text);
map:Conference a d2rq:ClassMap;
d2rq:dataStorage map:Database1;
d2rq:class :Conference;
d2rq:uriPattern "http://conferences.org/comp/confno@@Conferences.ConfID@@";
.
map:eventTitle a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:Conference;
d2rq:property :eventTitle;
d2rq:column "Conferences.Name";
d2rq:datatype xsd:string;
.
map:location a d2rq:PropertyBridge;
d2rq:belongsToClassMap map:Conference;
d2rq:property :location;
d2rq:column "Conferences.Location";
d2rq:datatype xsd:string;
.
于 2013-10-05T20:19:06.303 回答