Rdf Sparql查询由类和属性组成的模型,如freebase主题

Rdf Sparql查询由类和属性组成的模型,如freebase主题,rdf,sparql,owl,freebase,mql,Rdf,Sparql,Owl,Freebase,Mql,好的,很难找到这个问题的标题…对不起…我会尽力更好地解释我的问题 我有一个图形和一个本体。我有数百个模型,如人、动物、书等,其中任何一个都有不同深度的属性: <Person1> <hasName> <Luca> <Person1> <hasAddress> <Address1> <Address1> <hasStreet> "Some street" “某条街” 请注意对于“模型”,

好的,很难找到这个问题的标题…对不起…我会尽力更好地解释我的问题

我有一个图形和一个本体。我有数百个模型,如人、动物、书等,其中任何一个都有不同深度的属性:

<Person1>  <hasName>    <Luca>
<Person1>  <hasAddress> <Address1>
<Address1> <hasStreet>  "Some street"

“某条街”
注意对于“模型”,我指的是OWL/RDF类和属性的集合,在示例中,模型“Person”包含类“Person”和“Address”

我想做的是用一个查询获取整个模型实例,比如“get('Person1')”

举个例子,想想自由基。在Freebase中,他们有一些类型的主题(模型实例)(我称之为模型),一个主题完全由一个类和几个属性描述,这些属性可能引用其他类(中介)。当您访问Freebase主题的网页时,您可以看到整个模型

在ontology中,我无法定义模型,但我在其他文件中定义了模型,并且可以使用任何格式,从RDF到JSON和Ruby/Python对象

事实上,我不知道如何解决这个问题…我想用JSON或Ruby obj中的模型文件自动为给定模型创建SPARQL查询,但当您同时检索多个模型时,这似乎很疯狂..我认为这真的很慢…(我有大约200个不同的模型..)

是否有任何“纯”SPARQL方法可以解决我的问题,或者我应该为每个模型创建一个特定的查询

谢谢你的帮助


卢卡

< P>如果你想做一些像FrasBASE主题API的东西,你应该考虑把数据放在一个键/值数据存储中。 查看这篇博客文章,他们使用Redis对RDF数据进行逐主题查询


否则,您需要根据您对模式的了解以及需要扩展哪些属性(如person address)以提供该实体的正确快照,为每个主题构建自定义SPARQL查询。

基本上,您要查找的是。因此,如果您想获得与
http://example.org/Person1
您可以做一个简单的描述:

describe <http://example.org/Person1>
这将使您获得所有三元组,其中
http://example.org/Person1
是主题及其所包含属性的标签。在返回有关
http://example.org/Person1


如果需要与
http://example.org/Person1
,然后您需要自行研究实施或类似策略。这是一个非常简单的实现,如果您需要走这条路线,可能只有100 LOC。

谢谢Shawn!是的,我想做一些像freebase主题API之类的事情…使用键值存储的解决方法对于存储我的模型(FB主题…)很好,但是它会杀死我的应用程序,因为我真的需要一个图形!谢谢你,迈克尔!嗯,构造很好,但我需要在每个模型上构造一个。我正在CBD上记录。现在我正在考虑一种自动化的方法(独立于模型)来检索我需要的所有信息……如果对每个查询中要检索的属性进行编码,那么每个类只需要一个查询模板。一些更通用的格式,如CBD或其他一种描述格式,结合查询模板和参数化,应该会给您一些相当通用的东西。
construct { <http://example.org/Person1> ?p ?o . ?p rdfs:label ?l } 
where {
  <http://example.org/Person1> ?p ?o.
  ?p rdfs:label ?l.
}