RDF的文本表示

RDF的文本表示,rdf,turtle-rdf,Rdf,Turtle Rdf,我想用Turtle对RDF图进行文本表示。例如蜘蛛侠和绿妖精之间的关系。请参阅此处的参考资料 @base。 @前缀rdf:。 @前缀rdfs:。 @前缀foaf:。 @前缀rel: rel:enemyOf; foaf:人;#在惊奇世界的背景下 名字叫“绿妖精”。 rel:enemyOf; foaf:人; foaf:名称“蜘蛛侠”,“Чаааааааааааааа。 “蜘蛛侠”和俄语单词之间的逗号(,)是什么意思 另一个更重要的问题是:随着时间的推移,我如何才能对一个城市和一个国家做到这一点?例

我想用Turtle对RDF图进行文本表示。例如蜘蛛侠和绿妖精之间的关系。请参阅此处的参考资料

@base。
@前缀rdf:。
@前缀rdfs:。
@前缀foaf:。
@前缀rel:
rel:enemyOf;
foaf:人;#在惊奇世界的背景下
名字叫“绿妖精”。
rel:enemyOf;
foaf:人;
foaf:名称“蜘蛛侠”,“Чаааааааааааааа。
“蜘蛛侠”和俄语单词之间的逗号(
)是什么意思


另一个更重要的问题是:随着时间的推移,我如何才能对一个城市和一个国家做到这一点?例如:莱比锡在1990年之前一直属于DDR。如今,莱比锡是德国的一座城市。

这里似乎有两个非常不同的问题。一个是语法,一个是建模

对于语法问题,我建议看一下。Turtle指定三元组,这需要三元组规范中的三个实体。
指定三元组的结尾。作为快捷方式,a
表示当前主语被转移到下一个三重规范-因此只需要指定谓词和宾语。A
表示主语和宾语转入下一个三元组。所以,

<#spiderman> foaf:name "Spiderman", "Человек-паук"@ru .
使用bnode可确保名称可能无关紧要的对象在整个数据集中具有唯一的名称(如果名称无关紧要,则指定一个对象来代替bnode)。然后,要查询当前国家,请使用:

SELECT ?country
WHERE {
   ex:Leipzig ex:isMemberOfCountry ?member .
   ?member ex:country ?country .
   FILTER NOT EXISTS {
      ?member ex:toDate ?d
   }
}
要查找特定年份的会员资格,请使用以下信息:

SELECT ?country
WHERE {
 BIND("1991"^^xsd:integer AS ?date) #placeholder - ?date should be passed into the query
    ex:Leipzig ex:isMemberOfCountry ?member .
    ?member ex:country ?country .
    ?member ex:fromDate ?fdate .
    OPTIONAL {?member ex:toDate ?td}
    BIND(IF(bound(?td), ?td, year(now())) AS ?edate)
    FILTER (?date >= ?fdate && ?date <= ?edate)
}
SELECT?国家/地区
在哪里{
BIND(“1991”^^xsd:integer AS?date)#占位符-?date应传递到查询中
例如:莱比锡,例如:isMemberOfCountry?成员。
?成员ex:国家?国家。
?成员ex:fromDate?fdate。
可选{成员ex:toDate?td}
绑定(如果(绑定(?td),?td,年份(现在())为?edate)

过滤器(?date>=?fdate&&?date随着时间的推移,你如何处理一个城市和一个国家?不太清楚你在追求什么,或者你的“其他问题”是什么与你的蜘蛛侠和绿色地精的例子有关。好的,这很有帮助,谢谢你提供的详细信息。标签或类似isMemberOfCountry或country的单词是自由定义的标签。哪些应该以逻辑方式使用?这些单词不是“单词”但是URI是对象。鉴于上面的前缀定义,ex:isMemberOfCountry扩展为。我们在这里发布的RDF/Turtle文档的一些研究应该会让这一点更清楚。请注意,Turtle是W3C推荐的:(您的链接是到旧的草稿)谢谢,我只是抓取了错误的URL。现在更正。
@prefix ex: <http://example.org/geoex/> 
ex:Leipzig
  ex:isMemberOfCountry [
      ex:country ex:DDR ;
      ex:fromDate 1945 ;
      ex:toDate 1990 ;
    ] ;
  ex:isMemberOfCountry [
      ex:country ex:Germany ;
      ex:fromDate 1990 ;
    ] .
SELECT ?country
WHERE {
   ex:Leipzig ex:isMemberOfCountry ?member .
   ?member ex:country ?country .
   FILTER NOT EXISTS {
      ?member ex:toDate ?d
   }
}
SELECT ?country
WHERE {
 BIND("1991"^^xsd:integer AS ?date) #placeholder - ?date should be passed into the query
    ex:Leipzig ex:isMemberOfCountry ?member .
    ?member ex:country ?country .
    ?member ex:fromDate ?fdate .
    OPTIONAL {?member ex:toDate ?td}
    BIND(IF(bound(?td), ?td, year(now())) AS ?edate)
    FILTER (?date >= ?fdate && ?date <= ?edate)
}