2

我正在使用提供的配置文件启动一个 fuseki 服务器(见下文)。我想做的是在创建服务后检索服务的功能。原因是,可能有多个这样的 SPARQL 服务(可通过网络获得,但我不知道功能),我想根据它们的功能选择一些(例如,具有更新功能的服务)。有没有办法以编程方式找到(即服务能力)?对此的任何建议将不胜感激。

配置文件

@prefix :        <#> .
@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .

[] rdf:type fuseki:Server ;
   fuseki:services (
     <#animal_service_pellet>
   ) .

# TDB
[] ja:loadClass "com.hp.hpl.jena.tdb.TDB" .
tdb:DatasetTDB  rdfs:subClassOf  ja:RDFDataset .
tdb:GraphTDB    rdfs:subClassOf  ja:Model .

<#animal_service_pellet> rdf:type fuseki:Service ;
    rdfs:label                          "TDB Service (RW)" ;
    fuseki:name                         "animals/pellet" ;
    fuseki:serviceQuery                 "query" ;
    fuseki:serviceQuery                 "sparql" ;
    fuseki:serviceUpdate                "update" ;
    fuseki:serviceUpload                "upload" ;
    fuseki:serviceReadWriteGraphStore   "data" ;
    fuseki:serviceReadGraphStore        "get" ;
    fuseki:dataset                      <#inferred_pellet> ;
    .

<#inferred_pellet>
  a ja:RDFDataset;
    ja:defaultGraph [
                      a ja:InfModel;
                      ja:reasoner [
                                    ja:reasonerClass "org.mindswap.pellet.jena.PelletReasonerFactory";
                                  ];
                      ja:baseModel <#data_and_ontology_graph>
                    ];
  .


<#data_and_ontology_graph>
  a tdb:GraphTDB ;
  tdb:location "TDB_LOC" ;
  .
4

1 回答 1

1

Jena 用户邮件列表中也提出了同样的问题。

http://mail-archives.apache.org/mod_mbox/jena-users/201206.mbox/%3C4FC884AE.5020409%40apache.org%3E

试试 DatasetRegistry - 有一个全局的,通过它的 get() 静态访问。

org.apache.jena.fuseki.server.DatasetRegistry

另一种方法是将配置文件作为 RDF 读取并查看。

配置解析器在 FusekiConfig

将来,将支持 SPARQL 服务描述 [1]。欢迎投稿。

[1] http://www.w3.org/TR/sparql11-service-description/

于 2012-06-01T12:42:38.717 回答