您要访问的数据以主题属性(也称为谓词)对象( SPO )格式存储。这意味着您有一个主题和一个与属性相关联的对象,例如。<Albert_Einstein> <wasBornIn> <Germany>
通常,您可以使用 SPARQL 通过端点访问这些 SPO 数据库。SPARQL 是一种类似于 SQL 的语言,它允许您制定查询来访问数据。幸运的是,Wikidata 也有一个可以使用的 sparql 端点:https ://query.wikidata.org/
这是一个简单的示例,它将使用 rdf-schema 标签将所有引用的主题加载到字符串“泰坦尼克号”,并将结果限制为 100 个条目。
select distinct ?a where {?a <http://www.w3.org/2000/01/rdf-schema#label> "Titanic"@en } LIMIT 100
要在 Java 中查询 Wikidata,您可以使用Jena,这将允许您使用 SPARQL 查询和端点来访问数据。
据我所知,您还可以使用 http 访问 Wikidata,但使用 SPARQL 有一些好处。我知道还有另外两个可以使用的大型数据库,它们都有一个 SPARQL 端点。因此,更改端点以访问其他两个数据库非常容易。一个数据库也可能包含对另一个数据库的引用,您可以按照该引用来收集更多数据。
由于您还要求提供替代方案,因此我提到的两个数据库是
DBpedia ( SPARQL-Endpoint ) 和Yago ( SPARQL-endpoint )。两者都使用维基百科来提取事实,因此它们非常庞大。Yago 还使用 WordNet 构建了一个很好的分类法,您可以使用它来对数据进行分类。另一方面,DBpedia 有很多对您可以使用的其他站点的引用。