我是语义网开发的新手,目前我正在开发一个博物馆应用程序,我必须创建一个我的表的rdf文件来搜索记录,很少有参数将从IOS应用程序传递,它将从rdf中找到一条记录文件,并将以json格式提供输出。我发现博物馆有一种特殊的本体/格式称为CIDOC-CRM。
我的问题是,如何使用CIDOC CRM格式生成RDF文件?
答案 0 :(得分:1)
CIDOC CRM的reference documentation表示数据模型存在现有的RDF和/或OWL表示。 official releases页面包含用于下载数据模型的RDF表示的链接。截至目前,version 5.1是最新的下载版本。
从无创建图
因为您有现有的数据模型和词汇表,所以"如何使用CIDOC CRM格式生成RDF文件的问题"相当于"如何使用CIDOC提供的数据模型和词汇生成RDF文件"。这是一个非常常见的问题,实际上很容易。
第二步需要:
从数据库创建图表
如果您已经有一个包含此信息的(关系型)数据库,那么它可能是从表名到词汇表术语的相当简单的翻译。这将涉及执行select查询(例如使用JDBC),然后根据结果将语句写入jena Model
。
将图表表示为JSON
RDF有一个json序列化格式JSON-LD,如果需要,可以用write your output。
答案 1 :(得分:0)
我做了一个修正,我能够以JSON-LD格式序列化一个文件。这是一个代码
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:crm="http://www.cidoc-crm.org/rdfs/cidoc_crm_v5.0.4_official_release.rdfs#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" >
<crm:P102_has_title>Nativity</crm:P102_has_title>
<crm:P91_has_unit>25.6 h x 19.6 w cm</crm:P91_has_unit>
<crm:P7_took_place_at>4f</crm:P7_took_place_at>
<crm:P33_used_specific_technique>Printed Image</crm:P33_used_specific_technique>
<crm:P33_used_specific_technique>Pencil</crm:P33_used_specific_technique>
<crm:P41i_was_classified_by>Moderns</crm:P41i_was_classified_by>
<crm:P2_has_type>Painting</crm:P2_has_type>
<crm:P4_has_time-span>1933</crm:P4_has_time-span>
<crm:P52_has_current_owner>Rex WOOD</crm:P52_has_current_owner>
现在我的问题是如何才能获取一条记录,因为我将从IOS应用程序传递参数,该参数可能是P52_has_current_owner或P2_has_type或P4_has_time-span
我读取rdf的代码是这样的。
FileManager.get()addLocatorClassLoader(test.class.getClassLoader());
Model model=FileManager.get().loadModel("H:/EclipseWorkplace/MuseumDatabaseRecommendation/src/data3.rdf");
model.write(System.out,"JSON-LD");