本文整理汇总了PHP中MemModel类的典型用法代码示例。如果您正苦于以下问题:PHP MemModel类的具体用法?PHP MemModel怎么用?PHP MemModel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MemModel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: generateModelFromString
/**
* This method takes a json encoded rdf-model and a reference to aa (usually empty) MemModel, parses the json
* string and adds the statements to the given MemModel.
*
* @param string $jsonString The string that contains the rdf model, encoded as a json-string.
* @param MemModel $model A reference to the model, where to add the statements, usually an empty MemModel.
*/
public function generateModelFromString($jsonString, $model)
{
$jsonModel = array();
$jsonModel = json_decode($jsonString, true);
// throws an excpetion if json model was corrupt
if (!is_array($jsonModel)) {
throw new Exception('error in json string');
}
foreach ($jsonModel as $subject => $remain) {
foreach ($remain as $predicate => $object) {
$s = strpos($subject, '_') === 0 ? new BlankNode(substr($subject, 2)) : new Resource($subject);
$p = new Resource($predicate);
foreach ($object as $obj) {
if ($obj['type'] === 'uri') {
$o = new Resource($obj['value']);
} else {
if ($obj['type'] === 'bnode') {
$o = new BlankNode(substr($obj['value'], 2));
} else {
$dtype = isset($obj['datatype']) ? $obj['datatype'] : '';
$lang = isset($obj['lang']) ? $obj['lang'] : '';
$oVal = $obj['value'];
$o = new Literal($oVal, $lang);
$o->setDatatype($dtype);
}
}
$model->add(new Statement($s, $p, $o));
}
}
}
}
示例2: _doFindFromFile
function _doFindFromFile($file, &$model)
{
$nullVarURIs = array('var:x', 'var:y', 'var:z');
$mod = new MemModel();
$mod->load($file);
$return = new MemModel();
foreach ($mod->triples as $statement) {
if (in_array($statement->getLabelSubject(), $nullVarURIs)) {
$findS = null;
} else {
$findS = $statement->getSubject();
}
if (in_array($statement->getLabelPredicate(), $nullVarURIs)) {
$findP = null;
} else {
$findP = $statement->getPredicate();
}
if (in_array($statement->getLabelObject(), $nullVarURIs)) {
$findO = null;
} else {
$findO = $statement->getObject();
}
$return->addModel($model->find($findS, $findP, $findO));
}
return $return;
}
示例3: testSerialize
function testSerialize()
{
$ser = new JsonSerializer();
$jsonString = $ser->serialize($this->model);
$memModel = new MemModel();
$memModel->loadFromString($jsonString, 'json');
$this->assertTrue($this->model->equals($memModel));
}
示例4: _generateModel
function _generateModel($num, $ind)
{
$model = new MemModel();
$model->index($ind);
for ($i = 0; $i < $num; $i++) {
$subs[$i] = new Resource('http://www.example.org/sub' . $i % 3);
$preds[$i] = new Resource('http://www.example.org/pred' . $i % 5);
$objs[$i] = new Resource('http://www.example.org/obj' . $i % 9);
$stat = new Statement($subs[$i], $preds[$i], $objs[$i]);
$model->add($stat);
}
return $model;
}
示例5: testGenerateModelFromString
function testGenerateModelFromString()
{
$parser = new JsonParser();
$model = new MemModel('http://example.com/');
try {
$parser->generateModelFromString($this->modelString, $model);
} catch (Exception $e) {
$this->fail($e->getMessage());
}
#echo "<pre>";
#print_r($model);
global $short_datatype;
$model2 = new MemModel('http://example.com/');
// Ceate new statements and add them to the model
$statement1 = new Statement(new Resource('http://example.org/about'), new Resource('http://purl.org/dc/elements/1.1/creator'), new Literal('Anna Wilder'));
$statement2 = new Statement(new Resource('http://example.org/about'), new Resource("http://purl.org/dc/elements/1.1/title"), new Literal('Annas Homepage', 'en'));
$statement3 = new Statement(new Resource('http://example.org/about'), new Resource('http://xmlns.com/foaf/0.1/maker'), new BlankNode('person'));
$statement4 = new Statement(new BlankNode('person'), new Resource("http://xmlns.com/foaf/0.1/homepage"), new Resource('http://example.org/about'));
$statement5 = new Statement(new Resource('http://example.org/about'), new Resource("http://purl.org/dc/elements/1.1/title2"), new Literal('Anns HP', 'en', $short_datatype['STRING']));
$statement6 = new Statement(new Resource('http://example.org/about'), new Resource("http://purl.org/dc/elements/1.1/title2"), new Literal('Anns HP', 'en', $short_datatype['INTEGER']));
$statement7 = new Statement(new BlankNode('person'), new Resource("http://example.com/testProp1"), new Literal("\"double quote\nnewline\ttab\rcarriage return\\reverse solidus"));
$model2->add($statement1);
$model2->add($statement2);
$model2->add($statement3);
$model2->add($statement4);
$model2->add($statement5);
$model2->add($statement7);
$this->assertTrue($model->containsAll($model2));
$model2->remove($statement5);
$model2->add($statement6);
$this->assertFalse($model->containsAll($model2));
#echo "<pre>";
#print_r($model2);
#echo "</pre>";
}
示例6: testRdfParser
function testRdfParser()
{
$_SESSION['test'] = 'Rdf- Parser Empty Resource test';
$mod1 = new MemModel();
$mod2 = new MemModel();
$mod1->load('emptyResource.rdf');
$mod2->load('emptyResource_serialized.rdf');
if ($mod1->equals($mod2)) {
$pass = true;
} else {
$pass = false;
}
$this->assertTrue($pass);
}
示例7: testIsEquals
function testIsEquals()
{
foreach ($_SESSION['rdf_positive_tests'] as $key => $value) {
$model1 = new MemModel();
$model2 = new MemModel();
$file = $value;
$_SESSION['test'] =& $value;
$_SESSION['key'] =& $key;
$model1->load(TESTCASES_DIR . $file . ".rdf");
$_SESSION['mod1'] = $model1;
$model2->load(TESTCASES_DIR . $file . ".nt");
$_SESSION['mod2'] = $model2;
$this->assertTrue($model1->equals($model2));
}
}
示例8: loadNamespaces
/**
* loads namespaces from file or rewrites from configuration model
*/
function loadNamespaces($url)
{
if ($url) {
$nmsp_m = new MemModel();
$nmsp_m->load($url);
$this->ns = $nmsp_m->getParsedNamespaces();
if (!$this->ns) {
trigger_error("The file:" . $url . "does not contain any namespace declarations." . "The prefixes from the configuration model will be used instead");
}
} else {
$nmsp = $this->m->getParsedNamespaces();
if ($nmsp) {
$this->ns = RAPpubbyURIrewriter::rewrNamespaces($nmsp);
}
}
}
示例9: testOverwritingDefaultParser
/**
* parser overwrites the prefixes defined in the default_prefixes array
*/
function testOverwritingDefaultParser()
{
$_SESSION['test'] = 'Overwriting default parser test';
$string = "<?xml version='1.0'?>\n \t\t\t\t<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'\n \t\t\txmlns:exterms='http://www.example.org/terms/'>\n\t\t\t\t\t<rdf:Description rdf:about='http://www.example.org/index.html'>\n\t\t\t\t\t\t<exterms:creation-date>August 16, 1999</exterms:creation-date>\n\t\t\t\t\t</rdf:Description>\n\t\t\t\t</rdf:RDF>";
// delete default prefixes
global $default_prefixes;
$backup = $default_prefixes;
foreach ($default_prefixes as $name => $pref) {
unset($default_prefixes[$name]);
}
$default_prefixes = array('foo' => RDF_NAMESPACE_URI);
$model = new MemModel();
$model->load($string);
$nmsp = $model->getParsedNamespaces();
$this->assertEqual($nmsp[RDF_NAMESPACE_URI], 'rdf');
$default_prefixes = $backup;
}
示例10: testRdfSerializer
function testRdfSerializer()
{
$_SESSION['test'] = 'Rdf- Parser Empty Resource test';
$mod1 = new MemModel();
$mod2 = new MemModel();
$mod3 = new MemModel();
$mod1->load('multipleTypes.rdf');
$mod1->saveAs('mt1.rdf', 'rdf');
$mod3->load('mt1.rdf');
$mod2->load('multipleTypes.rdf');
$_SESSION['mod1'] = $mod3;
$_SESSIOn['mod2'] = $mod2;
if ($mod3->equals($mod2)) {
$pass = true;
} else {
$pass = false;
}
$this->assertTrue($pass);
}
示例11: _generateModel
/**
* generates a test model containing given number of statements
* and given indextype.
*
* @return Object MemModel $model
* @param int $num
* @param int $des
* @param int $ind
* @param Object MemModel $needle
*/
function _generateModel($num, $des, $ind, $needle)
{
$model = new MemModel();
// generate Subjects
for ($i = 0; $i < $num; $i++) {
$subs[$i] = new Resource('http://www.example.org/Subject' . $i % 6);
}
// generate Predicates
for ($i = 0; $i < $num; $i++) {
$preds[$i] = new Resource('http://www.example.org/Predicate' . $i % 7);
}
// generate Objects
for ($i = 0; $i < $num; $i++) {
$objs[$i] = new Resource('http://www.example.org/Object' . $i % 5);
}
for ($i = 0; $i < $num; $i++) {
$model->add(new Statement($subs[$i], $preds[$i], $objs[$i]));
}
$model->index($ind);
return $model;
}
示例12: spoQuery
/**
* SPO (also known as "Triples" or "find(spo)") is an experimental minimal query language.
* An SPO query is a single triple pattern, with optional subject (parameter "s"), predicate (parameter "p"),
* and object (parameter "o", if a URIref, parameter "v" for a string literal).
* Absence of a parameter implies "any" for matching that slot of the triple pattern.
*
* @version $Id: spo.php 268 2006-05-15 05:28:09Z tgauss $
* @author Chris Bizer <chris@bizer.de>
* @author Phil Dawes <pdawes@users.sf.net>
*
* @package netapi
* @todo Support typed literals.
* @access public
*/
function spoQuery($model, $serializer, $remove = false, $modelId = false)
{
// Get SPO query from HTTP request
if (isset($_REQUEST['s'])) {
$subject = new Resource($_REQUEST['s']);
} else {
$subject = NULL;
}
if (isset($_REQUEST['p'])) {
$predicate = new Resource($_REQUEST['p']);
} else {
$predicate = NULL;
}
if (isset($_REQUEST['o'])) {
$object = new Resource($_REQUEST['o']);
} else {
if (isset($_REQUEST['v'])) {
$object = new Literal($_REQUEST['v']);
} else {
$object = NULL;
}
}
if (isset($_REQUEST['closure'])) {
if (strtoupper($_REQUEST['closure']) == "TRUE") {
$closure = True;
} else {
$closure = False;
}
} else {
$closure = False;
}
$outm = new MemModel();
$resultmodel = $model->find($subject, $predicate, $object);
$it = $resultmodel->getStatementIterator();
while ($it->hasNext()) {
$stmt = $it->next();
if ($remove) {
$model->remove($stmt);
} else {
$outm->add(new Statement($stmt->subject(), $stmt->predicate(), $stmt->object()));
if (is_a($stmt->object(), 'BlankNode') && $closure == True) {
getBNodeClosure($stmt->object(), $model, $outm);
}
if (is_a($stmt->subject(), 'BlankNode') && $closure == True) {
getBNodeClosure($stmt->subject(), $model, $outm);
}
}
}
if ($remove) {
if (substr($modelId, 0, 5) == "file:") {
$model->saveAs(substr($modelId, 5));
}
if ($resultmodel->size() > 0) {
header('200 - OK');
echo "200 - OK";
} else {
echo "No matching statements";
}
} else {
echo $serializer->Serialize($outm);
}
$outm->close();
}
示例13: _generateRDF
function _generateRDF()
{
$model = new MemModel();
$model->setBaseURI($this->doclink);
$proc = new xsltprocessor();
include_once RDFAPI_INCLUDE_DIR . PACKAGE_SYNTAX_RDF;
$pars = new RdfParser();
foreach ($this->stylelink as $key => $value) {
$xsl = new DomDocument();
$xsl->load($value);
$proc->importStyleSheet($xsl);
$model->addModel($pars->generateModel($proc->transformToXML($this->domdoc), $this->doclink));
}
return $model;
}
示例14: define
<?php
// Include RAP
define("RDFAPI_INCLUDE_DIR", "./../api/");
include RDFAPI_INCLUDE_DIR . "RdfAPI.php";
## 1. Connect to MsAccess database (via ODBC)
## ------------------------------------------
// Connect to MsAccess (rdf_db DSN) database using connection settings
// defined in constants.php :
$rdf_database = new DbStore();
## 2. Store a memory model in database.
## ------------------------------------
// Load an RDF-Documtent into a memory model
// Filename of an RDF document
$base = "example1.rdf";
// Create a new memory model
$memModel = new MemModel();
// Load and parse document
$memModel->load($base);
// Now store the model in database
// An unique modelURI will be generated
$rdf_database->putModel($memModel);
// You can also provide an URI for the model to be stored
$modelURI = "example1.rdf";
// But then you must check if there already is a model with the same modelURI
// otherwise the method putModel() will return FALSE
if ($rdf_database->modelExists($modelURI)) {
echo "Model with the same URI: '{$modelURI}' already exists";
} else {
$rdf_database->putModel($memModel, $modelURI);
}
## 3. Create a new database model
示例15: addBookToModel
private function addBookToModel(SimpleXMLElement $item, MemModel $model)
{
$itemresource = new Resource($this->uri);
// rdf:type
$model->add(new Statement($itemresource, new Resource(RDF_NAMESPACE_URI . RDF_TYPE), new Resource("http://sites.wiwiss.fu-berlin.de/suhl/bizer/bookmashup/simpleCommerceVocab01.rdf#Book")));
// homepage (link to details page @ amazon)
//$model->add(new Statement($itemresource ,new Resource("http://xmlns.com/foaf/0.1/homepage"),new Resource($item->DetailPageURL)));
// label
$model->add(new Statement($itemresource, new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal((string) $item->ItemAttributes->Title)));
// date
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/date"), new Literal((string) $item->ItemAttributes->PublicationDate)));
// title
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/title"), new Literal((string) $item->ItemAttributes->Title)));
//large image
$model->add(new Statement($itemresource, new Resource("http://xmlns.com/foaf/0.1/depiction"), new Resource((string) $item->LargeImage->URL)));
// thumbnail
$model->add(new Statement($itemresource, new Resource("http://xmlns.com/foaf/0.1/thumbnail"), new Resource((string) $item->SmallImage->URL)));
// isbn
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/identifier"), new Resource("urn:ISBN:" . $item->ItemAttributes->ISBN)));
// publisher
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/publisher"), new Literal((string) $item->ItemAttributes->Label)));
// format
if (isset($item->ItemAttributes->format)) {
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/format"), new Literal((string) $item->ItemAttributes->format)));
}
if (isset($item->ItemAttributes->Binding)) {
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/format"), new Literal((string) $item->ItemAttributes->Binding)));
}
// reviews
$i = 1;
foreach ($item->EditorialReviews->EditorialReview as $index => $review) {
$newuri = str_replace("/books/", "/reviews/", $this->uri);
$pos = strrpos($newuri, "/");
$review = new Resource($newuri . "_" . $index . $i);
$model->add(new Statement($itemresource, new Resource("http://dannyayers.com/xmlns/rev/#hasReview"), $review));
$model->add(new Statement($review, new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal("Review number " . $i . " about: " . $item->ItemAttributes->Title)));
$i++;
}
// author
$newuri = str_replace("/books/", "/persons/", $this->uri);
$pos = strrpos($newuri, "/");
if (isset($item->ItemAttributes->Author)) {
foreach ($item->ItemAttributes->Author as $k => $author) {
$authorUri = new Resource(substr($newuri, 0, $pos + 1) . urlencode($author));
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/creator"), $authorUri));
$model->add(new Statement($authorUri, new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal((string) $author)));
}
}
// subject(s)
$newuri = str_replace("/books/", "/subject/", $this->uri);
$skosSubject = new Resource("http://www.w3.org/2004/02/skos/core#subject");
$pos = strrpos($newuri, "/");
if (isset($item->Subjects)) {
foreach ($item->Subjects as $k => $subjects) {
foreach ($subjects as $kk => $subject) {
$subjectUri = new Resource(substr($newuri, 0, $pos + 1) . urlencode($subject));
$model->add(new Statement($itemresource, $skosSubject, $subjectUri));
$model->add(new Statement($subjectUri, new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal((string) $subject)));
}
}
}
if (isset($item->ItemAttributes->Creator)) {
foreach ($item->ItemAttributes->Creator as $key => $creator) {
$creatorUri = new Resource(substr($newuri, 0, $pos + 1) . urlencode($creator));
$model->add(new Statement($itemresource, new Resource("http://purl.org/dc/elements/1.1/creator"), $creatorUri));
$model->add(new Statement($creatorUri, new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal((string) $creator)));
}
}
// amazon offer
$newuri = str_replace("/books/", "/offers/", $this->uri);
$pos = strrpos($newuri, "/");
$offer = new Resource($newuri . "amazonOffer");
$model->add(new Statement($itemresource, new Resource("http://sites.wiwiss.fu-berlin.de/suhl/bizer/bookmashup/simpleCommerceVocab01.rdf#hasOffer"), $offer));
$model->add(new Statement($offer, new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal("Offer for the book with the ISBN: " . $item->ItemAttributes->ISBN)));
// create OFFER from google
$this->addGoogleOffersToModel($model, $this->uri);
//
$model->add(new Statement(new Resource($this->document), new Resource("http://www.w3.org/2000/01/rdf-schema#label"), new Literal("RDF document about the book: " . $item->ItemAttributes->Title)));
}