rdf的含义:在Hebeler等人的语义Web编程中输入Turtle片段?

时间:2014-05-12 12:00:10

标签: rdf semantic-web foaf

我是语义Web的初学者,我对RDF的作用有所了解。有人可以向我解释从书籍语义网编​​程中获得的以下语句,特别是带分号的语法(例如,rdf:type foaf:Person;和foaf:family name“Web”)?

@prefix rdfs:
<http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf:
<http://xmlns.com/foaf/0.1/> .
@prefix admin:
<http://webns.net/mvcb/> .
@prefix owl:
<http://www.w3.org/2002/07/owl#> .
@prefix xsd:
<http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:
<http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix swp2:
<http://semwebprogramming.org/2009/ont/chp2#>.
< swp2:me>
rdf:type foaf:Person ;
foaf:depiction <http://semwebprogramming.org/semweb.jpg> ;
foaf:family name "Web" ;
foaf:givenname "Semantic" ;
foaf:homepage <http://semwebprogramming.org> ;
foaf:knows < swp2:Reasoner> , < swp2:Statement> , < swp2:
Ontology> ;
foaf:name "Semantic Web" ;
foaf:nick "Webby" ;
foaf:phone <tel:410-679-8999> ;
foaf:schoolHomepage <http://www.web.edu> ;
foaf:title "Dr" ;
foaf:workInfoHomepage
<http://semwebprogramming.com/dataweb.html> ;
foaf:workplaceHomepage
<http://semwebprogramming.com> 

1 个答案:

答案 0 :(得分:2)

正如评论中所揭示的那样,但在原始帖子中没有显示,Turtle序列化中的此示例RDF取自Semantic Web Programming, page 42。 URI格式错误的数据存在一些问题(例如< swp:me>),但Google图书预览看起来可能来自本书的草稿。我不知道最终的印刷版本中是否存在这些问题。

作者实际上指的是第3章,了解有关不同序列化格式的更多信息,但在这种情况下,您只需要了解;,符号。 Turtle序列化它与SPARQL查询语法非常相似,因此您可以从Meaning of SPARQL operator ';'的答案中受益。简而言之,这些语法允许您编写

<subject> <predicate> <object> .

三重奏。有时你有多个具有相同主语和谓词的三元组,在这种情况下你有:

<subject> <predicate> <object1> .
<subject> <predicate> <object2> .

这些语法允许您使用逗号缩写:

<subject> <predicate> <object1> , <object2> .

当您有多个具有相同主题的谓词 - 对象对时,例如

<subject> <predicateA> <object1> .
<subject> <predicateB> <object2> .

您可以使用分号来缩写:

<subject> <predicateA> <object1> ;
          <predicateB> <object2> .

您也可以组合这些缩写的正文,以便转动

<subject> <predicateA> <object1a> .
<subject> <predicateA> <object2a> .
<subject> <predicateB> <object1b> .
<subject> <predicateB> <object2b> .

作为

<subject> <predicateA> <object1a> ,
                       <object2a> ; 
          <predicateB> <object1b> ,
                       <object2b> .

如果你修复了原始数据中的问题(格式错误的URI)以及由于复制和粘贴问题而产生的问题(例如,foaf:family_name中缺少下划线),那么你最终会得到这样的数据:

@prefix swp2:  <http://semwebprogramming.org/2009/ont/chp2#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix foaf:  <http://xmlns.com/foaf/0.1/> .
@prefix admin: <http://webns.net/mvcb/> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

swp2:me  a                      foaf:Person ;
        foaf:depiction          <http://semwebprogramming.org/semweb.jpg> ;
        foaf:family_name        "Web" ;
        foaf:givenname          "Semantic" ;
        foaf:homepage           <http://semwebprogramming.org> ;
        foaf:knows              swp2:Reasoner , swp2:Statement , swp2:Ontology ;
        foaf:name               "Semantic Web" ;
        foaf:nick               "Webby" ;
        foaf:phone              <tel:410-679-8999> ;
        foaf:schoolHomepage     <http://www.web.edu> ;
        foaf:title              "Dr" ;
        foaf:workInfoHomepage   <http://semwebprogramming.com/dataweb.html> ;
        foaf:workplaceHomepage  <http://semwebprogramming.com> .

很明显,使用我上面讨论的;,缩写,本文档包含一系列三元组,其主题为swp2:me。这与作者&#39;描述,他们写的(第45页):

  

FOAF-a-Matic生成的这些语义Web语句描述   人,语义网和朋友。声明形成   关系。例如,#me下的第一个分组声明   有关所有者的信息,语义网。分组   声明提供有关所有者姓名,电话的信息   数字等。

如果要显式查看所有三元组,N-Triples序列化(每行放一个三元组)非常有用:

<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/workplaceHomepage> <http://semwebprogramming.com> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/knows> <http://semwebprogramming.org/2009/ont/chp2#Reasoner> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/phone> <tel:410-679-8999> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/knows> <http://semwebprogramming.org/2009/ont/chp2#Statement> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/workInfoHomepage> <http://semwebprogramming.com/dataweb.html> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/depiction> <http://semwebprogramming.org/semweb.jpg> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/givenname> "Semantic" .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/schoolHomepage> <http://www.web.edu> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/homepage> <http://semwebprogramming.org> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://xmlns.com/foaf/0.1/Person> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/title> "Dr" .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/nick> "Webby" .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/knows> <http://semwebprogramming.org/2009/ont/chp2#Ontology> .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/family_name> "Web" .
<http://semwebprogramming.org/2009/ont/chp2#me> <http://xmlns.com/foaf/0.1/name> "Semantic Web" .