如何在Apache(而不是Tomcat)服务器上执行基于Java的OWL推理器?

如何在Apache(而不是Tomcat)服务器上执行基于Java的OWL推理器?,java,php,apache,owl,Java,Php,Apache,Owl,我有一个PHP web应用程序,它应该在OWL(本体web语言)文档上执行推理。我知道有两个reasoner,都是用Java编写的,但是我有一个标准的Apache服务器供我使用,所以我可以输入PHP,而不是JSP 有没有一种方法可以在服务器上执行Java代码,比如:PHP脚本将数据发送到Java代码(推理器),然后Java代码执行推理并将数据返回给PHP脚本?有没有一种方法可以让一个Java程序以某种方式包装在服务器上的某个东西中,或者其他什么东西 Thanx, Martin您首先需要能够在您的

我有一个PHP web应用程序,它应该在OWL(本体web语言)文档上执行推理。我知道有两个reasoner,都是用Java编写的,但是我有一个标准的Apache服务器供我使用,所以我可以输入PHP,而不是JSP

有没有一种方法可以在服务器上执行Java代码,比如:PHP脚本将数据发送到Java代码(推理器),然后Java代码执行推理并将数据返回给PHP脚本?有没有一种方法可以让一个Java程序以某种方式包装在服务器上的某个东西中,或者其他什么东西

Thanx,
Martin

您首先需要能够在您的机器上运行一些Java代码,并且必须在服务器上安装JVM

然后您可以看到以下答案:。这将使您了解如何从PHP调用Java程序


如果您不太依赖推理,另一种黑客方法是使用Protege打开本体,对其进行分类,然后将其保存。因此,您不必在服务器端使用任何Java,只需使用本体中的数据。

您首先需要能够在计算机上运行一些Java代码,并且必须在服务器上安装JVM

然后您可以看到以下答案:。这将使您了解如何从PHP调用Java程序


如果您不太依赖推理,另一种黑客方法是使用Protege打开本体,对其进行分类,然后将其保存。因此,您不必在服务器端使用任何Java,只需使用本体中存在的数据。

我认为在您的情况下,一个好方法是通过SPARQL端点公开reasoner,并根据SPARQL协议用PHP编写应用程序

从PHP调用Java听起来像是一种黑客行为,而且似乎很脆弱。如果您的应用程序基于SPARQL协议,那么只需要HTTP、JSON和XMLlibs就可以了,您不需要任何严格特定于RDF或OWL的东西。可以大大简化您的实现

此外,如果您使用SPARQL协议,它会将您与正在使用的任何推理机/数据库的具体实现细节隔离开来。您可以切换到一个新的reasoner,只要它作为SPARQL端点公开,就不需要更改webapp中的代码


所有这些都不能避免您必须在机器上运行reasoner,而且很可能您需要一个servlet容器,尽管有些选项可以独立运行。

我认为在您的情况下,一个好的方法是通过SPARQL端点公开reasoner,并根据SPARQL协议用PHP编写应用程序

从PHP调用Java听起来像是一种黑客行为,而且似乎很脆弱。如果您的应用程序基于SPARQL协议,那么只需要HTTP、JSON和XMLlibs就可以了,您不需要任何严格特定于RDF或OWL的东西。可以大大简化您的实现

此外,如果您使用SPARQL协议,它会将您与正在使用的任何推理机/数据库的具体实现细节隔离开来。您可以切换到一个新的reasoner,只要它作为SPARQL端点公开,就不需要更改webapp中的代码


所有这些都不能避免您必须在机器上运行reasoner,而且很可能您需要一个servlet容器,尽管有些选项可以独立运行。

Thanx!服务器上的JRE意味着需要与技术支持进行大量协商,但这一部分可能是可能的——我将从您建议的答案中查找解决方案。我需要什么?我让用户与语义交互。用户可以在两个实体之间添加一个新的关系(我说的很笼统,但你会明白的)。然后,当用户添加新的OWL语句时,其中会出现一些隐式数据。。。因此,我需要在每个用户的交互(或者更好地说是对语义的贡献)之后调用reasoner。就像在线学习环境中的维基本体。答案是Thanx!服务器上的JRE意味着需要与技术支持进行大量协商,但这一部分可能是可能的——我将从您建议的答案中查找解决方案。我需要什么?我让用户与语义交互。用户可以在两个实体之间添加一个新的关系(我说的很笼统,但你会明白的)。然后,当用户添加新的OWL语句时,其中会出现一些隐式数据。。。因此,我需要在每个用户的交互(或者更好地说是对语义的贡献)之后调用reasoner。就像e-learning context.Thanx中的wiki本体。这听起来是个不错的策略。。。然后,我可能可以将我的web应用程序连接到一个托管在物理上不同的服务器上的推理机—一个提供Java web内容的主机。而且我是理性透明的。这听起来是个不错的策略。。。然后,我可能可以将我的web应用程序连接到一个托管在物理上不同的服务器上的推理机—一个提供Java web内容的主机。而且我是一个理性透明的人。