Semantic MediaWiki and related extensions
Todo List
Member SMW::getCaptionFromDataItem (DITime $dataItem)
Internationalize the CE and BCE strings.
Member SMW::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 SMW::parse (array $functionParams)
$rawParams should be of IParameterFormatter QueryParameterFormatter class
Member SMW::recache ($limit, $ignoreErrors=true)
Implement caching for SMW query pages
Member SMW::ping ($endpointType=self::EP_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 SMW::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). Better extend compilePropertyValueDescription to deal with this case.
Member SMW::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 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, $timezone=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.
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 (DIProperty $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::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 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.
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, &$microseconds, &$timeoffset, &$timezone)
This method in principle allows date parsing to be internationalized further. Should be done.
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