Re: [SMW-devel] Anybody knows how to get all triples of a page in aprogram?
Jie Bao пишет: Thanks Anja. I have a slightly different coding based yours that works: // return an array of arraies of predicate-value pairs of the page function getTriple($title) { $page = SMWDataValueFactory::newTypeIDValue( '_wpg', $title-getFullText()); $semdata = smwfGetStore()-getSemanticData($page-getTitle() ); // build the semantic data if ($semdata == null) { return null; } $s = $title-getFullText(); $arr = array(); foreach($semdata-getProperties() as $key = $property){ $p = $property-getShortText(false,NULL); $p2 = $property-getPropertyID(); if (!$arr[$p]) $arr[$p] = array(); // http://semantic-mediawiki.org/doc/SMW__SQLStore2_8php-source.html if ($p2 == '_MDAT') continue; //time stamp else if ($p2 == '_INST') $p = 'rdf:type'; else if ($p2 == '_SUBC') $p = 'rdfs:subClassOf'; else if ($p2 == '_SUBP') $p = 'rdfs:subPropertyOf'; else if ($p2 == '_REDI') $p = 'owl:sameAs'; else if ($p2 == '_TYPE') $p = 'has_type'; else { $p = str_replace('Property:','',$p); } $p[0] = strtoupper($p[0]); $propvalues = $semdata-getPropertyValues($property); foreach ($propvalues as $propvalue) { $o=$propvalue-getShortText(false); $arr[$p][] =$o; } } return $arr; } Aren't strtoupper should be replaced with mb_strtoupper? Lots of else if probably would look better as switch case, though the later is a matter of personal taste. Dmitriy -- ___ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
Re: [SMW-devel] Anybody knows how to get all triples of a page in aprogram?
Thanks Anja. I have a slightly different coding based yours that works: // return an array of arraies of predicate-value pairs of the page function getTriple($title) { $page = SMWDataValueFactory::newTypeIDValue( '_wpg', $title-getFullText()); $semdata = smwfGetStore()-getSemanticData($page-getTitle() ); // build the semantic data if ($semdata == null) { return null; } $s = $title-getFullText(); $arr = array(); foreach($semdata-getProperties() as $key = $property){ $p = $property-getShortText(false,NULL); $p2 = $property-getPropertyID(); if (!$arr[$p]) $arr[$p] = array(); // http://semantic-mediawiki.org/doc/SMW__SQLStore2_8php-source.html if ($p2 == '_MDAT') continue; //time stamp else if ($p2 == '_INST') $p = 'rdf:type'; else if ($p2 == '_SUBC') $p = 'rdfs:subClassOf'; else if ($p2 == '_SUBP') $p = 'rdfs:subPropertyOf'; else if ($p2 == '_REDI') $p = 'owl:sameAs'; else if ($p2 == '_TYPE') $p = 'has_type'; else { $p = str_replace('Property:','',$p); } $p[0] = strtoupper($p[0]); $propvalues = $semdata-getPropertyValues($property); foreach ($propvalues as $propvalue) { $o=$propvalue-getShortText(false); $arr[$p][] =$o; } } return $arr; } On Wed, Jul 8, 2009 at 4:09 AM, Friederichs, Anja anja.friederi...@detecon.com wrote: Hi Jie, in my extension I have a function readproperties. Maybe this can help? Anja public function readProperties( $namespace, $pagename ) { if($pagename == '') { return 'No configpage available'; } else { $page = SMWDataValueFactory::newTypeIDValue( '_wpg', $namespace . ':' . $pagename ); $data = smwfGetStore()-getSemanticData($page-getTitle()); $properties = $data-getProperties(); $proparray = array(); foreach ($properties as $property) { $propname = array(); $propname = explode(':', $property-getlongHTMLText()); $propnametext = $propname[1]; $propvalue = array(); $propvalue = $data-getPropertyValues($property); $propvaluetext = $propvalue[0]-getLongHTMLText(); $proparray[$propnametext] = $propvaluetext; } } return $proparray; } -Ursprüngliche Nachricht- Von: Jie Bao [mailto:bao...@cs.rpi.edu] Gesendet: Mittwoch, 8. Juli 2009 04:33 An: semediawiki-devel; Semantic MediaWiki users Betreff: [SMW-devel] Anybody knows how to get all triples of a page in aprogram? I need to get all triples about a page in a php program. Anybody knows how? Thanks jie -- Jie Bao http://www.cs.rpi.edu/~baojie --- --- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge ___ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel -- Jie Bao http://www.cs.rpi.edu/~baojie -- ___ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
Re: [SMW-devel] Anybody knows how to get all triples of a page in aprogram?
Hi Jie, in my extension I have a function readproperties. Maybe this can help? Anja public function readProperties( $namespace, $pagename ) { if($pagename == '') { return 'No configpage available'; } else { $page = SMWDataValueFactory::newTypeIDValue( '_wpg', $namespace . ':' . $pagename ); $data = smwfGetStore()-getSemanticData($page-getTitle()); $properties = $data-getProperties(); $proparray = array(); foreach ($properties as $property) { $propname = array(); $propname = explode(':', $property-getlongHTMLText()); $propnametext = $propname[1]; $propvalue = array(); $propvalue = $data-getPropertyValues($property); $propvaluetext = $propvalue[0]-getLongHTMLText(); $proparray[$propnametext] = $propvaluetext; } } return $proparray; } -Ursprüngliche Nachricht- Von: Jie Bao [mailto:bao...@cs.rpi.edu] Gesendet: Mittwoch, 8. Juli 2009 04:33 An: semediawiki-devel; Semantic MediaWiki users Betreff: [SMW-devel] Anybody knows how to get all triples of a page in aprogram? I need to get all triples about a page in a php program. Anybody knows how? Thanks jie -- Jie Bao http://www.cs.rpi.edu/~baojie --- --- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge ___ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel -- Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge ___ Semediawiki-devel mailing list Semediawiki-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/semediawiki-devel