RDF 是一个框架,用来描述网络资源, 它将信息表示为一个断言(主谓宾三元组)集合
下面是一个RDF文档实例:
#下面是命名空间声明
@prefix foaf:<http://xmlns.com/foaf/0.1/>.
@prefix rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix people:<http://www.mywebsite.net/people/>.
@prefix ext:<http://www.mywebsite.net/extension#>.
#这是一条注释
people:张三 ext:与..工作 people:李四 .
people:王五 foaf:认识 people:李四 .
people:赵六 foaf:认识 people:王五; foaf:别名 "刘德华"@cn; foaf:年龄 "41"^^<http://www.w3.org/2001/XMLSchema#int> .
people:小明 foaf:认识 people:张三, people:李四 .
陈述: 由 主语、谓语和宾语写在同行构成, 由空格分开, 以.结尾
people:张三 ext:与..工作 people:李四 .
资源:两种写法:URI形式用<和>封闭; 或者使用@prefix定义的前缀
文字:特殊字符需要用\转义, 含有断行使用两个"""和"""封闭, 类型用^^<databype URI>形式, 结尾处加@language说明语言
people:赵六 foaf:认识 people:王五; foaf:别名 "刘德华"@cn; foaf:年龄 "41"^^<http://www.w3.org/2001/XMLSchema#int> .
简写: rdf:type 可以简写为 a
空白节点: 用 _:前缀开头 表示, 也可以用[ ]封闭空白节点陈述
people:李四 ext:住在 _:node .
_node ext:所在城市 "北京"; ext:所在国家 "中国" .
具体化: 例如 张三说王五认识小明这一类描述可以用 rdf:statement来申明, rdf:subject rdf:predicate rdf:object用于定义准备注释的陈述
people:张三 ext:说 _:stmt .
_:stmt a rdf:statement;
rdf:subject people:王五;
rdf:predicate foaf:认识;
rdf:object people:小明.
容器: 包含rdf:Bag(无序集合) rdf:Seq(有序集合) rdf:Alt(待选集合)
ex:作者 a rdf:Bag ;
rdf:_1 people:张三;
rdf:_2 people:李四;
rdf:_3 people:王五.
ex:章节a rdf:Seq ;
rdf:_1 people:第一章;
rdf:_2 people:第二章;
rdf:_3 people:第三章.
ex:主页a rdf:Alt;
rdf:_1 people:张三;
rdf:_2 people:李四;
rdf:_3 people:王五.
一个简写形式:
ex:book ex:主编 (people:张三 people:李四 people:王五) .
RDF格式转换Java代码:
(RDF/XML - N-TRIPLE - N3)三种格式之间转换, 需要jena
Model rdfModel = ModelFactory.createDefaultModel();
rdfModel.read(inputStream, null, inputFileFormat);
rdfModel.write(outputStream, outputFileFormat);