Todo List

Member AskParserFunction::parse (array $rawParams)
$rawParams should be of IParameterFormatter QueryParameterFormatter class

Class ExpLiteral
Currently no support for language tags.

Member GenericHttpRepositoryConnector::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 ListResultPrinter::getRowListContent (array $row)

The inner lists of values per field should use different separators.

Some spaces are hard-coded here; should probably be part of separators.

Member QueryEngine::getInstanceQueryResult (Query $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 QueryPage::recache ($limit, $ignoreErrors=true)
Implement caching for SMW query pages

Member QuerySegmentListProcessor::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.

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 SMWExportController::printPages ($pages, $recursion=1, $revisiondate=false)
Consider dropping the $revisiondate filtering and all associated functionality. Is anybody using this?

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

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

Member SMWLanguage::findMonth ($label)

Should we add functionality to ignore case here?

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 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).

Class SMWRecordValue

Enforce limitation of maximal number of values.

Enforce uniqueness of properties in declaration.

Complete internationalisation.

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

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

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 SMWSql3SmwIds::getPropertyInterwiki (SMWDIProperty $property)
This documentation is out of date. Right now, the special interwiki is used only for special properties without a label, i.e., which cannot be shown to a user. This allows us to filter such cases from all queries that retrieve lists of properties. It should be checked that this is really the only use that this has throughout the code.

Member SMWSql3SmwIds::moveSubobjects ($oldtitle, $oldnamespace, $newtitle, $newnamespace)
This method is neither efficient nor very convincing architecturally; it should be redesigned.

Member SMWSQLStore3Readers::fetchSemanticData ($id, SMWDataItem $object=null, TableDefinition $propTable, $isSubject=true, SMWRequestOptions $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 SMWSQLStore3Readers::getPropertySubjects (SMWDIProperty $property, SMWDataItem $value=null, SMWRequestOptions $requestOptions=null)
This method cannot retrieve subjects for sortkeys, i.e., for property _SKEY. Only empty arrays will be returned there.

Member SMWSQLStore3Readers::getPropertyValues ($subject, SMWDIProperty $property, $requestOptions=null)
Retrieving all sortkeys (values for _SKEY with $subject null) is not supported. An empty array will be given.

Member SMWSQLStore3Readers::initSemanticDataCache ($subjectId, DIWikiPage $subject)
The management of this cache should be revisited.

Member SMWSQLStore3Readers::prepareValueQuery (&$from, &$where, TableDefinition $propTable, $value, $tableIndex=1)
Maybe do something about redirects. The old code was $oid = $this->store->smwIds->getSMWPageID($value->getDBkey(),$value->getNamespace(),$value->getInterwiki(),false);

Member SMWSQLStore3Writers::changeTitle (Title $oldTitle, Title $newTitle, $pageId, $redirectId=0)
Currently the sortkey is not moved with the remaining data. It is not possible to move it reliably in all cases: we cannot distinguish an unset sortkey from one that was set to the name of oldtitle. Maybe use update jobs right away?

Member SMWSQLStore3Writers::updateRedirects ($subject_t, $subject_ns, $curtarget_t= '', $curtarget_ns=-1)
Clean up this code.

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

Member SMWStringValue::getTextDisplay ($value, $abbreviate, $linked, $forHtml)
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.

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::getWikiValue ()
The preferred caption may not be suitable as a wiki value (i.e. not parsable).

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 SomePropertyInterpreter::interpretDescription (Description $description)
The case of nominal classes (top-level ValueDescription) still makes some assumptions about the table structure, especially about the name of the joinfield (o_id).

Member SRFArray::getResultText (SMWQueryResult $res, $outputmode)
Is there some other way to check the data value directly for being the page title or not? SMWs behavior could change on mainlabel handling...

Member SRFCalendar::getResultText (SMWQueryResult $res, $outputmode)
Split up megamoth