Hi,

for record properties I get from $property->getPropertyTypeID() the type
__err back 
and this function in includes/datavalues/SMW_DV_Property.php looks
strange:

       /**
         * Convenience method to find the type id of this property. Most
callers
         * should rather use SMWDIProperty::findPropertyTypeId() directly.
Note
         * that this is not the same as getTypeID(), which returns the id
of
         * this property datavalue.
         *
         * @return string
         */
        public function getPropertyTypeID() {
                if ( !$this->isValid() ) {
                        return $this->m_dataitem->findPropertyTypeId();
                } else {
                        return '__err';
                }
        }

shouldn't it rather be 

                if ( $this->isValid() ) {
instead of
                if ( !$this->isValid() ) {

Gu


On Tue, 31 May 2011 16:02:37 +0100, Markus Krötzsch
<mar...@semantic-mediawiki.org> wrote:
> On 30/05/11 11:48, zehetner wrote:
>> Hi,
>>
>> I'm trying to change my php code to work with SMW 1.6. (MW 1.16.0, SMW
>> 1.6
>> alpha r89160)
>> I updated the DB and data with the SMWAdmin functions. #ask queries
seem
>> to work ok.
>>
>> I use the calls
>>
>> $property = SMWPropertyValue::makeUserProperty($propname);
>> $ptype = $property->getPropertyTypeID();
>> where $propname is the name of a property.
>>
>> This seems to be valid in SMW 1.6 as it is used e.g. in file
>> includes/parserhooks/SMW_Declare.php
>> $property = SMWPropertyValue::makeUserProperty( $propertystring );
>> :
>> $type = $property->getPropertyTypeID();
>>
>> As far as I can see I run into problems when
>> function getPropertyTypeID() calls
>> function getTypesValue() which calls
>> smwfGetStore()->getPropertyValues( $this->getWikiPageValue(), new
>> SMWDIProperty( '_TYPE' ) );
>>
>> $this->getWikiPageValue() returns a 'SMWWikiPageValue Object' which in
>> function
>> getPropertyValues( $subject, SMWDIProperty $property, $requestoptions =
>> null ) is than passed as '$subject' argument to
>> $this->getSemanticData( $subject, array(
$property->findPropertyTypeID()
>> )
>> );
>>
>> Calling getSemanticData with an 'SMWWikiPageValue Object' as $subject
>> causes an empty page because it seems it expects
>> a 'SMWDIWikiPage Object' instead in SMW 1.6?
>>
>> getWikiPageValue(), however, seems to return for type _wpg always a
>> SMWWikiPageValue Object and doesn't know about SMWDIWikiPage Object???
>>
>> As I only submit a property name in my code and the rest are SMW 1.6
>> internal functions, I don't know what I can do to avoid this problem.
>> Anything on the wiki level?
> 
> Thanks for the report. The code on SVN (r89217) has now been fixed to 
> avoid this problem.
> 
> Note that SMWPropertyValue::makeUserProperty($propname) should only be 
> used if the input $propname is indeed some (possibly messy) user input. 
> If the name of the property comes from a reliable source, then you can 
> also format it as a DB key (replace ' ' by '_') and use "new 
> SMWDIProeprty($dbkey)" to get an SMWDIProperty object right away (in 
> this case, findPropertyTypeId() is called to get the type id). But for 
> user input SMWPropertyValue is the right way to go.
> 
> Cheers,
> 
> Markus
> 
> 
>>
>> On Thu, 26 May 2011 07:40:32 +0100, Markus Krötzsch
>> <mar...@semantic-mediawiki.org>  wrote:
>>> On 25/05/11 11:20, zehetner wrote:
>>>> Hi,
>>>>
>>>> regarding
>>>>> * Type:Record declarations change:
>>>>> Properties of Type:Record no longer take a list of types, but a list
>> of
>>>>> properties as their declaration (has fields). This ensures that
>> Records
>>>>> can use all information that is given on Property pages, not just
the
>>>>> type declarations.
>>>>
>>>> would there be a foreseeable problem to generate properties with the
>> name
>>>> of the existing field types e.g Property:string, Property:page,
>>>> Property:number etc. to keep records functioning in the new SMW
>> version?
>>>> Otherwise having a rather large number of record properties it would
>> mean
>>>> a lot of typing to change those names in the 'has fields'
declarations.
>>>
>>> I think this is a good idea. Would it be useful to have one builtin
>>> property for each registered datatype? This would not be hard to do
but
>>> it would override any existing property declarations for these labels.
>>>
>>> Generating property pages would be a more complex process that would
>>> need to be triggered explicitly (you cannot do this in the background
on
>>
>>> every request).
>>>
>>> Regards,
>>>
>>> Markus
>>>
>>>>
>>>> On Sun, 22 May 2011 16:10:37 +0100, Markus Krötzsch
>>>> <mar...@semantic-mediawiki.org>   wrote:
>>>>> Dear SMW users and developers,
>>>>>
>>>>> work on SMW 1.6 has made tremendous progress in the past few weeks,
>> and
>>>>> the code is stabilizing now. We still have quite some bugs to fix
>> ahead
>>>>> of us, but the main changes in architecture and user features are
>>>>> completed.
>>>>>
>>>>> If they have not done it yet, extension developers should now adapt
>>>>> their code to work with the modified APIs. Audacious users are
invited
>>>>> to beta test. Installation instructions are online [1] and the SMW
>>>>> Sandbox is updated to the most recent version [2].
>>>>>
>>>>> == Main changes for users ==
>>>>>
>>>>> * Significantly extended database backend support:
>>>>> SMW now works with PostgreSQL and with any RDF store that supports
>>>>> SPARQL and SPARQL Update. I had sent details about the latter to
this
>>>>> list earlier -- testers for Virtuoso and other stores would still be
>>>>> most welcome! Support for using the PHP-based interface of the RAP
RDF
>>>>> store is discontinued. The new SPARQL functions change also prepare
>> SMW
>>>>> for loading RDF data from other Web sources (not implemented yet).
>>>>>
>>>>> * Parameter validation for user inputs:
>>>>> The #ask function will now generate more helpful error messages if
>> some
>>>>> input is not suitable, e.g. if "limit" is set to "bogus" instead of
a
>>>>> number. Query printers may also use this capability for their own
>>>>> parameters, so that even extensions can provide this validation. For
>>>>> doing this, SMW requires the Validator extension to be installed.
>>>>>
>>>>> * No more "Type" namespace:
>>>>> As discussed on these lists, the Type namespace has been removed.
>> There
>>>>
>>>>> is a configuration setting that allows users to keep the Type
>> namespace
>>>>> enabled (so that any pages there can still be accessed). The
features
>> of
>>>>
>>>>> Type articles are now provided by Special:Types.
>>>>>
>>>>> * New Delimited-Separated Values format:
>>>>> This is like CSV but with a sane and easy-to-parse escaping of
special
>>>>> characters.
>>>>>
>>>>> * Unit of measurement declarations change:
>>>>> With the vanishing of Type pages, users who have used custom types
>> (for
>>>>> unit conversion) must move the text from the Type page to the
Property
>>>>> page that uses these custom types. Instead of the custom type page,
>> "has
>>>>
>>>>> type" is now set to "Quantity" for properties that have custom unit
>>>>> conversions.
>>>>>
>>>>> * Type:Record declarations change:
>>>>> Properties of Type:Record no longer take a list of types, but a list
>> of
>>>>> properties as their declaration (has fields). This ensures that
>> Records
>>>>> can use all information that is given on Property pages, not just
the
>>>>> type declarations.
>>>>>
>>>>> * Compatibility with MediaWiki 1.18.
>>>>>
>>>>> * Bugfixes.
>>>>>
>>>>>
>>>>> == Main changes for developers ==
>>>>>
>>>>> There have been substantial changes to the data model: almost all
uses
>>>>> of SMWDataValue have been replaced by more lightweight SMWDataItem
>>>>> objects. Code has been cleaned up in the process and should be much
>>>>> clearer to understand in many places (also beyond the data item
>>>>> changes). See my earlier email to the developer list for details.
>> Please
>>>>
>>>>> ask on the developer list if you should encounter any problems
>> updating
>>>>> your code to work with SMW 1.6.
>>>>>
>>>>>
>>>>> SMW 1.6 is an important major release for us, and a unique
opportunity
>>>>> to do some changes that are not fully compatible with earlier
versions
>>>>> (but that really improve the overall functionality and code
quality).
>> If
>>>>
>>>>> you have comments or bug reports, it is a very good time to make
them
>>>>> known. Some things will be much harder to change later on. We intend
>> to
>>>>> stabilize SMW within the next 14 days, so that a first release of
SMW
>>>>> 1.6 could happen in early June.
>>>>>
>>>>> Thanks to all who have already contributed to this major effort, and
>> to
>>>>> all who are currently working hard on upgrading their code to SMW
1.6.
>>>>>
>>>>> Cheers,
>>>>>
>>>>> Markus
>>>>>
>>>>> [1] http://semantic-mediawiki.org/wiki/Help:Installation_1.6.0
>>>>> [2] http://sandbox.semantic-mediawiki.org/
>>>>>
>>>>>
>>>>
>>
------------------------------------------------------------------------------
>>>>> What Every C/C++ and Fortran developer Should Know!
>>>>> Read this article and learn how Intel has extended the reach of its
>>>>> next-generation tools to help Windows* and Linux* C/C++ and Fortran
>>>>> developers boost performance applications - including clusters.
>>>>> http://p.sf.net/sfu/intel-dev2devmay
>>>>> _______________________________________________
>>>>> Semediawiki-devel mailing list
>>>>> Semediawiki-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/semediawiki-devel
>>>>
>>

------------------------------------------------------------------------------
Simplify data backup and recovery for your virtual environment with vRanger. 
Installation's a snap, and flexible recovery options mean your data is safe,
secure and there when you need it. Data protection magic?
Nope - It's vRanger. Get your free trial download today. 
http://p.sf.net/sfu/quest-sfdev2dev
_______________________________________________
Semediawiki-devel mailing list
Semediawiki-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/semediawiki-devel

Reply via email to