问题标签 [graphdb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
209 浏览

rdf - 与使用 xsd:integer 作为 rdfs:range 冲突

我将整数范围的属性定义为

我的理解是它应该只接受整数作为对象,其他任何东西都应该被认为是不一致的并抛出错误。但是,当我在 GraphDb 中创建具有字符串作为对象的实例时,如下所示,两个条目都成功加载到数据库中(作为“asd”^^xsd:string),没有任何错误:

0 投票
1 回答
63 浏览

sparql - OWL 2 类定义必须非二进制提及 Self

我想说 aU. Penn Biobank consenterHomo sapiens具有 aconsenter role并参与 a 的 a informed consent process,至少对informed consent process

  • 它也有个人 U. Penn Biobank Organization作为参与者
  • 它有一个fully signed consent form作为指定的输出

我想我已经控制了所有这一切,但我正在努力解决这个问题:

  • consenter role在前面提到的informed consent process

这是我目前在 Protégéequivalent to盒子里的东西:

'Homo sapiens' and 'has role' some 'consenter role' and 'participates in' some ('informed consent process' and ((has_specified_output some 'fully signed informed consent form') and 'has participant' value 'U. Penn Biobank Organization'))

我怎么能说这consenter role是以informed consent process我已经彻底定义的方式实现的呢?

根据@StanislavKralin 的评论,我尝试Self在逻辑定义中添加对的引用,但 Protégé 对此也不满意。似乎没有Self什么比说关系的主语和谓语是同一个人更复杂的了,比如Narcissist定义Homo sapiens为谁

loves Self


编辑:我认为以下内容与我所希望的很接近。它说这个人在informed consent process.

'Homo sapiens’ and 'has role' some ( 'consenter role' and 'realized in' some ( 'informed consent process' and ( (has_specified_output some 'fully signed informed consent form') and 'has participant' value 'U. Penn Biobank Organization')))

随便地说,你可以说这个定义意味着这个人参与了这个过程,但我认为这不会不言自明。 我写了一些 SPARQL 查询来测试它,但回想起来,我想我一直在叫错树。

我实例UPBBC1化为一个类的实例,U. Penn Biobank consenter并在 Ontotext GraphDB 中运行这些查询,并使用 OWL 2 QL 推理。我想我也会尝试一些其他的推理水平。

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select * where { ?i a ?c . ?c rdfs:label "U. Penn Biobank Consenter" }

该实例被推断为一个Homo sapiens.

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select * where { ?i a ?c . ?c rdfs:label "Homo sapiens" }

但不被推断为参与过任何事情

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select * where { ?i <http://purl.obolibrary.org/obo/RO_0000056> ?proc }

表中无可用数据

0 投票
1 回答
108 浏览

graphdb - 导入文件失败

我有一个 RDF 文件,可以在另一个 RDF 存储(Stardog)中毫无问题地导入,但在 GraphDB 中一直失败并出现以下错误:

15:58:18.900 [import-task-3-thread-1] 错误 cofiMultipartFileImportRunnableTask - 无法在 org.java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) 处导入文件 java.lang.NullPointerException: null。 eclipse.rdf4j.common.lang.service.ServiceRegistry.get(ServiceRegistry.java:95) 在 org.eclipse.rdf4j.rio.Rio.createParser(Rio.java:100) 在 org.eclipse.rdf4j.rio.Rio。 createParser(Rio.java:118) at org.eclipse.rdf4j.repository.util.RDFLoader.loadInputStreamOrReader(RDFLoader.java:279) at org.eclipse.rdf4j.repository.util.RDFLoader.load(RDFLoader.java:197)在 org.eclipse.rdf4j.repository.base.AbstractRepositoryConnection.add(AbstractRepositoryConnection.java:329) 在 com.ontotext.trree.monitorRepository.MonitorRepositoryConnection.add(MonitorRepositoryConnection.java:159) 在 com.ontotext.trree。parallel.ParallelRDFLoader.add(ParallelRDFLoader.java:125) 在 com.ontotext.forest.impex.ParallelAwareImporter.lambda$add$3(ParallelAwareImporter.java:48) 在 com.ontotext.forest.impex.ParallelAwareImporter.wrapInBeginCommit(ParallelAwareImporter.java :66) 在 com.ontotext.forest.impex.MultipartFileImportRunnableTask.load(MultipartFileImportRunnableTask.java:38) 在 com.ontotext.forest.impex 的 com.ontotext.forest.impex.ParallelAwareImporter.add(ParallelAwareImporter.java:48)。 ImportRunnableTask.run(ImportRunnableTask.java:80) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util .concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:第617章)

这个文件可以在这里找到:http: //boetik-artistik.be/humidity_by_city.owls

所有引用的本体都可以从我的机器上解析。

谢谢或您的帮助。

亲切的问候,约翰,

0 投票
1 回答
965 浏览

graphdb - RDF4j 和 GraphDB 存储库连接

我对 rdf4j 有疑问:我想从我的 GraphDB 存储库“Feed”中删除所有feed:hashCode作为谓词的三元组。

第一个查询验证是否存在以url参数作为主语、feed:hashCode作为谓词且hash参数具有宾语的三元组,并且它有效。如果我的存储库中不存在此语句,则第二个查询开始,它应该删除所有feed:hashCode作为谓词和url作为主语的三元组,但它不起作用,有什么问题?

这是代码:

错误代码为:“Missing parameter: query”,服务器响应为:“400 Bad Request”

0 投票
1 回答
474 浏览

sparql - 在 GraphDb 中关闭 Sparql Query 的推理器

有什么方法可以在 GraphDb 中查询时关闭推理器。Graphdb Sparql 文本框中有 >> 符号来关闭推理器。我想知道我们是否可以关闭 Sparql 查询本身的推理器。如果是这样,是否推荐因为某些查询在没有推理器的情况下更容易实现?

0 投票
1 回答
322 浏览

mysql - 仅使用 Graph DB 存储用户活动数据是个好主意吗?

有很多问题和答案涵盖了类似的概念,但没有一个与我们的概念相近。

我们的应用程序建立在 Java(API)、AngularJs(前端)上,使用 MySql 作为数据库。到目前为止,还没有在我们的应用程序中存储用户活动的概念。

但是现在,我们必须捕获所有用户活动(这几乎包括所有内容)。其中一些活动是“用户已查看约会#”、“用户已更新事件信息”、“用户已激活/停用其他用户”等...

以下是我们需要考虑的事项:

  1. 最初我们的数据会少得多(可能每天有 10 万条记录)。
  2. 所有这些用户活动几乎都是写入繁重且读取部分非常非常少。
  3. 我们以这样一种方式设计了审计表(MySql),它们将保存跟踪用户的每一个活动所需的关键信息。

对以下几个方面感到困惑:

  1. 我们的一些同事和老板对 MySql 不满意,因为他们预计我们的应用程序会在受到关注时突然出现大量活动。
  2. 还有建议使用 Graph DB,我认为这绝对没有必要。因为按照设计,它是一个三重存储数据库,用于使用节点和边存储关系数据。

建议的小背景:有一个建议将整个应用程序数据从 MySql 迁移到 GraphDB 作为未来的实现(这将在我们开始迁移部分之前有一段时间,而且我们的员工都不熟悉 Graph DB 知识)。所以我们的老板坚持要我们从这个开始。

我的问题和我需要您的意见的问题是:

  1. 仅将 Graph DB 用于用户活动是个好主意吗?
  2. 如果我们要使用 Graph DB,哪个是最好的免费 G​​raph DB?
  3. 或者,我们是否可以为此目的使用 NoSQL DB,例如 mongoDB?
0 投票
1 回答
175 浏览

ontology - 默认本体加载到 Graphdb

我有兴趣找出默认情况下预加载到 Graphdb 中的本体是什么。这将帮助我确定我需要添加哪些本体(.ttl 文件)以及我的本体作为包的一部分,尤其是在没有 Internet 连接的情况下。

我知道一些本体,如 rdfs 和 owl 已预加载到 GraphDb 中。但我找不到任何关于预加载本体的列表。

0 投票
1 回答
59 浏览

graphdb - Graphdb从curl中的备份恢复

我正在编写一个脚本来自动设置从在 Docker 容器中运行的干净 GraphDB 开始的存储库。我有一个 config.ttl 文件,其中包含存储库配置、名称空间和文件 init.nq 中的转储我已经使用 config.ttf 和更新的名称空间成功创建了存储库,但我不明白如何加载 init.nq 文件。

从 Web 界面执行此操作非常简单:导入 -> RFD -> 上传,但我无法理解如何使用 Curl 执行它。我想正确的API应该是

但是转储太大了,无法将其作为简单文本(~44MB)传递。

0 投票
0 回答
179 浏览

sparql - 使用 [] 空白节点表示法时过滤未绑定?

我正在尝试从具有成分的药物本体中获取实体,使用限制如下

  • OBI_0000576'分散的分子聚集体'
  • BFO_0000053'是'的承载者
  • BFO_0000071'有颗粒部分'

但没有指定质量 ( PATO_0000125)。例如“对乙酰氨基酚/氢可酮口服片剂” http://purl.obolibrary.org/obo/DRON_00020585但不是“对乙酰氨基酚 230 毫克/氢可酮 5 毫克口服片剂” http://purl.obolibrary.org/ obo/DRON_00038671

我已经通过两个先前开发的查询将其实现为减号操作

我已经养成了将 owl 限制称为空白节点的习惯,而不是给它们变量

此查询运行缓慢(在具有 SSD 和 64 GB RAM 的服务器上运行 45 分钟)。我想将查询合并在一起并过滤掉指定质量的模式。我想我需要指定rdf:rest提及质量的交集,在可选的 {} 子句中使用变量,然后过滤该变量未绑定的情况。

我看不到如何在 [] 空白节点表示法中做到这一点?可能吗?

PREFIX obo: <http://purl.obolibrary.org/obo/> PREFIX owl: <http://www.w3.org/2002/07/owl#> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> select ?d ?dl where { { ?d rdfs:label ?dl ; rdfs:subClassOf [ owl:onProperty <http://www.obofoundry.org/ro/ro.owl#has_proper_part> ; owl:someValuesFrom [ owl:intersectionOf [ rdf:first obo:OBI_0000576 ; rdf:rest [ rdf:first [ owl:onProperty obo:BFO_0000053 ] ; rdf:rest [ rdf:first [ owl:onProperty obo:BFO_0000071 ; owl:someValuesFrom ?c ] ] ] ] ] ] . } minus { ?prod rdfs:label ?l ; rdfs:subClassOf [ owl:someValuesFrom [ owl:intersectionOf [ rdf:rest [ rdf:rest [ rdf:first [ owl:onProperty obo:BFO_0000053 ; owl:someValuesFrom [ owl:intersectionOf [ rdf:first <http://purl.obolibrary.org/obo/PATO_0000125> ] ] ] ] ] ] ] ] . ?d rdfs:subClassOf* ?prod ; rdfs:label ?dl . } }

0 投票
1 回答
178 浏览

owl - owl:functionalProperty & owl:differentFrom

对于我认为是一个非常简单的场景的一些帮助,我将不胜感激。但作为 OWL 和 GraphDB 的新手,我可能犯了一些基本错误。

我有一个非常简单的 Turtle 指定的 OWL 示例,如下所示:

本质上,我有一个名为 Gender 的类,并断言有 2 个不同的成员男性和女性。

然后我定义了另一个类 Person,它的功能属性 hasGender 的范围是 Gender。

最后,我断言了一个 Person 实例,以及两个单独的断言,即它既是男性又是女性。

现在据我了解,这有点矛盾。我已经断言 hasGender 属性是有效的,因此对于给定的 Person,应该只有一种性别。我还断言男性和女性是不同的,所以当我将它导入 GraphDB 时,我预计它会因此而失败。

但是 GraphDB 很乐意加载这两个断言。我错过了什么吗?