我是语义网的新手。我的问题是:如何在 Java 程序中使用 RDF Schema?我不应该使用 Java Jena API 进行转换。有没有办法这样做?我有一个 Java 程序中的名称列表,并希望将它们转换为 RDF Schema。您的帮助将不胜感激。
问问题
615 次
1 回答
0
根据评论中的一些澄清,似乎这里需要的只是他表示一些基本 RDF 的能力。如果您要在不使用某些支持库的情况下手动编写 RDF,那么最容易使用的格式是N-Triples。您需要按属性识别所有资源,并学习如何使用文字(可以是纯字符串、带有语言标签的字符串或字符串和数据类型)。这是一个简单的 RDF 文档,它声明了两个类,Person 和 Animal,一个属性,hasPet,并包含 FDR 拥有(拥有?)一个名为 Fala 的宠物的声明。
<http://example.org/Fala> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Animal> .
<http://example.org/Animal> <http://www.w3.org/2000/01/rdf-schema#label> "Animal"@en .
<http://example.org/Animal> <http://www.w3.org/2000/01/rdf-schema#comment> "The class of (non-human) animals"@en .
<http://example.org/Animal> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
<http://example.org/Person> <http://www.w3.org/2000/01/rdf-schema#label> "Person"@en .
<http://example.org/Person> <http://www.w3.org/2000/01/rdf-schema#comment> "The class of people." .
<http://example.org/Person> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2000/01/rdf-schema#Class> .
<http://dbpedia.org/resource/Franklin_D._Roosevelt> <http://example.org/hasPet> <http://example.org/Fala> .
<http://dbpedia.org/resource/Franklin_D._Roosevelt> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://example.org/Person> .
<http://example.org/hasPet> <http://www.w3.org/2000/01/rdf-schema#comment> "used to indicate that the object is a pet of the subject"@en .
<http://example.org/hasPet> <http://www.w3.org/2000/01/rdf-schema#label> "has pet"@en .
<http://example.org/hasPet> <http://www.w3.org/2000/01/rdf-schema#range> <http://example.org/Animal> .
<http://example.org/hasPet> <http://www.w3.org/2000/01/rdf-schema#domain> <http://example.org/Person> .
<http://example.org/hasPet> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/1999/02/22-rdf-syntax-ns#Property> .
这就是它的全部。用 URI 表示事物,并写一些句子。使用库来生成 RDF 更为常见,因为否则您将不得不担心 URI 中允许使用哪些字符以及类似的东西,而适当的库将处理这些问题的检查。无论如何,您可以生成它,但是您通常会在 Java 中生成文本输出。
作为参考,下面是 Turtle 和 RDF/XML 中的相同 RDF 图。Turtle 更易于人类阅读,手写也不太难,但用程序编写不像 N-Triples 那样容易。RDF/XML 根本不应该手写。
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex: <http://example.org/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix dbpedia: <http://dbpedia.org/resource/> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
ex:Animal
a rdfs:Class ;
rdfs:comment "The class of (non-human) animals"@en ;
rdfs:label "Animal"@en .
ex:Fala
a ex:Animal .
ex:hasPet
a rdf:Property ;
rdfs:comment "used to indicate that the object is a pet of the subject"@en ;
rdfs:domain ex:Person ;
rdfs:label "has pet"@en ;
rdfs:range ex:Animal .
<http://dbpedia.org/resource/Franklin_D._Roosevelt>
a ex:Person ;
ex:hasPet ex:Fala .
ex:Person
a rdfs:Class ;
rdfs:comment "The class of people." ;
rdfs:label "Person"@en .
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:ex="http://example.org/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:dbpedia="http://dbpedia.org/resource/"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
<rdfs:Class rdf:about="http://example.org/Animal">
<rdfs:label xml:lang="en">Animal</rdfs:label>
<rdfs:comment xml:lang="en">The class of (non-human) animals</rdfs:comment>
</rdfs:Class>
<rdfs:Class rdf:about="http://example.org/Person">
<rdfs:label xml:lang="en">Person</rdfs:label>
<rdfs:comment>The class of people.</rdfs:comment>
</rdfs:Class>
<rdf:Property rdf:about="http://example.org/hasPet">
<rdfs:comment xml:lang="en">used to indicate that the object is a pet of the subject</rdfs:comment>
<rdfs:label xml:lang="en">has pet</rdfs:label>
<rdfs:range rdf:resource="http://example.org/Animal"/>
<rdfs:domain rdf:resource="http://example.org/Person"/>
</rdf:Property>
<ex:Person rdf:about="http://dbpedia.org/resource/Franklin_D._Roosevelt">
<ex:hasPet>
<ex:Animal rdf:about="http://example.org/Fala"/>
</ex:hasPet>
</ex:Person>
</rdf:RDF>
于 2013-10-10T01:07:09.883 回答