0

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

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

谢谢,马丁

4

2 回答 2

2

我认为在您的情况下一个好的方法是通过 SPARQL 端点公开推理器,并针对 SPARQL 协议用 PHP 编写您的应用程序。

从 PHP 调用 Java 听起来像是 hack,而且看起来很脆弱。如果您的应用程序基于 SPARQL 协议,您可以只使用 HTTP、JSON 和 XML 库,您不需要任何严格的 RDF 或 OWL 特定的东西。可以大大简化您的实现。

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

这些都不能真正解决你必须在机器上运行推理器的问题,而且很可能你需要一个 servlet 容器,尽管有些选项可以独立运行。

于 2013-04-30T14:31:43.003 回答
1

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

然后您可以查看以下答案:从 PHP 调用 java 代码。这应该让您了解如何从 PHP 调用 Java 程序。

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

于 2013-04-30T08:28:51.877 回答