Todo List

Member SMWConcept::render (Parser &$parser)
The possible use of this in an HTML or Specal page context needs to be revisited. The code mentions it, but can this actually happen?

Member SMWConcept::render (Parser &$parser)
The escaping of symbols in concept queries needs to be revisited.

Member SMWDataValue::clearErrors ()
Check if we can remove this function again.

Member SMWDIError::doUnserialize ($serialization)
Be more careful with unserialization. It can create E_NOTICEs.

Member SMWDITime::__construct ($calendarmodel, $year, $month=false, $day=false, $hour=false, $minute=false, $second=false)
Implement more validation here.

Member SMWDIUri::__construct ($scheme, $hierpart, $query, $fragment)
Implement more validation here.

Member SMWDIUri::getURI ()
This should be changed to the spelling getUri().

Member SMWDIWikiPage::getTitle ()
From MW 1.17 on, makeTitleSafe supports interwiki prefixes. This function can be simplified when compatibility to MW 1.16 is dropped.

Class SMWExpLiteral
Currently no support for language tags.

Member SMWExportController::printPages ($pages, $recursion=1, $revisiondate=false)
Consider dropping the $revisiondate filtering and all associated functionality. Is anybody using this?

Member SMWExporter::makeExportDataForSubject (SMWDIWikiPage $diWikiPage, $typesvalueforproperty=null, $addStubData=false)
Take into account whether the wiki page belongs to a builtin property, and ensure URI alignment/type declaration in this case.

Member SMWExporter::getOWLPropertyType ($type= '')
An improved mechanism for selecting property types here is needed.

Member SMWHooks::onParserTestTables (array &$tables)
Hard-coding this thwarts the modularity/exchangability of the SMW storage backend. The actual list of required tables depends on the backend implementation and cannot really be fixed here.

Member SMWLanguage::findMonth ($label)
Should we add functionality to ignore case here?

Member SMWLanguage::findMonth ($label)
Should there be prefix string matching instead of two arrays for full and short names?

Class SMWNumberValue
Wiki-HTML-conversion for unit strings must be revisited, as the current solution might be unsafe.

Member SMWParseData::storeData ($parseroutput, Title $title, $makejobs=true)
FIXME: Some job generations here might create too many jobs at once on a large wiki. Use incremental jobs instead.

Member SMWPropertyValue::parseUserValue ($value)
Accept/enforce property namespace.

Member SMWQuery::setOffset ($offset)
The function should be extended to take into account whether or not we are in inline mode (not critical, since offsets are usually not applicable inline).

Member SMWQueryPage::recache ($limit, $ignoreErrors=true)
Implement caching for SMW query pages

Member SMWQueryUI::getSortingFormBox ()
This code is not used anywhere in SMW.

Member SMWQueryUI::processSortingFormBox (WebRequest $wgRequest)
build in validation for sorting

Member SMWQueryUIHelper::extractParameters ($p)
Combine this method with execute() or remove it altogether.

Member SMWQueryUIHelper::makeForInfoLink ($p, $enableValidation=false)
Handle validation for infolink parameters

Class SMWRecordValue
Enforce limitation of maximal number of values.

Class SMWRecordValue
Complete internationalisation.

Member SMWRecordValue::checkAllowedValues ()
Allowed values for multi-valued properties are not supported yet.

Member SMWRecordValue::setProperty (SMWDIProperty $property)
This is not a full reset yet (the case that property is changed after a value was set does not occur in the normal flow of things, hence this has low priority).

Member SMWRecordValue::getPropertyDataItems ()
I18N for error message.

Class SMWRSSItem
This code still needs cleanup, it's a mess.

Member SMWSparqlDatabase::ping ($endpointType=selfEP_TYPE_QUERY)
SPARQL endpoints sometimes return errors if no (valid) query is posted. The current implementation tries to catch this, but this might not be entirely correct. Especially, the SPARQL 1.1 HTTP error codes for Update are not defined yet (April 15 2011).

Member SMWSparqlStoreQueryEngine::getCountQueryResult (SMWQuery $query)
Implement error reporting for counting queries.

Member SMWSQLStore2::fetchSemanticData ($id, $object, $proptable, $issubject=true, $requestoptions=null)
Maybe share DB handler; asking for it seems to take quite some time and we do not want to change it in one call.

Member SMWSQLStore2::prepareValueQuery (&$from, &$where, $proptable, $value, $tableindex=1)
Maybe do something about redirects. The old code was $oid = $this->getSMWPageID($value->getDBkey(),$value->getNamespace(),$value->getInterwiki(),false);

Member SMWSQLStore2::getPropertiesSpecial ($requestoptions=null)
Properties that are stored in dedicated tables (SMWSQLStore2Table::fixedproperty) are currently ignored.

Member SMWSQLStore2::getPropertyTables ()
The concept table should make s_id a primary key; make this possible.

Member SMWSQLStore2QueryEngine::getInstanceQueryResult (SMWQuery $query, $rootid)
The SQL standard requires us to select all fields by which we sort, leading to wrong results regarding the given limit: the user expects limit to be applied to the number of distinct pages, but we can use DISTINCT only to whole rows. Thus, if rows contain sortfields, then pages with multiple values for that field are distinct and appear multiple times in the result. Filtering duplicates in post processing would still allow such duplicates to push aside wanted values, leading to less than "limit" results although there would have been "limit" really distinct results. For this reason, we select sortfields only for POSTGRES. MySQL is able to perform what we want here. It would be nice if we could eliminate the bug in POSTGRES as well.

Member SMWSQLStore2QueryEngine::compileQueries (SMWDescription $description)
The case of nominal classes (top-level SMWValueDescription) still makes some assumptions about the table structure, especially about the name of the joinfield (o_id). Better extend compileAttributeWhere to deal with this case.

Member SMWSQLStore2QueryEngine::compilePropertyCondition (SMWSQLStore2Query $query, SMWDIProperty $property, SMWDescription $valuedesc)
Check if hierarchy queries work as expected.

Member SMWSQLStore2QueryEngine::cleanUp ()
I might be better to keep the tables and possibly reuse them later on. Being temporary, the tables will vanish with the session anyway.

Class SMWSQLStoreLight
This implementation is not completed yet and should be considered experimental.

Member SMWSQLStoreLight::getProperties ($subject, $requestoptions=null)
Restrict this function to SMWWikiPageValue subjects.

Member SMWSQLStoreLight::getInProperties (SMWDataValue $value, $requestoptions=null)
When used for other datatypes, the function may return too many properties since it selects results by comparing the stored information (DB keys) only, while not currently comparing the type of the returned property to the type of the queried data. So values with the same DB keys can be confused. This is a minor issue now since no code is known to use this function in cases where this occurs.

Member SMWStringValue::getShortHTMLText ($linker=null)
Rather parse input to obtain properly formatted HTML.

Member SMWStringValue::getLongHTMLText ($linker=null)
Rather parse input to obtain properly formatted HTML.

Member SMWStringValue::getAbbValue ($linked, $value)
The method abbreviates very long strings for display by simply taking substrings. This is not in all cases a good idea, since it may break XML entities and mark-up.

Class SMWTimeValue
Theparsing process can encounter many kinds of well-defined problems but uses only one error message. More detailed reporting should be done.

Class SMWTimeValue
Try to reuse more of MediaWiki's records, e.g. to obtain month names or to format dates. The problem is that MW is based on SIO timestamps that don't extend to very ancient or future dates, and that MW uses PHP functions that are bound to UNIX time.

Member SMWTimeValue::parseDateString ($string, &$datecomponents, &$calendarmodel, &$era, &$hours, &$minutes, &$seconds, &$timeoffset)
This method in principle allows date parsing to be internationalized further. Should be done.

Member SMWTimeValue::getWikiValue ()
The preferred caption may not be suitable as a wiki value (i.e. not parsable).

Member SMWTimeValue::getCaptionFromDataitem (SMWDITime $dataitem)
Internationalize the CE and BCE strings.

File SMW_SpecialTypes.php
The messages 'smw_isnotype' and 'smw_typeunits', maybe 'smw_isaliastype', could be obsolete now.


Generated on Fri Feb 3 07:15:38 2012 for Semantic MediaWiki by  doxygen 1.5.6